Banyak orang mengklaim bahwa "komentar harus menjelaskan 'mengapa', tetapi tidak 'bagaimana'". Yang lain mengatakan bahwa "kode harus mendokumentasikan diri sendiri" dan komentar harus langka. Robert C. Martin mengklaim bahwa (diucapkan dengan kata-kata saya sendiri) sering "komentar adalah permintaan maaf untuk kode yang ditulis dengan buruk".
Pertanyaan saya adalah sebagai berikut:
Apa yang salah dengan menjelaskan algoritma yang rumit atau potongan kode yang panjang dan berbelit-belit dengan komentar deskriptif?
Dengan cara ini, alih-alih pengembang lain (termasuk Anda sendiri) harus membaca seluruh algoritme baris demi baris untuk mengetahui apa yang dilakukannya, mereka hanya dapat membaca komentar deskriptif ramah yang Anda tulis dalam bahasa Inggris.
Bahasa Inggris 'dirancang' agar mudah dipahami oleh manusia. Java, Ruby atau Perl, bagaimanapun, telah dirancang untuk menyeimbangkan keterbacaan manusia dan keterbacaan komputer, sehingga mengurangi keterbacaan teks oleh manusia. Seorang manusia dapat memahami sepotong bahasa Inggris lebih cepat sehingga dia dapat memahami sepotong kode dengan makna yang sama (selama operasi itu tidak sepele).
Jadi setelah menulis sepotong kode kompleks yang ditulis dalam bahasa pemrograman yang dapat dibaca sebagian manusia, mengapa tidak menambahkan komentar deskriptif dan ringkas yang menjelaskan pengoperasian kode dalam bahasa Inggris yang ramah dan dapat dimengerti?
Beberapa orang akan mengatakan "kode seharusnya tidak sulit untuk dimengerti", "membuat fungsi kecil", "gunakan nama deskriptif", "jangan menulis kode spaghetti".
Tapi kita semua tahu itu tidak cukup. Ini hanyalah pedoman - yang penting dan berguna - tetapi mereka tidak mengubah fakta bahwa beberapa algoritma rumit. Dan karena itu sulit untuk dipahami ketika membacanya baris demi baris.
Apakah benar-benar buruk untuk menjelaskan algoritma yang rumit dengan beberapa baris komentar tentang operasi umum itu? Apa yang salah dengan menjelaskan kode rumit dengan komentar?