Hanya karena penasaran, saya mulai bertanya-tanya apakah bahasa yang tidak memungkinkan komentar akan menghasilkan kode yang lebih mudah dibaca karena Anda akan dipaksa untuk menulis kode komentar sendiri.
Kemudian lagi, Anda bisa menulis kode yang sama buruknya dengan sebelumnya karena Anda tidak peduli. Tapi apa pendapat kamu?
Jawaban:
Saya pikir programmer akan mencari cara lain untuk menambahkan komentar ...
sumber
"this is a comment";
Saya tidak berpikir sesederhana itu:
bahkan dalam kode yang dapat ditulis sendiri dan didokumentasikan sendiri, ada situasi yang sah di mana Anda harus menulis komentar.
sumber
Andaikata Anda seorang programmer yang sempurna (yang bukan Anda, tapi anggap saja) ...
Ada banyak efek tidak jelas yang dapat terjadi dalam kode ketika Anda berinteraksi dengan hal-hal yang tidak Anda tulis. Sebagai contoh, bisa ada cacat desain perpustakaan orang lain, atau (jika Anda seorang pengembang kernel) di perangkat keras orang lain. Memiliki komentar untuk menjelaskan mengapa Anda menggunakan kludge tertentu di tempat tertentu dapat menjadi sangat penting untuk memahami kode, dan memastikan kludge tidak dihapus (merusak barang).
sumber
Sulit bagi saya untuk membungkus pikiran saya di sekitar gagasan bahwa menghapus opsi dari suatu bahasa entah bagaimana akan membuat program yang ditulis dalam bahasa tersebut lebih baik. Komentar tidak wajib, dan menulis kode dokumentasi sendiri juga tidak.
Tidak ada pengganti untuk praktik pembangunan yang baik.
sumber
Secara teori, COBOL pada awalnya dirancang sedemikian rupa sehingga dimaksudkan untuk mendokumentasikan diri sendiri sehingga bahkan non-pengembang (yaitu pengawas) dapat meninjau kode yang ditulis dan menentukan apa yang sedang terjadi. Namun, dalam praktiknya, ketika sebuah program tumbuh lebih kompleks, sulit untuk memahami segala sesuatu yang terjadi hanya melalui kode.
Sementara menghapus komentar mungkin memaksa beberapa pengembang untuk menulis kode yang lebih baik di dokumentasi diri, masih ada pengembang di luar sana yang menulis kode kurang didokumentasikan (yaitu nama variabel
a
,b
,c
, dll) dan itu adalah kebiasaan bahwa orang perlu dilatih keluar dari dari. Dalam kasus tersebut, menghapus komentar tidak akan memengaruhi pengembang tersebut dan dapat menghalangi upaya pengembang lain untuk menjelaskan bagian kode yang rumit.sumber
argument = 3.0; aa = sqrt( argument ); bb = f( aa );
Sigh.Setiap program ditulis untuk mengimplementasikan persyaratan fungsional yang berada di luar program, baik yang tertulis atau hanya di kepala seseorang.
Saya pikir fungsi komentar yang paling penting adalah membuat pemetaan antara persyaratan dan kode. Alasan pemetaan diperlukan adalah untuk mengizinkan perubahan tambahan. Ketika terjadi perubahan pada persyaratan, perlu untuk membuat perubahan yang sesuai dengan kode, jika kode tetap menjadi solusi untuk persyaratan. Komentar berfungsi sebagai peta jalan untuk perubahan.
Jika bahasa adalah domain-spesifik-bahasa ideal (DSL) yang ideal disesuaikan dengan masalah yang dipecahkan, maka pemetaan harus menjadi isomorfisme sederhana, dan komentar tidak akan diperlukan. Kode sumber hanya akan menyatakan masalah, dan tidak ada lagi yang perlu dikatakan. Solusi masalah akan terkubur dalam implementasi bahasa.
Karena bahasa tempat kami bekerja bukanlah DSL seperti itu, dan akan tetap demikian untuk beberapa waktu, kami masih membutuhkan komentar . Ini masalah derajat. Terkadang masalahnya cocok dengan bahasa yang ada, tetapi biasanya tidak.
Lihat juga...
sumber
Saya bekerja di suatu tempat yang tidak memungkinkan komentar sebaris (yaitu Anda hanya dapat memiliki komentar di bagian atas fungsi). Tidak, itu tidak membuat kode lebih mudah dibaca. Itu membuat urutan besarnya lebih buruk.
sumber
Saya menghindari kode komentar, dan itu berfungsi.
Saya menghindari semua komentar dalam-kode (sebaris atau aliran) yang mendukung docblock + varables yang bermakna + pemrograman sederhana , dan itu berfungsi.
Dan ya, saya tahu docblock adalah komentar teknis, masih, mereka sebenarnya saling melengkapi kode, tidak mengganggu dan "standar" ... semua komentar umum tidak.
Apa yang saya pikir bisa berfungsi sebagai pengganti komentar: bahasa docblock standar / sintaks / idiom, sesuatu seperti penjelasan di java.
sumber
doxygen
bekerja untuk ini? en.wikipedia.org/wiki/DoxygenTidak hanya itu tidak akan mempengaruhi kualitas - seperti yang diamati orang lain, itu sebenarnya akan sangat mengganggu.
Saya yakin sebagian besar dari kita telah melakukan hal seperti ini dari waktu ke waktu:
Betapa menjengkelkannya jika Anda tidak bisa mengomentari beberapa baris kode untuk mencari tahu dari mana bug itu berasal?
Terlepas dari komentar tentang bagaimana kode beroperasi, hal-hal praktis sederhana seperti itu atau memasukkan
TODO
catatan yang mudah digunakan adalah hal-hal yang membuatnya lebih mudah untuk memperbaiki masalah kecil dan mengingat apa yang kami lakukan ketika kami mulai menulis kode.sumber
Komentar seperti ringkasan buku. Tentu, Anda dapat memahami semuanya dengan membaca kode, tetapi mengapa Anda ingin membaca seluruh halaman ketika bisa diringkas dalam satu baris komentar?
sumber
Sementara saya setuju dengan jawaban lain yang bahkan mendokumentasikan kode diri membutuhkan komentar, itu hanya relevan untuk saat ini bahasa .
Saya pikir pertanyaan sebenarnya adalah, "Apakah mungkin untuk merancang bahasa pemrograman baru yang tidak memerlukan komentar?" Itu harus cukup tinggi dengan abstraksi yang besar. Setiap pernyataan dan fungsi akan dipaksa untuk dapat dibaca melalui sintaks bahasa.
sumber
Pemrogram yang tidak disiplin akan menulis kode yang buruk, apa pun bahasanya.
Membuat penasaran yang python, yang hanya memiliki swasta dengan konvensi (_-prefix), tidak tidak melakukan usaha apapun ke polisi ini, dan banyak kode baik masih sedang ditulis.
Kata-kata kasar: Kadang-kadang saya berpikir bahasa yang lebih permisif akan memaksa lebih banyak orang untuk belajar kode dengan benar, bukan sebaliknya (yaitu hanya Java satu arah dan terkutuklah Anda jika Anda ingin menganggap fungsi sebagai objek kelas satu).
sumber
Saya kira: mungkin tidak. Mengapa? Karena Anda harus menyandikan "mengapa" sebagai formalisme dalam bahasa dan karena "mengapa", apakah disandikan dalam bahasa atau komentar dalam bahasa tetap kurang dimanfaatkan oleh para programmer.
sumber
Kode tentu saja dapat berkomentar sendiri dalam menjelaskan apa yang dilakukannya, tetapi kode tidak selalu mungkin untuk menjelaskan alasannya ia melakukannya. Di situlah komentar paling dibutuhkan.
Jika, misalnya, bagian kode diperlukan untuk mematuhi peraturan tertentu, bagaimana Anda menjelaskannya tanpa komentar? Jika algoritma yang digunakan oleh potongan kode tertentu dijelaskan dalam makalah yang ditulis pada tahun 1998 oleh M. Matsumoto dan T. Nishimura, bagaimana Anda menjelaskannya tanpa komentar? Jika suatu algoritma tidak memberikan fungsi optimal yang tepat tetapi membuat kompromi yang sangat spesifik yang dapat menyebabkan masalah di masa depan jika kode lain diubah, bagaimana Anda menjelaskannya tanpa komentar?
Bagaimana jika satu bagian kode diaudit oleh auditor independen sehingga tidak dapat dimodifikasi tanpa memvalidasi audit tersebut dan kode tersebut digunakan untuk membangun produk yang kepatuhannya terhadap audit tersebut diperlukan oleh pelanggan Anda. Bagaimana Anda menunjukkan itu tanpa komentar?
sumber
Saya selalu berpikir bahwa mungkin menyenangkan untuk memiliki komentar satu kata sehingga jika Anda awalan kata dengan simbol (katakanlah titik dua), kata itu akan diabaikan. Dengan begitu, Anda bisa mengatakan bahwa ia hanya mengizinkan satu kata komentar di dalam ekspresi-s. Misalnya, Anda dapat mengubah ini:
... dalam hal ini:
Jika benar-benar harus, Anda dapat membuat beberapa komentar satu kata untuk membentuk komentar sebaris:
Tentu saja, ini sulit untuk diketik. Bahkan, itulah intinya. Ini mendorong Anda untuk menggunakan komentar sebaris hemat dan menjaga mereka singkat dan to the point. Tetapi saya merasa bahwa saya akan kesulitan meyakinkan siapa pun untuk menggunakan bahasa tersebut.
sumber
Ini ganda atau tidak sama sekali. Beberapa programmer tidak melakukan apa pun untuk membuat kode dapat dibaca. Tidak mengizinkan komentar akan memperkuat ini. Beberapa programmer menulis komentar yang baik, bahkan jika mereka akan lebih baik jika mereka adalah kode refactoring daripada komentar - menghapus komentar mungkin memaksa mereka untuk melakukan refactoring yang lebih baik.
Alasan mengapa ini adalah ide yang bagus: - Tidak ada
Alasan mengapa ini adalah ide yang buruk: - Ada banyak programmer yang lebih mengerikan daripada programmer yang baik tapi tidak hebat - Seharusnya selalu ada beberapa komentar untuk gotcha, ringkasan, dll. - Bahkan jika Anda menghindari komentar, Anda mungkin akan menggunakan komentar sebagai tahap dalam perjalanan: berikan komentar saat Anda sedang menulis sesuatu, lalu kembali dan lakukan refactor. Tetapi Anda tidak dapat selalu melakukannya dengan segera karena Anda masih belajar. - Ini akan mendorong orang untuk mengerjakannya - Siapa yang akan menggunakannya? Orang-orang yang menulis kode yang tidak dapat dibaca dan menginginkan alasan (buruk) dan orang-orang yang sudah terpikat pada ide tersebut (yang bisa "tidak menulis komentar" untuk memulai). Jika ini yang Anda inginkan, tulis saja standar pengkodean yang menunjukkan bagaimana Anda ingin orang melakukannya.
Alasan di mana ini mungkin relevan - Di mana itu bisa berguna adalah sebagai bagian dari sistem untuk membuat "tidak berkomentar" lebih baik, misalnya. bahasa atau IDE yang memiliki dukungan yang baik untuk sesuatu yang lebih baik daripada komentar dan sebagai bagian dari nada, eschews komentar. Saya tidak tahu bagaimana cara kerjanya, tetapi itu adalah poin yang baik setidaknya untuk dipikirkan.
sumber