Saya sudah memikirkan topik ini untuk sementara waktu.
Kesimpulan saya adalah - ini bukan masalah kuantitas, tetapi kualitas dan konteks.
Misalnya, struktur proyek yang tepat mengalahkan komentar yang menjelaskan di mana file berada (implementasi vs intensi)
Demikian pula, klasifikasi untuk memperjelas konteks mengalahkan penamaan (Id on a Patient -> Patient.Id).
Saya percaya DDD memiliki suara dalam dokumentasi yang baik - klasifikasi menyediakan konteks, konteks menciptakan batas dan batas mengarah ke implementasi yang disengaja (ini adalah tempat ini berada, daripada perlu ada).
Kode itu sendiri tidak cukup baik untuk dianggap sebagai dokumentasi. Masalah dalam kebanyakan kasus tidak terletak pada kenyataan bahwa kerja kode dikomentari atau tidak dikomentari, melainkan kekuatan pendorong (logika domain) tidak.
Kita kadang-kadang lupa siapa bosnya - jika kode berubah, logika domain atau nalar tidak boleh, tetapi jika logika atau alasan domain mengubah kode pasti akan.
Konsistensi juga sangat penting - konvensi itu sendiri tidak berguna jika tidak konsisten.
Pola desain bukan hanya 'praktik yang baik' - tetapi juga harus dipahami oleh para pengembang. Memberitahu pengembang untuk menambahkan jenis baru ke Pabrik lebih dipahami daripada menambahkan jenis baru ke metode (di mana konteks dan konsistensi lemah atau hilang).
Setengah perjuangan adalah keakraban .
Di samping catatan, API yang tampaknya mendukung banyak dokumentasi juga sangat sensitif terhadap domain dan konteks. Kadang-kadang fungsi duplikasi tidak jahat (hal yang sama, konteks yang berbeda) dan harus diperlakukan sebagai terpisah.
Dalam hal berkomentar, selalu baik untuk menunjukkan logika domain di balik alasan tersebut.
Misalnya, Anda bekerja di industri medis. Dalam metode Anda, Anda menulis "IsPatientSecure = true;"
Sekarang, setiap programmer yang baik dapat mengetahui bahwa pasien sedang ditandai sebagai aman. Tapi kenapa? Apa implikasinya?
Dalam hal ini pasien adalah narapidana yang dipindahkan dengan aman ke rumah sakit di luar gedung. Mengetahui hal ini, lebih mudah untuk membayangkan peristiwa yang mengarah ke titik ini (dan mungkin apa yang masih perlu terjadi).
Mungkin posting ini tampaknya filosofis terbaik - tetapi ingat bahwa ini adalah 'alasan' atau 'logika' yang Anda tulis - bukan kode.