Adalah baik bahwa pencipta instrumen favorit Anda tidak mendengarkan keledai ketika ia menemukan sepeda



Musim panas lalu, saya dan teman-teman membicarakan lib kami, yang tidak diterima pelanggan kami dan dibuang ke tempat sampah. Kami mengebom, karena kami percaya pada keputusan kami, dan memberi tahu masyarakat tentang hal itu - pengembang biasa pasti akan memeriksanya dan tidak akan menukar omong kosong.

Ya tentu saja. Kami benar-benar hanyut oleh gelombang kritik. Ada banyak orang yang tidak suka kesombongan saya dan saya pribadi - ini ok, saya tidak punya masalah dengan mereka. Saya marah dengan orang-orang yang tampaknya pintar yang bahkan tidak ingin melihat ke dalam kode dan mempelajari konteksnya, karena mereka mengatakan dari ambang pintu: "Kalian membuat sepeda." Dan semua orang mengambil - menemukan kembali roda itu buruk, mengerikan, mimpi buruk, tidak dapat diterima, malu, jalankan mereka, lynch. Memang, hanya seorang idiot yang akan mengembangkan alat baru untuk tugas yang telah diselesaikan seseorang.

Saya kagum betapa cepatnya desain dilakukan untuk trik ini. Saya bertanya kepada orang-orang yang paling kritis dan berpikir sangat dalam - β€œapakah menciptakan kembali sepeda itu buruk? Mereka menjawab "ya" dalam waktu kurang dari satu detik.

Yah tidak, kawan, itu tidak akan terjadi. Mari kita berhenti di sini, melihat-lihat dan berpikir secara detail.



Saya pernah melakukan aplikasi front-end di rumah selama beberapa waktu. Saya menggunakan reagen, tetapi saya tidak membawanya untuk manajemen negara bagian - saya tidak punya masalah seperti itu. Kemudian masalah muncul, dan saya mulai membuat "sepeda saya." Paman yang cerdik memberi tahu saya bahwa saya idiot dan saya harus menggunakan Redux. Saya ambil.

Dua bulan kemudian, sebagian besar kode proyek merupakan adaptasi dari editor ke arsitektur saya. Alat ini menciptakan lebih banyak masalah bagi saya daripada yang dipecahkan. Bukan karena editornya jelek - hanya saja tidak cocok.

Seseorang dari sebuah perusahaan besar membuat keputusan untuk bekerja dengan keadaan aplikasi web dari sebuah perusahaan besar. Editor memecahkan banyak masalah yang dihadapi aplikasi semacam itu, dan melakukannya dengan baik. Dan apa yang dilakukan industri ini? Industri mengatakan - Dan Abramov memberi kita jalan. Sekarang situs web saya dalam dua bentuk akan menggunakan editor untuk bekerja dengan negara.

Teman, editor dibuat untuk bekerja dengan negara - tetapi tidak dengan negara Anda. Anda tidak perlu rantai semua irisan status aplikasi yang persisten, Anda tidak mengirimkan game aksi melalui jaringan dan Anda tidak melakukan lebih banyak hal yang seharusnya mengotomatisasi editor. Pada saat yang sama, menggunakan editor tidaklah mudah. Anda harus memberi hadiah seratus kilometer kode untuk menjelaskan kepada editor apa kondisi Anda, di mana dan bagaimana diperbarui, perubahan mana yang signifikan dan mana yang tidak. Sehingga editor mengotomatiskan masalah untuk Anda yang tidak Anda miliki. Serius, pernahkah Anda melihat setidaknya satu lowongan untuk reaksi, tetapi tanpa editor? Saya tidak.

Ada analog - tetapi mereka juga besar. Terkadang cara termurah untuk menyelesaikan masalah bukanlah dengan mengambil alat untuk segalanya, tetapi menulis solusi domain yang tepat untuk Anda. Ya Tuhan, naskah cukup kuat untuk menulis mvvm dasar, mvc, atau apa pun yang Anda inginkan dalam beberapa jam - sehingga hanya memecahkan masalah yang Anda miliki. Buat itu keluar lebih murah dan lebih cepat. Dan mungkin solusi Anda akan bekerja dengan baik, tumbuh bersama proyek, dan menjadi standar.

