Untuk sebuah proyek, saya perlu bekerja dengan berbagai jenis file dari beberapa game lama dan perangkat lunak terkait - file konfigurasi, penyimpanan, arsip sumber daya, dan sebagainya. Sebagian besar dari ini belum didokumentasikan, juga tidak ada alat untuk bekerja dengannya, jadi saya harus merekayasa balik format dan membangun perpustakaan saya sendiri untuk menanganinya.
Meskipun saya tidak mengira ada permintaan besar untuk sebagian besar, saya bermaksud untuk mempublikasikan hasil dari upaya saya. Apakah ada standar yang diterima untuk mendokumentasikan format file? Melihat sekeliling, ada beberapa gaya yang digunakan: beberapa, seperti Spesifikasi Format File ZIP , sangat bertele-tele; yang lain, seperti yang ada di XentaxWiki, jauh lebih singkat - saya menemukan beberapa di antaranya sulit dibaca; yang paling saya sukai adalah deskripsi Sistem File Kartu Memori PlayStation 2 ini , yang mencakup teks deskriptif terperinci dan beberapa 'peta memori' dengan offset dan semacamnya - ini juga sangat cocok dengan kasus penggunaan saya. Ini akan sedikit berbeda untuk format yang berbeda, tetapi tampaknya harus ada beberapa prinsip umum yang harus saya coba ikuti.
Sunting: Saya sepertinya tidak menjelaskan dengan baik apa yang ingin saya lakukan. Biarkan saya membuat contoh.
Saya mungkin memiliki beberapa perangkat lunak lama yang menyimpan konfigurasinya dalam file 'biner' - serangkaian bitfield, integer, string, dan yang lainnya semuanya direkatkan dan dipahami oleh program, tetapi tidak dapat dibaca oleh manusia. Saya menguraikan ini. Saya ingin mendokumentasikan dengan tepat apa format file ini, dengan cara yang dapat dibaca manusia, sebagai spesifikasi untuk mengimplementasikan pustaka untuk mengurai dan memodifikasi file ini. Selain itu, saya ingin ini mudah dimengerti oleh orang lain.
Ada beberapa cara dokumen semacam itu dapat ditulis. Contoh PKZIP di atas sangat bertele-tele dan sebagian besar menggambarkan format file dalam teks bebas. Contoh PS2 memberikan tabel tipe nilai, offset, dan ukuran, dengan komentar luas tentang apa arti semua itu. Banyak yang lain, seperti yang ada di XentaxWiki, hanya mencantumkan jenis dan ukuran variabel, dengan sedikit atau tanpa komentar.
Saya bertanya apakah ada standar, seperti panduan gaya pengkodean, yang memberikan panduan tentang cara menulis dokumentasi semacam ini. Jika tidak, adakah contoh bagus dan terkenal yang harus saya tiru? Jika tidak, adakah yang bisa merangkum beberapa saran bermanfaat?
struct
. Itu bekerja dengan cukup baik.