Şimdiye kadar herkesin bu maksimimin bir hata olduğunu kabul ettiği izlenimini edindim. Ancak son zamanlarda 137 kez ("bugün itibariyle") "hoşgörülü" bir yorum yapan bu cevabı gördüm .
Kanımca, tarayıcıların kabul ettiği şeydeki açıklık, HTML ve diğer bazı web standartlarının birkaç yıl önce olduğu ve son zamanlarda bu karmaşadan düzgün bir şekilde kristalleşmeye başlamış olmaları konusundaki karışıklığın doğrudan nedenidir. Gördüğüm şekilde, kabul ettiğin şeylere karşı esnek olmak buna yol açacak.
Maksimin ikinci kısmı, "belirtimde gerekli olmadıkça, bir hata mesajı döndürmeden, hatalı girişi sessizce atın" ve bu sınır çizgisini rahatsız edici hissediyor. Bir şey sessizce başarısız olduğunda başını duvara çarpmış olan herhangi bir programcı ne demek istediğimi anlayacaktır.
Peki, bu konuda tamamen yanlış mıyım? Programım kabul ettiği konusunda sessiz olmalı ve hataları sessizce yutmalı mı? Yoksa bunun ne anlama geldiğini yanlış yorumluyorum mu?
Asıl soru "program" dedi ve herkesin bu konudaki fikrini alıyorum. Programların esnek olması mantıklı olabilir. Bununla birlikte, gerçekten demek istediğim, API'ler: insanlar yerine, diğer programlara açık arayüzler . HTTP bir örnektir. Protokol sadece diğer programların kullandığı bir arayüzdür. İnsanlar hiçbir zaman "If-Modified-Since" gibi başlıklara giren tarihleri doğrudan vermezler.
Öyleyse, soru şudur: Bir standardı uygulayan sunucu, standart tarafından gerekli olana ek olarak, esnek olmalı ve tarihlerin başka biçimlerde de olmasına izin vermeli midir? İnsan arayüzünden ziyade "yumuşak" olmanın bu duruma uygulanması gerektiğine inanıyorum.
Sunucu yumuşaksa, genel bir gelişme gibi görünebilir, ancak pratikte yalnızca borçluğa dayanan ve bu nedenle biraz farklı şekillerde yumuşak olan başka bir sunucu ile çalışamayan müşteri uygulamalarına yol açtığını düşünüyorum .
Öyleyse, bazı API’leri ifşa eden bir sunucu yumuşak mı olmalı yoksa bu çok mu kötü bir fikir?
Şimdi kullanıcı girişi esnek kullanımı üzerine. YouTrack'i (bir hata izleme yazılımı) düşünün. Markdown'u andıran metin girişi için bir dil kullanır. Bunun dışında "yumuşak". Örneğin yazma
- foo
- bar
- baz
olduğu değil işaretli liste oluşturma belgelenmiş yolu ve henüz işe yaradı. Sonuç olarak, iç böcek avcımız boyunca çokça kullanıldı. Bir sonraki sürüm çıkar ve bu hafifletici özellik biraz farklı bir şekilde çalışmaya başlar ve bu (yanlış) özelliği kullanan (yanlış) bir grup listeyi kırar. Madde imli listeler oluşturmanın belgelenmiş yolu elbette hala işe yarıyor.
Öyleyse, yazılımım hangi kullanıcı girişlerini kabul ettiğinde esnek olmalı mı?