Saat ini saya sedang magang di perusahaan besar dan mereka mengalami banyak perubahan dalam struktur pengiriman perangkat lunak (pindah ke Agile).
Dalam beberapa bulan terakhir saya telah memperhatikan keterikatan religius terhadap Clean Code
praktik-praktik ini dan buku itu seperti sebuah Alkitab bagi para pengembang.
Sekarang, salah satu fitur terpenting dari kode bersih adalah kode penjelasan sendiri yang didasarkan pada penamaan yang dapat dimengerti dan re-factoring yang ketat. Ini diikuti oleh no commenting
aturan.
Saya mengerti bahwa kode bersih ini adalah investasi jangka panjang yang akan memudahkan mengikuti pemeliharaan dan peningkatan kode, tetapi ... apakah ini benar-benar layak untuk semua keributan ini?
Adakah yang akan membagikan pengalaman mereka tentang Kode Bersih dan pendapat apa pun apakah saya terlalu konservatif atau hanya tren sementara.
sumber
CalculateFoonicityMetric()
memberi tahu Anda apa yang dilakukannya, dan kode yang ditulis dengan baik akan menunjukkan kepada Anda bagaimana ... tetapi tidak satu pun dari ini yang memberi tahu Anda alasannya . Kode dapat menjadi jelas dalam hal apa (kalikan ini dengan itu, bagi dengan yang lain, beri kuadratkan, tambahkan bit ini ...) tetapi tidak jelas mengapa (faktor = a * b / c; kuadrat untuk menjelaskan foo negatif, sesuaikan untuk melayang ...). Saya menghargai komentar cepat yang menjelaskan alasannya.Jawaban:
Benar.
Tentu, tetapi pertimbangkan bahwa perusahaan besar mungkin memiliki kode buruk bertahun-tahun atau bersih untuk dibersihkan. Butuh banyak waktu dan upaya untuk melakukan itu.
Hal utama yang harus disadari adalah bahwa Anda berdua benar. "kode bersih" sangat penting, dan Kode Bersih adalah cara yang dihormati secara universal untuk sampai ke sana. Karena perusahaan baru saja memulai, mereka akan lebih terikat pada buku daripada kelompok yang memiliki lebih banyak pengalaman. Setelah mereka melakukannya sebentar, mereka akan mulai belajar apa yang berhasil dan yang tidak. Begitu mereka memahami hal itu dengan lebih baik, mereka (semoga) akan mengikuti pendekatan yang lebih pragmatis dan alami yang menjaga kode bersih, tetapi tidak mengarah pada 70 nama fungsi char.
sumber
Saya awalnya menulis komentar. Saya akan mencoba memberikan lebih sedikit jawaban daripada yang perlu dipertimbangkan perspektif. Namun, saya benar-benar mendukung praktik "Kode Bersih" seperti penamaan yang dapat dimengerti dan refactoring.
Saya selalu tidak menyukai aturan no comments , karena ada kasus di mana komentar diperlukan untuk mencegah kerusakan kode di masa depan. Mereka biasanya harus dibatasi pada apa yang sedang dilakukan dan mengapa. Gunakan dengan hemat ketika kode melakukan sesuatu yang tidak terduga, atau algoritma perlu diganti.
Pertimbangkan produktivitas saat Anda membaca atau memelihara kode. Dalam masa pakai kode, ini mungkin lebih penting daripada produktivitas saat menulis kode. Akankah praktik-praktik ini membantu produktivitas dalam tugas-tugas ini?
Dengan pengalaman, praktik-praktik ini harus menjadi tertanam, dan kurang sebagai pembunuh produktivitas. Memilih nama yang tepat mungkin lebih lama karena Anda mengklarifikasi apa yang perlu dilakukan kode. (Klarifikasi ini dapat membuat pengkodean dan debugging menjadi lebih cepat.) Apakah ini menghasilkan kode yang hanya melakukan apa yang diperlukan atau yang memiliki lebih sedikit bug? Apa dampaknya terhadap produktivitas?
Waktu yang diperlukan untuk memilih nama metode yang tepat kemungkinan akan langsung terbayar dengan lebih baik dalam memahami apa tujuan metode tersebut. Bandingkan nama metode "iterateOverCustomers" dengan "locActiveCustomers". Yang mana yang menyampaikan maksud fungsi? Yang mana yang akan lebih mudah untuk refactor jika perlu?
sumber