Tapi ini dilarang - karena pengembang lain memberi tahu Anda: β€œMan, jangan menemukan kembali kemudi. Ambillah yang paling populer di pasar. ”

Dalam proyek saya, misalnya, MobX lebih cocok, tetapi juga tidak super. Ini akan bekerja paling baik untuk saya persis sepeda yang saya temukan. Tetapi tampaknya mereka mengambil hak saya untuk membuat keputusan yang baik, karena apa pun yang saya lakukan, tidak ada yang mau mendengarkan. Tidak ada yang siap untuk percaya bahwa itu akan menjadi lebih baik dan lebih murah.

Ini menciptakan lingkaran setan. Jika semua orang hanya akan menggunakan yang ditemukan sebelumnya, maka kemajuan dalam pengembangan akan berhenti. Mereka memberi tahu Anda, jika Anda ingin melakukan yang lebih baik daripada yang sudah selesai - lakukanlah di rumah di waktu luang Anda. Anda bilang oke, Anda mulai bekerja di malam hari, Anda menyelesaikannya, Anda pergi untuk memberi tahu orang-orang tentang keputusan Anda, tetapi tidak ada yang bahkan siap untuk melihat di balik tudungnya - "ini sepeda".

Tetapi pada kenyataannya, semua yang kita lakukan adalah menciptakan sepeda. "Sepeda" hanyalah tipuan retoris yang berbahaya untuk membenarkan kemalasan Anda atau untuk menyatakan diri dalam perselisihan dengan pengembang lain.

Pencipta editorial, reaksi dan mobix - setelah semua, mereka juga "membuat sepeda mereka." Nah, apa, kecuali pada saat sudut muncul, kami tidak memiliki perpustakaan untuk bekerja dengan UI browser? KO Jquery Ngomong-ngomong, ini bagus juga. Lagi pula, selalu ada vanilla js dan API browser. Jadi mengapa para idiot ini memecahkan masalah yang diselesaikan?

Douglas Crockford menemukan JSON. Payudara yang tidak kompeten sepertinya tidak tahu bahwa kita sudah memiliki XML. Jauh sebelum dia, programmer menemukan cara untuk bertukar data, siapa yang dia pikir ada di sana?

Contoh buruk? Ya tentu saja. Memang, di kepala Anda, orang-orang dari perusahaan besar memiliki hak untuk menciptakan sepeda. Mereka punya, tetapi Anda dan saya tidak.



Perusahaan IT terbanyak di Federasi Rusia adalah bank. Dan jika Anda melihat produk-produk teknis dari Sberbank, Tinkov atau Alf, Anda akan melihat - mereka semua memiliki aplikasi yang sama dengan desain yang kira-kira sama. Ini adalah sistem yang hampir identik. Hal yang sama untuk pengguna, mereka dibuat dengan cara yang berbeda, pada tumpukan berbeda, oleh orang yang berbeda. Semua bank ini memiliki pendekatan pengembangan unik mereka sendiri. Raksasa IT global juga memiliki banyak produk yang sama. Ketika bankir besar berkumpul dan memutuskan bahwa mereka membutuhkan produk digital, mereka menyewa sepasukan pengembang dan memaksa mereka untuk melakukan hal yang sama seperti yang telah dilakukan bank lain, untuk keseratus kalinya - tetapi dengan cara baru.

Ini semua tentang sepeda.

Ada masalah berumur panjang di setiap proyek yang saya kerjakan, karena ada sesuatu yang tidak otomatis. Karena begitu seseorang diberitahu - jangan menemukan kembali kemudi, tutup saja tiketnya. Ya, bisnis sedang menunggu tiketnya, dan perlu diberi makan, tapi jujur ​​saja - saya tahu betul bahwa kami selalu memiliki lebih banyak anggaran daripada yang dipikirkan bisnis.

