Yıllarca kovboy kodlamasından sonra, kaliteli kodun nasıl yazılacağı hakkında bir kitap almaya karar verdim. Robert Cecil Martin tarafından Temiz Kod okuyorum. Bölüm 3'te (fonksiyonlar) ikili fonksiyonlar hakkında bir bölüm vardır. İşte kitaptan bir alıntı.
Gibi bariz ikili fonksiyonlar bile
assertEquals(expected, actual)
sorunludur. Gerçek olanı beklenen yere kaç kez koydunuz? İki argümanın doğal düzeni yoktur. Beklenen, gerçek sıralama öğrenmek için pratik gerektiren bir sözleşmedir.
Yazar zorlayıcı bir noktaya değiniyor. Makine öğreniminde çalışıyorum ve her zaman bununla karşılaşıyorum. Örneğin, sklearn kütüphanesindeki tüm metrik fonksiyonlar (muhtemelen alandaki en çok kullanılan python kütüphanesi) girişlerin sırasına dikkat etmenizi gerektirir. Örnek olarak sklearn.metrics.homogeneity_score girdi olarak alır labels_true
ve labels_pred
. Bu işlevin fazla alakalı olmadığı, ilgili olan şey, girişlerin sırasını değiştirirseniz hiçbir hatanın atılmamasıdır. Aslında, girişlerin değiştirilmesi kütüphanedeki başka bir fonksiyonun kullanılmasına eşdeğerdir .
Ancak kitap gibi işlevler için mantıklı bir düzeltme söylemeye devam etmiyor assertEquals
. assertEquals
Yukarıda tarif edilenler gibi sık sık karşılaştığım işlevler için ya da işlevler için bir düzeltme düşünemiyorum . Bu sorunu çözmek için iyi uygulamalar nelerdir?