Fonksiyonun giriş parametrelerini doğrulamak için en iyi yer neresidir: arayanda veya fonksiyonun kendisinde?
Kodlama tarzımı geliştirmek istediğim için, bu konuda en iyi uygulamaları veya bazı kuralları bulmaya çalışıyorum. Ne zaman ve daha iyi.
Önceki projelerimde, işlevin içindeki her giriş parametresini kontrol edip tedavi ederdik (örneğin, boş değilse). Şimdi, bazı cevaplarda ve Pragmatik Programcı kitabında, giriş parametresinin onaylanmasının arayanın sorumluluğu olduğunu okudum.
Bu, işlevi çağırmadan önce giriş parametrelerini doğrulamam gerektiği anlamına gelir. Her yerde fonksiyon denir. Ve bu bir soruyu gündeme getiriyor: işlevin çağrıldığı her yerde kontrol koşulunun bir kopyasını oluşturmuyor mu?
Sadece null koşullarla ilgilenmiyorum, ancak herhangi bir giriş değişkeninin validasyonu ( sqrt
işleve negatif değer , sıfıra bölme, durum ve posta kodunun yanlış kombinasyonu veya başka bir şey)
Giriş koşulunun nerede kontrol edileceğine karar vermek için bazı kurallar var mı?
Bazı argümanlar düşünüyorum:
- geçersiz değişkenin
sqrt()
davranışı değişebilirse, onu arayan tarafında doğrulamak iyidir (örneğin işlev - bazı durumlarda karmaşık sayı ile çalışmak isteyebilirim, bu yüzden arayandaki durumu tedavi ederim) - kontrol koşulu her arayanda aynı olduğunda, yinelemeleri önlemek için fonksiyonun içinde kontrol etmek daha iyidir
- arayandaki giriş parametresinin doğrulanması, bu parametreyle birçok fonksiyon çağrılmadan önce sadece bir tane gerçekleşir. Bu nedenle, her işlevdeki bir parametrenin doğrulanması etkili değildir
- doğru çözüm özel duruma bağlıdır
Umarım bu soru başkalarının kopyası değildir, bu sorunu araştırdım ve benzer sorular buldum ama tam olarak bu davadan bahsetmiyorlar.