Saya sering melihat komentar seperti itu digunakan:
function foo() {
...
} // foo
while (...) {
...
} // while
if (...) {
...
} // if
dan terkadang bahkan sejauh
if (condition) {
...
} // if (condition)
Saya tidak pernah mengerti praktik ini dan karenanya tidak pernah menerapkannya. Jika kode Anda terlalu panjang sehingga Anda perlu tahu akhir cerita }
ini, mungkin Anda harus mempertimbangkan untuk memecahnya menjadi beberapa fungsi yang terpisah. Juga, sebagian besar alat pengembang dapat melompat ke braket yang cocok. Dan akhirnya, bagi saya, merupakan pelanggaran yang jelas terhadap prinsip KERING; jika Anda mengubah kondisi, Anda harus ingat untuk mengubah komentar juga (atau yang lain bisa berantakan untuk pengelola, atau bahkan untuk Anda).
Jadi mengapa orang menggunakan ini? Haruskah kita menggunakannya, atau itu praktik yang buruk?
source-code
comments
Gablin
sumber
sumber
if(condition): ... else: ... endif;
if ... then ... end if;
while ... loop ... end loop;
procedure Foo is ... end Foo;
. Saya menemukan bahwa ini membantu keterbacaan (dan diperiksa oleh kompiler, yang komentarnya tidak).Jawaban:
Saya akan mengatakan jika kode Anda terlalu panjang sehingga Anda tidak dapat dengan mudah mengikuti kawat gigi Anda, kode Anda perlu refactoring, untuk sebagian besar bahasa.
Namun, dalam bahasa templating (seperti PHP) itu bisa valid, karena Anda mungkin memiliki blok besar HTML yang memisahkan awal dan akhir dari kondisi atau struktur loop.
sumber
while():
endwhile;
danforeach():
endforeach;
membangun dll.Ini bau kode dan biasanya mabuk dari gaya kode kuno. Sebelum refactoring IDE yang layak lebih sulit dan tidak biasa seperti sekarang, maka metode lebih lama dan komentar ini ada untuk membantu menavigasi mereka dengan lebih baik.
sumber
Ini adalah praktik mengerikan yang dibuat usang oleh banyak faktor.
Saya melihat banyak programmer Java memiliki pola pikir ini, dan itu membuat kode Java terlihat sangat kotor dan mengalihkan fokus dari kode dan menuju komentar.
Sangat tidak menyarankan untuk menggunakan ini.
sumber
Kode dibaca 10 kali lebih banyak daripada yang tertulis.
Jika itu membuatnya lebih mudah dibaca, lakukanlah.
Saya juga menyarankan kepada siapa pun yang melakukan ini agar mereka melihat beberapa cara lain agar lebih mudah dibaca. Teknik refactoring, tanda kurung pada jalur yang berbeda, dll. Yang telah disebutkan orang lain semuanya baik. Membagi hal-hal menjadi fungsi, metode atau kelas yang berbeda sehingga kode berkomentar sendiri juga bagus. Ada juga cara untuk menghilangkan sebagian besar "seandainya" dan menempatkan "untuk" loop ke tempat yang jelas, sehingga menghilangkan kebutuhan untuk semua ini.
Tapi, terkadang orang belajar. Jika ini adalah sesuatu yang mereka lakukan yang benar-benar membuat kode lebih mudah dibaca, dorong, dan dorong beberapa praktik lain juga. Orang yang belajar layak dan akan mendapat manfaat dari dorongan, terlepas dari bagaimana mereka memulai. Mengatakan "Ini buruk" tidak berguna seperti mengatakan "Hal lain ini lebih baik".
sumber
Saya punya basis kode besar (C ++) yang penuh dengan hal semacam ini:
Untuk hal sekecil ini, saya akan mengatakan ini melampaui "bau kode" menjadi "kode bau". Terutama dalam IDE di mana saya dapat mencocokkan penjepit penutup dengan keystroke untuk menemukan penjepit pembuka. Dengan metode yang lebih panjang, saya akan tetap menggunakan brace yang cocok dengan komentar terminal. Komentar seperti itu mengalihkan perhatian saya, dan saya cenderung menganggapnya sebagai kebisingan.
sumber
Di C ++ ada dua peninggalan di mana ini masih berguna dan saran "pisahkan kode Anda" tidak perlu ditahan:
Untuk ruang nama. Namespace dapat mencakup seluruh file, dan braket terakhir itu kadang-kadang dapat membuat orang menjauh, jadi menambahkan komentar untuk menunjukkan braket adalah penutupan namespace berguna. Untuk gaya pengkodean khusus di perusahaan saya ini penting karena kami tidak membuat indentasi ruang nama karena diputuskan bahwa lekukan seperti itu hanya akan membuang-buang ruang dalam file.
Untuk pasangan #ifdef / #endif. Kadang-kadang ada banyak kode di sana untuk kompilasi bersyarat, itu bisa menjadi buruk dengan bersarang, dan editor yang kita gunakan sering kali "membantu" menghilangkan lekukan, sehingga komentar berguna selama tinjauan singkat.
sumber
Bagi saya kode harus membingungkan untuk menambahkan komentar seperti yang Anda tentukan.
Jika hanya mengatakan // JIKA Pernyataan. Maka Anda harus bertanya-tanya mengapa itu ada di sana.
sumber
//endif
Alternatif untuk melihat apa yang ditutup oleh brace Anda adalah membuka yang pada kolom yang sama dengan yang dekat. Saya menemukan itu jauh lebih jelas dan lebih mudah dibaca.
Komentar ini berguna ketika biasanya sulit dilacak karena pembukaan terjadi sejak lama. Ini biasanya terjadi hanya untuk namespace (terutama yang anonim di C ++, digunakan untuk detail implementasi di unit kompilasi). Dalam kebanyakan kasus lain, harus jelas apa yang Anda tutup.
sumber
Ini sebagian besar merupakan peninggalan dari masa lalu bekerja di windows 80x24 karakter terminal, terutama jika Anda menggunakan editor berjendela seperti EVE. Bahkan sekarang, saya melakukan sebagian besar pekerjaan saya dalam sesi terminal menggunakan vim, dan saya dapat membagi sesi menjadi tiga atau empat subwindows, jadi saya hanya dapat benar-benar melihat beberapa baris sekaligus.
Yang mengatakan, saya tidak pernah benar-benar hangat ke kebaktian, meskipun itu akan menghemat bacon saya lebih dari satu kali. Saya hanya melihatnya sebagai kebisingan. Jika loop atau kondisi Anda menjadi sebesar itu, ya, Anda mungkin ingin melihat ke dalam refactoring.
sumber
Anda pada dasarnya memberikan semua alasan yang valid mengapa tidak menggunakan ini. Setiap programmer yang layak harus menerapkan ini. Jadi, mengapa tidak orang menggunakannya? Karena mereka melakukan kesalahan dan tidak tahu yang lebih baik.
sumber