Saya baru memulai dengan pemrograman fungsional dan saya bertanya-tanya tentang cara yang benar untuk mengomentari kode saya.
Tampaknya sedikit berlebihan untuk mengomentari fungsi pendek karena nama dan tanda tangan sudah seharusnya memberi tahu Anda semua yang perlu Anda ketahui. Mengomentari fungsi yang lebih besar juga tampaknya sedikit berlebihan karena mereka umumnya terdiri dari fungsi deskriptif diri yang lebih kecil.
Apa cara yang benar untuk mengomentari program fungsional? Haruskah saya menggunakan pendekatan yang sama seperti dalam pemrograman berulang?
functional-programming
comments
Tom Squires
sumber
sumber
Jawaban:
Nama fungsi harus mengatakan apa yang Anda lakukan.
Implementasinya akan memberi tahu Anda bagaimana melakukannya.
Gunakan komentar untuk menjelaskan mengapa Anda melakukannya.
sumber
Jelas ada poin dalam pertanyaan ini, karena program fungsional biasanya berada pada tingkat abstraksi yang berbeda dari yang penting.
Karena itu, gaya dokumentasi lain diperlukan. Dalam program berulang komentar dapat membantu seperti dalam kode berikut, karena esensi kode tersembunyi di balik boilerplate:
Tapi ini jelas omong kosong dalam bahasa fungsional:
Lebih baik:
sumber
Alasan kami mendokumentasikan suatu fungsi adalah karena pembaca tidak ingin atau tidak dapat membaca isi dari fungsi tersebut. Untuk alasan ini, seseorang harus mendokumentasikan fungsi besar, bahkan dalam bahasa fungsional. Tidak masalah jika mudah untuk memahami apa fungsinya dengan melihat implementasinya.
sumber
Fungsi harus dikomentari, jika nama fungsi dan nama parameter saja tidak cukup untuk menentukan kontrak .
Singkatnya, kontrak mendefinisikan apa yang diharapkan fungsi dan apa yang dijaminnya. Sebenarnya, jika
GetEmployeeList
mengembalikan daftar yang disortir tetapi tidak mengatakannya baik dalam nama fungsi atau komentar, konsumen fungsi ini tidak boleh mengandalkan perilaku ini. Ini adalah detail implementasi tanpa dokumen, dan penulisGetEmployeeList
memiliki kebebasan untuk mengubah perilaku ini kapan saja.sumber
Komentar itu sendiri tidak boleh berisi deskripsi alternatif untuk apa kode itu (yang sebenarnya diungkapkan oleh kode itu sendiri), tetapi lebih merupakan penjelasan tentang alasan mengapa kode ditulis seperti itu.
Yang mengatakan, saya tidak melihat alasan mengapa komentar harus per se berbeda dalam bahasa fungsional.
sumber
Saya mengambil pendekatan yang sama untuk mendokumentasikan semua kode saya:
Jika nama dan jenis tanda tangan tidak memberi tahu Anda dengan tepat apa fungsi ini, Anda biasanya salah.
sumber
Pada usia 25 Anda cenderung mengingat hal-hal yang jauh lebih baik. Ketika Anda bertambah tua dan Anda terlibat dengan banyak sistem dengan kode legacy (ya, kode yang Anda tulis hari ini akan menjadi kode legacy dalam 10-15 tahun) akan sangat membantu jika ada komentar.
sumber