Untuk beberapa alasan selama pengembangan, saya terkadang berkomentar keluar kode. Karena saya kacau dan kadang-kadang terburu-buru, beberapa di antaranya membuatnya menjadi kontrol sumber.
Saya juga menggunakan komentar untuk memperjelas blok kode.
Contohnya:
MyClass MyFunction()
{
(...)
// return null; // TODO: dummy for now
return obj;
}
Meskipun "berfungsi" dan banyak orang melakukannya dengan cara ini, saya kesal karena Anda tidak dapat secara otomatis membedakan kode komentar dengan komentar "nyata" yang memperjelas kode:
- itu menambah kebisingan ketika mencoba membaca kode
- Anda tidak dapat mencari kode yang dikomentari untuk misalnya hook on-commit dalam kontrol sumber.
Beberapa bahasa mendukung banyak gaya komentar baris tunggal - misalnya dalam PHP Anda dapat menggunakan //
atau #
untuk komentar baris tunggal - dan pengembang dapat sepakat untuk menggunakan salah satu dari ini untuk kode komentar:
# return null; // TODO: dummy for now
return obj;
Bahasa lain - seperti C # yang saya gunakan hari ini - memiliki satu gaya untuk komentar single-line (kan? Saya berharap saya salah). Saya juga telah melihat contoh kode "commenting-out" menggunakan arahan kompiler, yang bagus untuk blok kode besar, tetapi sedikit berlebihan untuk satu baris karena dua baris baru diperlukan untuk arahan:
#if compile_commented_out
return null; // TODO: dummy for now
#endif
return obj;
Jadi, ketika kode komentar terjadi dalam setiap (?) Bahasa, bukankah seharusnya "kode yang dinonaktifkan" mendapatkan sintaksnya sendiri dalam spesifikasi bahasa? Apakah pro (pemisahan komentar / kode yang dinonaktifkan, editor / kontrol sumber bertindak atas mereka) cukup baik dan kontra ("toh tidak boleh melakukan commenting-out", bukan bagian fungsional dari bahasa, potensi keterlambatan IDE (terima kasih Thomas )) layak dikorbankan?
Edit
Saya menyadari contoh yang saya gunakan adalah konyol; kode dummy dapat dengan mudah dihapus karena diganti dengan kode yang sebenarnya.
/# ... #/
itu akan menyoroti berbeda dalam IDE (untuk isyarat visual) dan mungkin menghasilkan compiler peringatan yang kemudian akan terjebak dan dilaporkan oleh membangun malam jika seseorang tidak memeriksa perubahan seperti kembali ke dalam kendali sumber.