Saya memiliki segalanya hanya dengan uang dari bisnis yang saya habiskan untuk itu. Bisnis besar memiliki banyak uang, dan itu mendorong mereka untuk berkembang. Tumpukan uang yang sangat besar ini dapat dihabiskan oleh pengembang yang memecahkan masalah, dan pada saat yang sama melakukan beberapa penelitian. Dan para manajer mungkin membelanjakan uang, tetapi para manajer akan membelanjakan mereka untuk membayar duduk tidak masuk akal kita dalam jutaan pertemuan yang tidak berguna. Bisnis telah menghabiskan uang untuk pengembangan, dan jika Anda tidak mengubahnya menjadi pemrograman, maka antek bisnis akan membelanjakannya untuk proses bodoh mereka yang tidak dibutuhkan oleh siapa pun kecuali diri mereka sendiri.

Saya telah melihat cukup banyak pria yang "bekerja" selama 18 jam sehari. Dan saya tahu betul bahwa jika Anda tinggal di kantor selama 18 jam, Anda akan benar-benar bekerja sebanyak jika Anda duduk 8.

Cara kolektif kita menipu bisnis dijelaskan dengan sangat sederhana - itu tidak meleset. Bisnis tidak mengerti mengapa kita tidak harus melakukan fitur selama dua minggu, tetapi menata warisan. Ini normal, dan kami tahu cara mengatasinya. Anda bekerja untuk bisnis selama setengah hari, dan bekerja untuk proyek selama setengah hari. Saya datang untuk bekerja, menutup norma sehari-hari - itu saja, Anda memiliki carte blanche untuk penelitian.

Sementara kami sedang menyelesaikan bisnis Wishlist yang praktis dan sesaat - dia siap untuk kita bayar untuk pekerjaan ini. Sebenarnya, pengembangan yang sebenarnya dimulai di mana ada pemrograman demi pemrograman. Ketika Anda bersenang-senang dalam mekanika murni demi tidak melakukan apa-apa, klik sesaat dan antusiasme teknik, karena ini adalah satu-satunya cara batas dibuat, cara dan alat baru muncul untuk memecahkan masalah praktis lagi, hanya lebih baik.

Ketika saya mengembangkan sesuatu, sesuatu yang sudah dilakukan, saya tidak menemukan kembali persis seperti mereka. Saya datang dengan pendekatan saya. Dia selalu sesuatu yang lebih baik, selalu sesuatu yang lebih buruk. Dan itu selalu merupakan penemuan. Sebagian besar penemuan saya pergi ke tempat sampah sejarah, tetapi selalu ada kesempatan bahwa saya akan menciptakan sesuatu yang sangat keren. Sekalipun secara sepintas, sekalipun aku sendiri tidak mementingkan itu, itu tidak masalah. Seseorang akan melihat, di tempat lain, industri akan menerima standar baru yang akan mulai menyelesaikan masalah kita. Hanya ide ini yang mendorong saya untuk menulis kode.

Sumber terbuka juga memiliki banyak proyek yang sama. Mereka yang memecahkan masalah yang sama. Apakah Anda siap untuk mengatakan bahwa setiap orang yang membuat mereka bodoh? Saya belum siap. Ketika saya ingin membuat batch untuk serialisasi, saya mendapatkan lima atau enam solusi teratas, yang masing-masing memiliki kelebihan unik. Terkadang salah satu keunggulan ini sangat penting bagi saya, pada saat-saat seperti itu saya sangat berterima kasih kepada orang-orang yang memutuskan untuk membuat "sepeda" ini.

Ketika mereka mengatakan kepada saya bahwa semuanya telah ditemukan dalam pengembangan, saya bertanya: "apa, bukankah kita punya masalah?".

Apakah kita tidak menulis boilerplate sehari-hari? Apakah kita tidak mengambil otomatisasi berulang kali ketika kita mengisi file kita dengan kode yang sama? Kami masih melakukan banyak hal yang bisa dilakukan mesin itu sekarang. Dan kami melakukan ini karena kami belum menemukan pendekatan, karena kami selalu memasukkan tongkat ke roda sepeda.



Tonton podcast saya

All Articles