TL; DR
Anda tidak akan pernah tahu semuanya. Ada cukup banyak hal yang lebih dalam dan luas di sekitar setiap "hal" individu yang dapat Anda ketahui. Belajar sambil jalan. Terapkan "praktik terbaik" yang menurut Anda relevan sekarang. Membuat kesalahan. Cobalah untuk menghindari membuat kesalahan yang sangat mahal . Cari mentor jika proyek Anda dapat menyebabkan kesalahan yang mahal.
Dan sekarang jawaban panjangnya ...
1. "Perangkat lunak yang berfungsi adalah ukuran utama dari kemajuan." ( Agile Manifesto )
Jika Anda dapat melihat ujung-ujung pengetahuan Anda, itu luar biasa! Kejar pinggirannya! Terus belajar! Namun perlu diingat, Anda bisa belajar dan menganalisis selamanya .
Bangun sesuatu.
2. Belajar dan membuat kesalahan; tetapi jangan membuat yang "buruk". *
Terus mendorong batas-batas pengetahuan / keterampilan Anda. Anda akan membuat kesalahan. Anda bisa belajar dari mereka. Tapi, Anda tidak perlu gegabah .
Waktu yang Anda habiskan untuk menemukan dan bekerja dengan pengembang dan mentor yang lebih berpengalaman harus meningkat secara proporsional dengan nilai bisnis dan profil risiko proyek.
Jika Anda membuat CLI kecil untuk diri sendiri : Buatlah itu bekerja sesuai keinginan Anda.
Jika Anda menulis portal web bank: Kelilingi diri Anda dengan pengembang yang sangat berpengalaman.
3. "Praktik terbaik" harus ditulis dalam tanda kutip dan diucapkan dengan mengedipkan mata.
"Praktik" dipromosikan menjadi "praktik terbaik" ketika mereka diamati berhasil mencapai X dalam setidaknya beberapa kasus. Seseorang mengakui manfaat dari Praktek A untuk mencapai Manfaat X dan menyatakannya sebagai "praktik terbaik" di internet. Yang lain setuju - sering karena alasan yang baik. Tapi, sejak saat itu, kita umumnya lupa mengapa beberapa praktik adalah "praktik terbaik" dan yang lain adalah "antipatterns" atau "stinky."
Masalahnya adalah, "praktik terbaik" tidak pernah mementingkan diri sendiri. "Antipatterns" sebenarnya tidak jahat dalam dan dari diri mereka sendiri. Dan, bahkan "bau busuk" hanya kadang-kadang berasal dari busuk. Kadang-kadang, bau itu hanya keju mewah, lezat ...
Anda tidak mempraktikkan hal-hal seperti "injeksi ketergantungan" (DI) karena "injeksi ketergantungan" secara inheren berharga bagi bisnis. Ini bahkan tidak terlalu penting untuk membangun produk yang berfungsi. Ini menyelesaikan sesuatu yang mungkin Anda inginkan dalam produk akhir Anda. Tapi, itu mungkin juga hanya membuat pekerjaan Anda lebih lama tanpa manfaat ...
Hmm ...
Jadi, haruskah Anda mengikuti "praktik terbaik?" Bahkan jika Anda tidak memahaminya? ... Err ... ya. Maksud saya tidak. Tapi ya. Tapi, hanya yang benar-benar berlaku untuk Anda dan perangkat lunak Anda dan tujuannya.
Memohon POAP ! (Yup. Blog saya.)
Prinsip, pola, dan praktik bukanlah tujuan akhir.
Aplikasi yang baik dan tepat dari masing-masing karena itu terinspirasi dan dibatasi oleh tujuan akhir yang lebih unggul. Anda perlu memahami mengapa Anda melakukan apa yang Anda lakukan!
(POAP tidak dikecualikan dari POAP.)
Jadi, Anda mungkin tidak sepenuhnya memahami setiap nuansa DI, misalnya. Tetapi, jika Anda memahami maksudnya, Anda akan tahu jika Anda "harus" menggunakan DI, dan Anda secara implisit akan memahami DI dengan lebih baik.
Dan, setelah Anda merilis produk, Anda dapat merenungkan apakah DI (atau apa pun) benar-benar bermanfaat. Jika demikian, jelaskan mengapa secara tertulis. Jika tidak, jelaskan mengapa secara tertulis ...
Pembacaan bonus / Agak relevan:
Analisis kelumpuhan adalah suatu hal. Anda perlu menganalisis dan belajar; tetapi, Anda juga harus menyelesaikan pekerjaan. Keseimbangan.
Anda mungkin selalu merasa seperti pembuat kode koboi .
* Anda benar - benar akan membuat kesalahan buruk jika Anda melakukan sesuatu yang patut diperhatikan. Tapi, Anda manusia, saya kira. Jadi, kami memaafkan Anda sebelumnya ... Atau, setidaknya saya lakukan. Mungkin. ... Baiklah ... Kita lihat saja nanti.