Setelah bertahun-tahun pengkodean koboi, saya memutuskan untuk mengambil buku tentang cara menulis kode berkualitas baik. Saya membaca Kode Bersih oleh Robert Cecil Martin. Dalam bab 3 (fungsi) ada bagian tentang fungsi diad. Ini adalah kutipan dari buku ini.
Bahkan fungsi diad yang jelas seperti
assertEquals(expected, actual)
bermasalah. Berapa kali Anda meletakkan aktual di mana yang diharapkan seharusnya? Kedua argumen tidak memiliki urutan alami. Pemesanan yang diharapkan dan aktual adalah konvensi yang membutuhkan latihan untuk belajar.
Penulis membuat poin yang meyakinkan. Saya bekerja dalam pembelajaran mesin dan menemukan ini sepanjang waktu. Misalnya, semua fungsi metrik di pustaka sklearn (mungkin pustaka python paling banyak digunakan di bidang) mengharuskan Anda untuk berhati-hati dengan urutan input. Sebagai contoh, sklearn.metrics.homogeneity_score sebagai input labels_true
dan labels_pred
. Apa fungsi ini tidak terlalu relevan, apa yang relevan adalah bahwa jika Anda mengganti urutan input tidak ada kesalahan akan dilemparkan. Sebenarnya beralih input sama dengan menggunakan fungsi lain di perpustakaan.
Namun buku ini tidak melanjutkan untuk mengatakan perbaikan yang masuk akal untuk fungsi seperti assertEquals
. Saya tidak bisa memikirkan perbaikan untuk assertEquals
atau untuk fungsi yang sering saya temui seperti yang dijelaskan di atas. Apa praktik yang baik untuk mengatasi masalah ini?