Bu gün ve yaşta, kayışları altında yıllarca kullanılan, profesyonel ekipler tarafından inşa edilen ve halen bu güne kadar olan ürünlerin, kullanıcıya yararlı hata mesajları vermemesi beni şaşırtmaya devam ediyor . Bazı durumlarda, yalnızca küçük bir miktar ek bilgi eklenmesi, kullanıcının saatlerce sorun çıkarmasını sağlayabilir.
Hata üreten bir program, bir sebepten dolayı üretti. Kullanıcıya olabildiğince, neden bir şeylerin başarısız olduğunu bildirmek için elinden gelen her şey var. Ve yine de, kullanıcıya yardımcı olacak bilgilerin sağlanmasının düşük öncelikli olduğu görülmektedir. Bunun çok büyük bir başarısızlık olduğunu düşünüyorum.
Bir örnek SQL Server'dan. Kullanımda olan bir veritabanını geri yüklemeye çalıştığınızda, tam olarak size izin vermez. SQL Server, hangi işlemlerin ve uygulamaların buna eriştiğini biliyor Neden veritabanını kullanan işlemler hakkında bilgi içeremiyor? Herkesin Applicatio_Name
bağlantı dizgisinde bir öznitelik geçirmediğini biliyorum , ancak söz konusu makine hakkında bir ipucu bile yardımcı olabilir.
Başka bir aday, ayrıca SQL Server (ve mySQL), sevimli string or binary data would be truncated
hata mesajı ve eşdeğerleridir. Çoğu zaman, oluşturulan SQL deyiminin basit bir algı ve tablo hangi sütunun suçlu olduğunu göstermektedir. Bu her zaman böyle değildir ve eğer veritabanı motoru hata yaptıysa, neden bize o zaman kazandırmıyor ve sadece hangi lanet olası sütunun olduğunu söylüyor? Bu örnekte, onu kontrol etmede bir performans çarpması olabileceğini ve bunun yazarı engelleyebileceğini iddia edebilirsiniz. Tamam, onu alacağım. Veri tabanı motoru bir hata olduğunu anladıktan sonra, depolanacak değerler ile sütun uzunlukları arasında gerçek bir karşılaştırma yapar. Sonra bunu kullanıcıya göster.
ASP.NET'in korkunç Tablo Adaptörleri de suçlu. Sorgular çalıştırılabilir ve bir yere bir kısıtlamanın ihlal edildiğini söyleyen bir hata mesajı verilebilir. Bunun için teşekkürler. Veri modelimi veri tabanıyla karşılaştırma zamanı, çünkü geliştiriciler bir satır numarası veya örnek veri bile sağlayamayacak kadar tembeldir. (Kayıt için, bu veri erişim yöntemini asla seçerek kullanmadım , bu sadece kalıtımsal bir proje!).
Ne zaman bir C # veya C ++ kodumdan bir istisna atsam, elimde olan her şeyi kullanıcıya veriyorum. Atma kararı verildi, böylece ne kadar çok bilgi verebilirim, o kadar iyi. İşlevim neden bir istisna attı? Ne geçti, ne bekleniyordu? Bir istisna mesajının gövdesine anlamlı bir şey koymak biraz daha uzun sürüyor. Kahretsin, geliştirirken bana yardım etmekten başka bir şey yapmıyor , çünkü kodumun anlamlı şeyler attığını biliyorum.
Birisi karmaşık istisna mesajlarının kullanıcıya gösterilmemesi gerektiğini iddia edebilir. Buna katılmıyorum, ancak yapınıza bağlı olarak farklı bir ayrıntı düzeyine sahip olarak kolayca düzeltilebilecek bir argüman. O zaman bile, ASP.NET ve SQL Server kullanıcıları tipik kullanıcılarınız değildir ve problemlerini daha hızlı takip edebildiklerinden, ayrıntılarıyla ve nefis bilgiyle dolu bir şeyi tercih ederler.
Geliştiriciler bu gün ve yaşta, bir hata meydana geldiğinde en az miktarda bilgiyi sağlamanın tamam olduğunu düşünüyorlar?
Bu 2011 adamlar, gel üzerinde .