Akal sehat mengatakan bahwa blok komentar Doxygen harus diletakkan di file header tempat kelas, struct, enum, fungsi, deklarasi berada. Saya setuju bahwa ini adalah argumen yang kuat untuk perpustakaan yang dimaksudkan untuk didistribusikan tanpa sumbernya (hanya header dan libs dengan kode objek).
TAPI ... Saya telah memikirkan pendekatan yang berlawanan ketika saya mengembangkan pustaka internal perusahaan (atau sebagai proyek sampingan untuk saya sendiri) yang akan digunakan dengan kode sumber lengkapnya. Apa yang saya usulkan adalah untuk meletakkan blok komentar besar di file implementasi (HPP, INL, CPP, dll) agar TIDAK mengacaukan antarmuka kelas dan fungsi yang dideklarasikan di header.
Kelebihan:
- Lebih sedikit kekacauan di file header, hanya pengelompokan fungsi yang dapat ditambahkan.
- Blok komentar yang dipratinjau ketika Intellisense misalnya digunakan tidak bentrok - ini adalah cacat yang saya amati ketika saya memiliki blok komentar untuk fungsi di file .H dan memiliki definisi inline di file .H yang sama tetapi disertakan dari file .INL.
Kekurangan:
- (Yang jelas) Blok komentar tidak ada di file header tempat deklarasinya berada.
Jadi, apa yang Anda pikirkan dan mungkin sarankan?
sumber
Saya suka memanfaatkan fakta bahwa nama dapat didokumentasikan di banyak tempat.
Di file header, saya menulis deskripsi singkat tentang metode tersebut, dan mendokumentasikan semua parameternya - ini cenderung tidak berubah daripada penerapan metode itu sendiri, dan jika ya, maka prototipe fungsi perlu diubah dalam hal apa pun .
Saya meletakkan dokumentasi format panjang di file sumber di samping implementasi aktual, sehingga detailnya dapat diubah seiring berkembangnya metode.
Sebagai contoh:
mymodule.h
mymodule.cpp
sumber
Memiliki komentar di header berarti bahwa semua pengguna kelas harus dikompilasi ulang jika ada komentar yang diubah. Untuk proyek besar, pembuat kode akan cenderung tidak memperbarui komentar di tajuk jika mereka mengambil risiko menghabiskan 20 menit berikutnya untuk membangun kembali semuanya.
Dan .. karena Anda seharusnya membaca dokumen html dan tidak menelusuri kode untuk dokumentasi, bukan masalah besar bahwa blok komentar lebih sulit ditemukan di file sumber.
sumber
Header: Lebih mudah membaca komentar karena lebih sedikit "gangguan" lainnya saat melihat file.
Sumber: Kemudian Anda memiliki fungsi aktual yang tersedia untuk membaca sambil melihat komentar.
Kami hanya menggunakan semua fungsi global yang dikomentari di header dan fungsi lokal yang dikomentari di sumber. Jika mau, Anda juga dapat menyertakan perintah copydoc untuk memasukkan dokumentasi di banyak tempat tanpa harus menulisnya beberapa kali (lebih baik untuk pemeliharaan)
Namun Anda juga bisa mendapatkan hasil disalin ke dokumentasi file yang berbeda dengan perintah sederhana. Misalnya: -
File saya1.h
File SAYA1.c
Sekarang Anda mendapatkan dokumentasi yang sama pada kedua fungsi tersebut.
Ini memberi Anda lebih sedikit gangguan dalam file kode pada saat yang sama Anda mendapatkan dokumentasi yang ditulis di satu tempat yang disajikan di beberapa tempat di keluaran akhir.
sumber
Biasanya saya meletakkan dokumentasi untuk interface (\ param, \ return) di file .h dan dokumentasi untuk implementasi (\ details) di file .c / .cpp / .m. Doxygen mengelompokkan semuanya dalam dokumentasi fungsi / metode.
sumber
Saya meletakkan semuanya di file header.
Saya mendokumentasikan semuanya, tetapi hanya mengekstrak antarmuka publik secara umum.
sumber
Saya menggunakan QtCreator untuk pemrograman. Trik yang sangat berguna terdiri dari Ctrl-Clicking pada suatu fungsi atau metode untuk mendapatkan deklarasi di file header.
Ketika metode dikomentari di file header, Anda dapat dengan cepat menemukan informasi yang Anda cari. Jadi bagi saya, komentar harus ditempatkan di file header!
sumber
Di c ++ terkadang implementasi dapat dipisahkan antara modul header dan .cpp. Di sini tampaknya lebih bersih untuk memasukkan dokumentasi ke dalam file header karena itu adalah satu-satunya tempat di mana semua fungsi dan metode publik dijamin.
sumber