Senin olman gereken kadar savunmacı olurdum. Biraz belirsiz, sanırım ama açıklamaya çalışacağım.
Bir yöntemi düzelttiğinizde, bu yöntemde giriş parametreleri varsa, bu parametrelerin ne olmasını beklediğinize karar vermeniz gerekir. Bir uygulama içindeki durumlarda ve yerlerde bu farklılık gösterecektir. Örneğin, bir yöntem veya kod parçası bir kullanıcı girişinden veri kabul ediyorsa, tüm kod tabanını kapsamak ve bir hata mesajı veya kabul edilemez verileri göstermenin güzel bir yolu aracılığıyla herhangi bir girişi buna göre işlemek istersiniz.
Yöntem açık bir API ditto ise. Ne geldiğini kontrol edemezsiniz, bu nedenle tüm yönleri ve programı buna göre denemeyi ve kapsamayı beklemelisiniz.
Projenizin çekirdek motorunda üretilen yöntemler için burada bir karar vereceksiniz. Gelen verilerin gelmeden önce önceden tarandığını ve doğrulandığını varsayabilir miyim yoksa gerekli kontrolleri yapmam gerekir mi? Sanırım bu, yöntemin kavramsal düzeyine ve kontrol etmek için kabul edilebilir bir yer olup olmadığına bağlıdır. Düşünebileceğim şeyler:
1) Bu kontrolü yapmak için ihtiyacım olan tek yer burası mı? Bu değişkenin bu durum için birçok farklı yerde kontrol edilmesi gerekecek mi? Eğer öyleyse, kontrolü bir kez zincirden daha yükseğe yapabilir ve daha sonra geçerliliğini üstlenebilirim
2) Sistemin diğer bileşenlerinin yazdığım yöntemler ve arabirimlerle çalışması bekleniyor mu? Öyleyse, hata ayıklama onay ifadeleri, hata ayıklama istisnaları, yöntem yorumlama ve genel sistem mimarisi aracılığıyla istediğiniz sonucu kontrol edebilir veya verilerin kontrol edilmesi gerekir.
3) Kodda bu noktada başarısızlığın sonuçları nelerdir. Her şeyin başarısız olmasına neden olur mu? Herhangi bir hata başka bir yerde yakalanacak mı ve en azından bu hata yakalanacak mı?
4) Buraya bir çek koymak mantıklı mı? Bazen bir noktada olası bozuk verilerin bir kontrolünü yapmak, ancak bu noktada sorunun çözülmesine yardımcı olmak ve hata olmamasına yardımcı olmak, onu örtmeye yardımcı olabilir. Bu noktada, yalnızca asıl sorunu bulmak için farklı bir sorunu takip ederek saatler geçirebilirsiniz, çünkü kullanıcı / geliştiricinin bildirildiği kişiye kademeli olan olaylar zincirindeki veriler üzerinde geçerli bir kontrol yapıldı.
Genel olarak savunmacı bir programcıyım ancak kapsamlı TDD ve uygun birim testi ile kodları gerekli seviyelerde kontrol edebileceğinize ve daha düşük seviyeli bölümlere ulaştığında çalıştığından emin olabileceğime inanıyorum. .