Ini benar-benar tergantung pada seberapa rumit kode dan matematika itu. Kode itu sendiri harus - seperti biasa - mendokumentasikan diri sendiri sebaik mungkin. Beri nama variabel dengan benar, terapkan metode logis dan ringkas (daripada fungsi-besar), tambahkan dokumentasi sebaris jika perlu (yaitu ketika tidak jelas apa yang sebenarnya dilakukan kode).
Jika Anda menggunakan algoritma yang tidak jelas, tambahkan tautan ke sumber referensi itu. Ini adalah praktik yang wajar karena memberi pengembang cara yang sangat cepat untuk mengetahui apa yang Anda lakukan. Seperti yang saya katakan, ini berguna jika itu adalah algoritma yang tidak jelas namun kompleks. Ini harus membuktikan bahwa (a) Anda melakukan sesuatu yang masuk akal, dan (b) seseorang telah menunjukkan bahwa itu berhasil.
Contoh yang baik adalah beberapa pekerjaan yang saya lakukan di sekitar pencocokan teks fuzzy. Saya melakukan penelitian besar dalam algoritma dan mengimplementasikan apa yang dikenal sebagai 'algoritma Smith-Waterman' (yang sebenarnya digunakan untuk sekuens DNA, tetapi berlaku untuk 'pencocokan' secara umum). Jadi, alih-alih hanya mengimplementasikan algoritma, saya menemukan referensi online dan menyertakan satu atau dua tautan. Seperti di atas, ini menunjukkan bahwa (a) algoritma saya cocok dengan algoritma yang dipublikasikan, dan (b) algoritma telah ditinjau dan terbukti berfungsi.
Namun ini tidak serta merta menjelaskan cara kerja kode, dan apa yang harus dilakukan berbagai kelas. Saat Anda menulis beberapa dokumentasi 'nyata' - panduan pengembang untuk sistem - Anda harus menjelaskan apa yang telah Anda lakukan dan memberikan informasi yang cukup untuk dukungan di masa mendatang. Menurut pendapat saya, dokumen ini harus dapat dibaca oleh orang yang secara teknis agnostik; tidak perlu 'dibodohi' tetapi harus mengecualikan jargon dan tidak bergantung pada asumsi pengetahuan.