Saya pikir topiknya dipilih dengan baik. "Keren" untuk menulis satu baris Perl yang melakukan sepuluh ribu hal sekaligus, tetapi kemudian menyebalkan ketika Anda harus memeriksanya kembali.
Pada catatan yang berbeda, pintar atau tidak, kode harus didokumentasikan. Ada ketidakcocokan yang melekat inheren antara bahasa pemrograman yang diterima industri dan konsep tingkat tinggi yang kita sebagai manusia terbiasa dalam pemikiran kita. Kode mendokumentasikan diri sama sekali tidak dapat direalisasikan - sampai menjadi bahasa alami, yaitu. Bahkan kode Prolog perlu didokumentasikan, karena, betapapun tingginya levelnya, masih agak formal.
Kode imperatif berbutir halus berfungsi untuk mengimplementasikan rencana berbutir kasar - yang perlu didokumentasikan. Saya tidak ingin harus membaca seluruh 50 baris metode ketika komentar roadmap 3-line cepat akan dilakukan.
Sunting kemudian: Contoh yang lebih fasih adalah salah satu yang melampaui komputer. Sebuah buku mungkin ditulis dengan sangat baik, tetapi kita sering ingin memprosesnya pada tingkat abstraksi yang berbeda. Seringkali, ringkasan buku akan dilakukan, dan itulah yang dapat ditawarkan komentar pada kode. Tentu saja kode yang diabstraksi dengan baik bisa sangat membantu dokumentasi diri, tetapi tidak bisa memberikan Anda semua level abstraksi.
Dan komentar juga dapat bertindak seperti sidenote dalam sebuah buku, ketika kita perlu menjelaskan proses penalaran di balik klaim dalam teks utama tanpa mengacaukannya.
Dengan konteks ini, saya menemukan bahwa pernyataan saya sebelumnya yang merujuk pada bahasa alami yang melampaui kebutuhan akan komentar tidak benar. Bahkan bahasa alami, seperti dalam sebuah buku, dapat meminjamkan dirinya untuk dokumentasi, untuk menjelaskan dengan cara yang jarang abstraksi yang terkandung dalam teks, atau untuk mengambil jalan memutar tanpa merusak teks utama. Dengan catatan bahwa kode yang diabstraksi dengan baik mungkin sudah berjalan jauh untuk mendokumentasikan diri.
Terakhir, namun tidak kalah pentingnya, komentar dapat membantu pembuat kode tetap pada abstraksi tingkat tinggi. Sering kali saya menyadari bahwa dua komentar berturut-turut yang saya sertakan dalam daftar langkah tidak berbicara pada tingkat abstraksi yang sama, yang segera memberikan pandangan kritis pada apa yang saya lakukan dengan kode itu.
Masalah tertentu melampaui kode dan memengaruhi kode seperti aktivitas lainnya. Komentar dapat memberikan bantuan dalam menjelaskan alasan di balik, dan segi-segi kode kita, dan saya menemukan mereka teman yang menyenangkan yang berbicara bahasa yang lebih lembut untuk memberi manfaat bagi orang tersebut untuk perubahan.