[Feragatname: Bu soru öznel, ancak gerçeklerin ve / veya yenilgilerin desteklediği yanıtları almayı tercih ederim]
Bence herkes Postel Yasası ile özetlenen Sağlamlık İlkesini biliyor :
Gönderdiklerinizde muhafazakar olun; kabul ettiğin şeyde liberal ol.
Yaygın bir iletişim protokolünün tasarımı için bunun mantıklı olabileceğini kabul ediyorum (kolay uzamaya izin vermek amacı ile), ancak her zaman kendi tarayıcılarını sessizleştiren her tarayıcıyı HTML / CSS'ye uygulamanın tamamen başarısız olduğunu düşündüm. algılama / davranış, birden çok tarayıcıda tutarlı bir oluşturma elde etmeyi neredeyse imkansız hale getirir.
TCP protokolünün RFC'sinin "Sessiz Hata" nın aksi belirtilmediği sürece kabul edilebilir olduğunu düşündüğünü, ancak ilginç bir davranış olduğunu, ancak en azını söyleyebildiğimi fark ettim.
Düzenli olarak açılan yazılım ticareti boyunca, geliştiricileri ısırdıkları için baştan sona bu ilkenin uygulanmasının başka örnekleri de var:
- Javascript yarı sütun ekleme
- C (sessiz) yerleşik dönüşümler (kesilmeseydi çok kötü olmazdı ...)
ve "akıllı" davranışların uygulanmasına yardımcı olacak araçlar vardır:
- ad eşleştirme fonetik algoritmalar ( Çift Metafon )
- dizi mesafeleri algoritmaları ( Levenshtein mesafesi )
Bununla birlikte, teknik olmayan kullanıcılarla ilgilenirken veya kullanıcılara hata kurtarma sürecinde yardımcı olurken bu yaklaşımın, kütüphane / sınıf arayüzlerinin tasarımına uygulandığında bazı dezavantajları olduğunu düşünüyorum:
- algoritmanın “doğru” olduğunu tahmin edip etmediği biraz özneldir ve bu nedenle En Az Şaşkınlık İlkesine aykırı olabilir
- Uygulamayı zorlaştırır, böylelikle böcekleri sokma şansı artar ( YAGNI ?)
- "tahmin" rutininin herhangi bir şekilde değiştirilmesi eskiden programların bozulmasına neden olabilir, çünkü yeniden düzenleme olasılıkları neredeyse başlıyor!
Ve bu beni şu soruya yönlendirdi:
Bir arayüz tasarlarken (kütüphane, sınıf, mesaj), sağlamlık prensibine ya da değil mi?
Arayüzlerimde kapsamlı girdi onaylamaları kullanarak kendim de oldukça katı olmaya meyilliyim ve belki de çok katı olup olmadığımı merak ediyordum.