(dengan asumsi kode produksi)
Saya cenderung melangkah lebih jauh. Saya telah menulis tentang membuat program "bukti idiot", tetapi saya tidak selalu memenuhi syarat itu: Saya menulis banyak kode yang tidak akan dilihat atau bekerja dengan orang lain (setidaknya, itulah harapan ketika ditulis). sayaadalah idiot yang saya coba pertahankan dari kasus itu. Ini adalah hal yang baik ketika program Anda mendeteksi masalah untuk Anda, dan masalahnya telah disederhanakan sehingga cukup jelas bahwa ada kesalahan, dan asalnya. Yang benar adalah, detail implementasi jelas ketika Anda menulis sebuah program (kecuali jika Anda mengimplementasikannya secara prematur), tetapi mereka harus diabstraksikan dan tahan kesalahan untuk klien (bahkan ketika lokalitas modul ada). Alasannya, program menjadi sangat kompleks. Terkadang Anda dapat memisahkan masalah, tetapi tidak setiap saat. Jika Anda menjaga komponen Anda sangat ketat, sederhana, dikemas dengan baik, dan bukti idiot, mereka cenderung untuk mengukur dengan baik dan sebagian besar cacat terdeteksi sebelum dikirim. Lebih mudah untuk digunakan kembali, dan Anda memiliki lebih banyak kepercayaan diri dan waktu yang lebih mudah menggunakan kembali program, Juga, program-program kompleks yang Anda tulis hanya menjadi lebih kompleks (bahkan untuk Anda) setelah beberapa waktu jauh dari program. Saat Anda membacanya dalam 6 bulan, dibutuhkan waktu yang tidak masuk akal untuk memahami dan men-debug dibandingkan dengan versi bukti idiot. Jika suatu komponen melakukan perubahan, ia bisa tidak terdeteksi untuk waktu yang lama. Programnya kompleks; Anda tidak dapat melarikan diri dari kenyataan itu, tetapi Anda dapat membuatnya menjadi bukti bodoh, yang akan membuat hidup Anda jauh lebih mudah ketika ada yang salah atau ketika harus digunakan kembali atau diubah. Oleh karena itu, pendekatan bukti idiot berarti bahwa perangkat lunak Anda dapat dipahami, digunakan kembali, atau dikelola oleh junior Anda atau orang-orang yang lebih baru di tim juga (bukan hanya orang yang sebaik / berpengalaman seperti Anda). Penggantian adalah masalah tersendiri: Jika orang suka bekerja dengan program Anda, Anda melakukan pekerjaan dengan baik - jangan Jangan khawatir tentang penggantian. Tentu, saya bisa membuat skenario di mana program yang tidak dapat dipahami dapat menyelamatkan pekerjaan Anda, tetapi menulis program yang baik yang dapat digunakan dan dipelihara orang lain jelas merupakan kejahatan yang lebih rendah (lihat tanggapan orang lain). Jika saya menemukan diri saya menulis sesuatu yang bukan bukti bodoh, saya mencoba memperbaikinya.
Terlepas dari skenario, di mana Anda memerlukan beberapa dokumentasi untuk diri Anda sendiri untuk melanjutkan proyek setelah 6 bulan jeda, tampaknya ada konflik kepentingan yang jelas antara pengembang dan perusahaan perangkat lunak.
Anda benar-benar tidak tahu apa yang Anda pikirkan beberapa saat ketika Anda meninjau kembali implementasi aktif. Ketika Anda benar - benar berpengalaman, maka masalahnya lebih sederhana karena Anda dapat lebih mengandalkan metodologi atau pendekatan yang Anda gunakan. Namun, itu juga mengasumsikan metodologi ini tidak berubah. Meskipun dokumentasinya mungkin lemah, Anda masih harus defensif dalam implementasi Anda (mis. Anda tahu lebih baik daripada lulus NULL dalam skenario ini - uji kondisi itu).
Jadi sebagai seorang programmer, sebaiknya Anda benar-benar menulis dokumentasi yang bagus dan kode yang mudah dibaca untuk semua orang; atau haruskah Anda menulis kode dan dokumentasi sedemikian rupa sehingga berfungsi dan Anda sendiri dapat memahaminya, tetapi orang lain mungkin kesulitan memahaminya?
Saya merekomendasikan pendekatan bukti idiot, yang bahkan lebih jelas dan lebih tahan kesalahan daripada pendekatan faktor bus. Tuliskan program dan dokumentasi Anda sehingga mudah dipahami oleh orang lain di luar proyek - ini juga baik untuk Anda. Melakukan hal itu akan meningkatkan nilai Anda kepada perusahaan dan tim Anda, mereka tidak akan mau menggantikan Anda.