Bir sunucu kabul ettiği şekilde “yumuşak” olmalı ve “hatalı girişi sessizce at” mı?


27

Ş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ı?


4
"Yanlış girişi sessizce sil" ile ilgili olarak, her durumda hatalı giriş olarak nitelendirilmesi gerekenleri rica ediyorum. Bir kullanıcıya bir soru sorar ve "evet" veya "hayır" beklerseniz, "EVET" hatalı giriş midir? Peki ya "y"? Peki ya "oui"? Genel olarak, kullanıcıya girdilerinin beklediğiniz gibi olmadığını söylemekten çekinmeyin. Ancak mümkün olduğunca kapsayıcı olduğunuzdan emin olun - aklımda, "yumuşak" derken kastedilen budur.

3
Uygulamanızın kullanıcı arkadaşlarıyla ilgili olan son kullanıcı girişi hakkında konuşuyorsanız, güçlü olmalısınız; otomatik makine tarafından üretilen giriş için (bir API'den), ayrıntılı (katı) olmalısınız.
Burhan Khalid

2
Aslında, HTML’nin esnekliği neden bu kadar popüler hale geldiğiydi (ve XHTML’nin kesinliği de neden düştü).
Oliver Weiler

1
Bence anahtar, incelikle başarısız olmasına izin verebileceğiniz bir senaryo ise, olayı en azından günlüğe kaydettiğinizdir.
Rig

2
@OliverWeiler XHTML'nin başarısızlığının tamamen gereksiz olduğu gerçeğiyle bir ilgisi olduğunu hissediyorum. HTML zaten orada ve biraz çalıştı. Ayrıca, HTML elbette son derece popüler olsa da, bu teknolojiyi başarı olarak adlandırmamız üzücü. Talebi karşılar ancak Symbian'ın akıllı telefonlara olan talebi karşılaması gibi.
Roman Starkov

Yanıtlar:


9

Tabii ki tamamen haklısın. Programlar hiçbir zaman “esnek” olmamalıdır; çünkü yalnızca sorunları maskelemek için kullanılır. Sorunlar halının altına süpürülmeden vurgulanmalıdır. Bilgilendirici bir hata mesajı, bir programın kullanıcıya yardımcı olması için mutlak bir zorunluluktur.

Yanlış / geçersiz veri sağlandığı zaman, bu verinin sağlayıcısı (kullanıcı mı yoksa başka bir programın çıktısı olsun) muhtemelen geçersiz olduğunu bilmiyordu. Hatanın yutulması, geçersiz verilerin çoğalmasına neden olan geçerli olduğu (veya olabileceği) inancında kalacaktır.

Sistemlerin birlikte çalışmasının tek yolu bu birlikte çalışmanın tamamen ve açıkça tanımlanmasıdır. Spesifikasyonun dışındaki verileri kabul eden bir program, spesifikasyonlar tarafından geçersiz olsa bile, fiili olarak kabul edilen bir veriye sahiptir ; bu, sadece uyumluluk zorlaştırmaz, aynı zamanda artık resmi olarak tanımlanmadığı anlamına gelir. Programın kendisi şimdi fiili standarttır. Bu nedenle, esnek programlar daha fazla geliştirmek veya değiştirmek mümkün değildir, çünkü çalışma biçiminde en ufak bir değişiklik yapamazsınız.


25

Her şeyin, hedef demografinizin kim olduğuna bağlı olduğunu düşünüyorum. Programcılar ise, kesinlikle hayır. Programınız çok başarısız olmalı ve kanlı cinayetleri bağırmalı. Ancak, hedef kitleniz programcı değilse , o zaman programınız istisnaları zarafetle yerine getirebileceği konusunda yumuşak olmalıdır, aksi halde fısıltı tatlı kanlı cinayeti.

Bir örnek çalışma olarak, NPAPI Flash oynatıcısını alın. Meydana gelebilecek hataların% 99'unu gerçekten önemsemeyenler için bir "sürüm" sürümü var, ancak bir şey ters gittiğinde kanlı cinayeti haykırmak için kullanılabilecek bir "hata ayıklama" sürümü de var. Her bir destek açıkça Flash içeriğini oynatıyor, ancak iki tamamen farklı demografi hedefleniyor.

Sonunda, önemli olan şeyin şu olduğunu düşünüyorum: Kullanıcılarınız neye önem veriyor?


4
Programcıların dışında hedef kitle olduğunu iddia eden Unixy komut satırı araçlarının büyük çoğunluğu yine de hata yapan kullanıcılar için işe yaramaz. Programcı olmasanız bile, bir programın problemi açıklaması, saçma veya istenmeyen bir şey yapmaktan daha iyidir.
Timwi

2
@romkyns: Tamamen değil, uygulamanızın hedeflenen kullanıcılar için anlamlı olan hataları işlemesi gerektiğini söylüyorum.
Demian Brecht

@Timwi: Bu durumda, bu Unixy komut satırı araçları kötü bir şekilde tasarlandı;)
Demian Brecht

3
@romkyns - Bence iyi bir örnek olacaktır: Hata ayıklama modunda, herhangi bir problemi durdurmak ve neyin yanlış gittiğini söylemek istersiniz. Üretim modunda, programınızın olabildiğince iyi çalışmaya devam etmesini ve çözebileceği tüm sorunları günlüğe kaydetmesini istiyorsunuz. Bu şekilde, programcılar neyi yanlış yaptıklarını görebilir ve düzeltebilirler, ancak kullanıcılar düzeltemedikleri şeylerden rahatsız olmazlar. Bazı problemler açıkça çözülemez, ancak iyi bir örnek, stil kurallarından birini anlamıyor olsanız bile, yine de bir site oluşturabileceğiniz CSS stil kurallarıdır.
Monica

1
@ BrendanLong'un yorumu kafadaki çiviyi büyük ölçüde vuruyor - bazen çıktı üretmek doğru olmaktan daha önemli. Bazı hatalar (veya uyarılar), kullanıcı girişi olmadan, zarif bir şekilde kurtarılabilir; Bu durumlarda uygulamanızın ne yapmasını istediğinize karar vermek size bağlıdır.
Daniel B,

7

İki tür "yumuşak" vardır: Birincisi yanlış girdiyi kabul edip anlamayı denemek, diğeri ise farklı girdi tiplerini kabul etmektir.

Genellikle, mümkün olduğunda her zaman ikincisini istersiniz. Birincisi, hızlı ve sert bir şekilde ölmen. Bir örnek: Tarihler.

İşte geçerli, geçersiz ve belirsiz de dahil olmak üzere bazı örnek girdiler.

  • 2011-01-02
  • 01/02/2011
  • Jan 2, 2011
  • 2-Jan-2011
  • Green

Buradaki tek geçersiz giriş var: Green. Tarih olarak kabul etmeye bile çalışmayın. Yana Greenbir tarih belli değil, bu sessiz başarısız kabul edilebilir bir durumdur.

01/02/2011geçerli, ancak belirsiz. ABD tarihi olarak girilip girilmediğini bilmiyorsunuz (2 Ocak) (1 Şubat). Burada, muhtemelen yüksek sesle başarısız olmak ve kullanıcıdan kesin olmayan bir tarih istemek en iyisidir.

2011-01-02genellikle belirsiz olarak kabul edilir, bu yüzden devam etmek ve "YYYY-AA-GG" formatı olduğunu varsaymak genellikle iyidir ve sadece satırın ilerisinde başarısız olur. Kullanıcı girişi ile uğraşırken, bu biraz yargılama çağrısı.

Jan 2, 2011ve 2-Jan-2011onlar da kabul edilmelidir, geçerli ve kesin bulunmaktadır. Ancak, The Second of January of the year 2011aynı zamanda geçerli ve açık, ama o kadar ileri gidiyor yumuşaklık uğruna aşırı derecede ümitsizdir. Devam et ve sessizce başarısız ol Green.

Kısacası , cevap "bağlıdır". Nelerin girilebileceğine bir göz atın ve çakışan türde girişleri ( DD/MM/YYYYvs gibi MM/DD/YYYY) asla kabul etmediğinizden emin olun .

Bağlantılı soru / yorum bağlamında , bu bir durumdur 2011-01-02. Giriş JSON'a benziyor ve mimetype yanlış olsa bile JSON gibi doğrulanacak; devam edin ve çizginin ilerisindeki bir noktada başarısız olsa bile kullanmaya çalışın.


1
Burada düşünmediğin bir şey var. Eğer kullanıcı o dizgeyi yazdıysa, evet, çeşitli biçimleri kabul etmeliyim, bundan şüphem yok. Ama biz API'lerden bahsediyoruz. API'lerin müşterileri başka programlardır. Tarih biçiminde yumuşaksa, bu API'yi ortaya çıkaran her gelecekteki sunucunun tamamen aynı şekilde esnek olması gerekir veya uyumsuzluk riski vardır. İhmal, yardımcı olmaktan ziyade zararlı olmakla sonuçlanır, sence de öyle değil mi?
Roman Starkov

1
@romkyns Sanırım esnekliğin nerede olduğunu yanlış anlıyorsun. API ne de yumuşak olmalı kabul (o tüm anlamalıdır 2011-01-02, Jan 2, 2011ve 2-Jan-2011değil ne de bu uygulamaya çok zor değilse,) verir . Bu API'nın gelecekteki müşterileri, bir tanesini doğru bir şekilde girdikleri sürece herhangi bir tanesini bilmeye bile ihtiyaç duymazlar. İdeal olarak, API katmanı bunların hepsini, iletilmeden önce kodun kullandığı aynı iç gösterime dönüştürür.
Izkata

@romkyns Çıktı , örneğin, her zaman 2011-01-02formatta olabilir ve belgelerinize koyacağınız şey bu olabilir. Hiç zararlı bir etki görmüyorum.
Izkata

4
@ İzkata: Yanlış anladınız. Sadece ikili olarak kullanılabilen eski bir program olduğunu hayal edin. Eski ile aynı girdileri kabul eden yeni bir program yazmanız gerekir . Eski program kabul ettiği şekilde iyi tanımlanmışsa, işiniz iyi tanımlanmıştır. Hoşgörülü ise, o zaman işin mümkün değildir.
Timwi

1
Kesinlikle katılmıyorum. kullanıcı tarafından girilen girdi değilse, hem girişte hem de çıktıda daima katı olun. Hizmetinizin yeniden uygulanması gerektiğinde ne olur? Mümkün olan tüm tarih biçimlerini belgelediniz mi? Eski müşterilerin kırılmasını istemediğiniz için hepsini uygulamanız gerekecek. Lütfen, makine tarafından oluşturulan tüm tarih örnekleri ve periyotları için ISO 8601'i kullanın: iyi tanımlanmış ve kütüphanelerde yaygın olarak mevcuttur. Bu arada, 2011-01-02 gerçekten ne anlama geliyor? 00: 00'dan 2.00'a kadar olan süre 3.'te? Hangi zaman diliminde?
Dibbeke

6

Sessizce başarısız olmak, yapabileceğin en kötü şey. Sessiz hata ile bir API hata ayıklama denediniz mi? Bu imkansız .

"Kurtarmak için elinizden geleni yapın ancak ayrıntılı hata gönderin" ve "Sessiz hata" var.


3

Bana öyle geliyor ki, Postel Yasası - “Yaptıklarında muhafazakar ol, başkalarından kabul ettiğin şeyler konusunda özgür ol”, JSON hizmeti için tartışılıyor. Bu genellikle UI'ye değil web servislerine uygulanır.

UI için yapıcı kullanıcı geribildirimi ve kullanıcı girdisini kontrol etmek, kullandığımız kuraldır.


Ancak buradaki cevaplara bakarsanız, herkes bunun yalnızca UI'ler için, yani orijinal kanunun tersi için mantıklı olduğu konusunda hemfikir gibi görünüyor.
Roman Starkov,

Ne dediğinizi anlıyorum ve posterlere temiz ve katı bir API / Hizmet'in hedef olduğunu kabul ediyorum, ancak daha iyisi veya daha kötüsü için hizmetlerime bir biçimde veya başka bir şekilde 'sağlamlık' eklediğimi biliyorum. Genellikle sınırda bir değer çevirisi veya iki. Anlamı net olduğu sürece, uygulama mesajın nasıl işlendiğini bilir ve hiçbir iş kuralının ihlal edilmemesi durumunda sağlamlık eklemek birlikte çalışabilirliğe yardımcı olur.
MarcLawrence

Başkası gidip şartnamenizi uygulayana kadar, sadece yüzlerce müşterinin güvendiği "sağlamlığın" aslında teknik özellikte olmadığını ve tersine mühendislik yapılması gerektiğini bulmak için ...
Roman Starkov

3

Bunun iyi bir şekilde TAOUP Bölüm 6, bölüm 6'da ele alındığını düşünüyorum. Spesifik olarak, bir programın bir girdiyle yapabileceği şeyi yapması gerektiğini söyleyen onarım kuralı, doğru verileri iletir ve doğru cevap başarısız olursa, o zaman ASAP yapın.

Benzer bir konsept savunma programlamasıdır . Sen yok Alacağınız giriş tür bilmiyorum, ama program kapsayacak şekilde sağlam yeterli olacaktır tüm vakaları. Bu, geri kazanım durumlarında, karıştırılmış girdi gibi bilinen sorunlar için programlanması ve bilinmeyenleri ele almak için tüm vakaların yakalanması gerektiği anlamına gelir .

Bu nedenle, hatalı girişi sessizce silmek , o girişi kullandığınız sürece iyidir . Asla eskisi gibi yere düşürmemelisin.


Bir API için, esnek olmanın bir programla aynı olduğunu düşünüyorum. Giriş hala yanlıştır , ancak mümkün olduğunca tamir etmeye çalışıyorsunuz. Fark, geçerli onarım olarak kabul edilir . Belirttiğiniz gibi, esnek bir API, insanlar varolmayan "özellikleri" kullandıkça sorunlara neden olabilir.

Tabii ki, bir API kompozisyon kuralının sadece daha düşük bir versiyonudur . Dolayısıyla , bir arayüz olduğu için gerçekten en az sürpriz kuralına giriyor.

Spencer'dan alıntı yaptığı gibi, "bulanık" girdiler hakkında tartışılabilecek yüzeysel benzerlikten kaçının. Bu şartlar altında, normalde her şeyin programın onarım yapamayacağına işaret ettiğini , çünkü neyin istendiğini bilmeyeceğini ve kullanıcı tabanı için en az şaşırtıcı olduğunu iddia ediyorum .

Ancak, birçok "standart" olan tarihlerle uğraşıyorsunuz . Bazen bunlar bile tek bir programda (zincir) karışıyor. Bir tarihin beklendiğini bildiğinizden, tarihi tanımayı denemek iyi bir tasarımdır. Özellikle tarih bazı harici programlardan geliyorsa ve bir saniye boyunca değiştirilmemiş olarak geçiyorsa size doğru yol alır.


2

Sunucuya dağıtılan programların çoğu zaman her dakika veya bazen her saniye binlerce istek alması gerekir. Bir sunucu programı istemcilerden hatalı girişi kabul edip düzeltirse, 2 dezavantaja sahip olacağından korkuyorum:

  1. Değerli sunucu zamanı kaybı. Saniyede 1000'den fazla istek olması durumunda, her istemdeki hataları kontrol etmek her müşteri için yavaş yanıtı yansıtabilir.
  2. Doğru girdi sağlayan müşteri / müşteri programlarına haksızlık. Bunun dışında, bir sunucu tarafı programcısı sunucu koduna oturduğunda, hatalı girdilerin ne olabileceğinin çeşitli durumları hakkında düşünmek zorundadır. Buna kim karar verecek?

Sunucu programları hatalı girişi kabul etmemelidir, ancak hatalı bir giriş varsa sunucular istemciye bir hata mesajı döndürmelidir.


2

İdeal davranış, kavramsal olarak, güvenli bir şekilde yapılabilecekleri yapmaktır, aynı zamanda herhangi bir problemi çözebilecek birisinin bir şekilde onlar hakkında bilgilendirilmesini sağlamaktır. Uygulamada, elbette, ikinci kısıtlama doğrudan buluşmak imkansızdır ve bu nedenle soru şüpheli girdilerle başa çıkmak için en iyisidir.

Bir protokolün tasarımında, spesifikasyonda veya "dil" tasarımında çok yardımcı olabilecek bir şey, anlaşılmayan dört potansiyel madde kategorisini ayırt etmek için bir araç kullanmaktır:

  1. Anlaşılmadığı takdirde filtrelenmesi gereken şeyler.
  2. Anlaşılmadığı takdirde göz ardı edilmesi gereken, ancak yine de verinin aktarılması gerektiğinde tutulması gereken şeyler (belki de, onu anlamayan en az bir aşamadan geçtiğini belirtmek için bir tür sargıda)
  3. Anlaşılmadığı takdirde bir uyarı oluşturması gereken ancak veri kurtarma girişimini engellememesi gerekenler (örneğin, bir web sayfasında, türü bilinmeyen ancak dosyanın içinde sonu iyi tanımlanmış olan bir nesne kırmızı olarak gösterilebilir) Sayfanın geri kalanının oluşturulmasını engellemeden "X".)
  4. Onları anlayamayacak herhangi bir şeyin başka yerlerde şiddetli ve kurtarılamaz problemlere sahip olduğunu gösterebilecek şeyler (örneğin, kalan verilerin sıkıştırıldığına ve gerekli sıkıştırmayı gerçekleştirebilecek herhangi bir şey tarafından anlaşılacak olan herhangi bir şeyin olduğu).

Bir veri formatının herhangi bir sürümünü okuyabilen uygulamaların, hangi sürümlerin daha sonraki sürümlerle uyumlu olarak üretildiğini algılayabileceği iyi tanımlanmış bir sözleşmeye sahip olmak, geçici uyumluluk önlemlerinde kamaya çalışmaktan çok daha iyi bir yaklaşımdır daha sonra. Örneğin, bir dosya formatı "Etiket: Değer" biçiminde çizgiler içeriyorsa, herhangi bir etiketin ilk karakterinin ait olduğu kategoriyi göstereceği belirtilebilir; sessiz-yoksayma kategorilerinin etiketleri için, ilk karakter aynı zamanda etiketin geçerli olması beklenen standardın sürümünü de gösterebilir (böylece "sessiz-yoksay" bir etiketin sürüm 3'te mevcut olduğu iddiası Standart, sürüm için bir ayrıştırıcı sessizce yoksayır, ancak sürüm 3 veya sonraki sürüm için bir ayrıştırıcı ayrıştırmazsa sıkışma yapardı).

Her durumda en önemli şey, belirsiz veya yanlış anlaşılmış verileri hatalı verilere dönüştürmekten kaçınmaktır. Bazı durumlarda, belirsiz verilerin çoğaltılmasının reddedilmesi daha iyi olabilir, ancak diğer durumlarda, alıcının kesin olarak algılanması durumunda kesin olarak alındığı gibi çoğaltılması daha iyi olabilir. Düpedüz kötülük değilse, gerçekten tehlikeli olan, verilerin farklı varsayımlar kullanarak dönüştürülmesidir, örneğin:

01/12/12
13/12/12
99/12/12

gibi tarihler listesine

2012-01-12
2012/12/13
1999/12/12

Birinin hatalı girilmiş birkaç tarihi olan bir listesi olsa bile, bir insanın orijinal formatta bir listeye verilmiş olması, hangi formatın doğru olduğunu belirlemesi ve daha fazla araştırma için şüpheli değerleri işaretlemesi (diğer kayıtlara karşı kontrol vb.) Mümkün olabilir. ) Tarihleri ​​ikinci formatta vermek, ümitsizce ve telafi edilemez bir şekilde onları ezecekti.


İyi dedi. Cevabın biraz daha derinlere iniyor. Bunu kabul etmek için sabırsızlanıyorum, ancak bu sorunun aldığı genel ilgi göz önüne alındığında, bunu bir süre bırakacağım.
Roman Starkov

1

UI deneyimim çoğunlukla masaüstü sistemlerinden geliyor. Web siteleri farklı, ancak bir masaüstü sistemine meydan okuyabilecek birkaç site gördüm. Ancak buna değer:

Hata mesajlarının son çare olması gerektiğini öğrendim; İdeal bir sistem onlara hiç sahip olmazdı. Yapılacak en iyi şey, ilk başta hatalı girişlere izin vermemektir: kullanıcı aylar açılır listesinden seçim yapıyorsa "yeşil" giremez. Gri renkli bir düğmeye basamaz.

Bir sonraki yapılacak en iyi şey kötü verileri kabul etmektir. Bir ay boyunca günlük satış histogramını görüntülediğinizi varsayalım. Kullanıcı girdikten sonra, grafik bir asır kapsar ve asırdaki çubuk diğerlerinden 10 kat daha yüksektir. Kullanıcı şimdi yanlış bir şey yaptığını biliyor ve dahası, neyin yanlış yaptığını, herhangi bir mesajın söylediğinden daha fazlasını biliyor . Giriş grafik olduğunda - bir fareyi sürükleyerek, örneğin - bu tür geri bildirimler hala çalışır ve paha biçilmezdir. Girişlerin bir kısmı geçersiz olabilir, ancak bu yöntemi kullanarak kullanıcı her bir fare konumunun sonuçları hakkında anında ve ayrıntılı geri bildirim alır.

Bütün bunlar, bazen kullanıcının düğmenin neden gri renkte olduğunu bilmesini gerektirir, böylece onu zorlayamaz. Sonra (orada eğer bunun için hiçbir yardım yoktur olduğunu bana bildirin) ama düğmeye ungray ve o tıkladığında ona düğme şu anda çalışmıyor neden bir iyi açıklama.


0

Açıklama, internet üzerinden bilgi gönderme ile ilgili. İnternet üzerinden bilgi gönderen şeylerden biri, her zaman hedefine ulaşmayacak veya parçalanmayacak olmasıdır.


0

Burada kaçırılmış gibi görünen bir şey - başarısızlığın sonuçları nelerdir?

Bir web sayfasını göster. Kötü girişi tolere etmek için elinden geleni yapmalısın. Seçenekleriniz, yapabileceklerinizi göstermek veya bir hata atmak. İkinci kurs, kullanıcıya hiçbir şey vermez ve bu nedenle, kullanıcıya tamamen yararsız bir sonuç verdiği için yalnızca son çare olmalı, bir hatanın bundan daha kötü olması oldukça zor olacaktır.

Öte yandan, Minuteman III'ün hedefini soruyorsa, potansiyel olarak belirsiz olduğu gibi girdi olarak “Moskova” yı reddediyorsunuz.


Öyleyse programcı olsanız ve bazı aptal kodlar yazsanız bile, sistem devam etmeli ve "oi, burada batırdınız (satır numarası)" diye bir şeyler göstermek için elinden gelenin en iyisini yapmalı ? İnanılmaz derecede kötü bir koda sebep olan şeyin bu olduğunu düşünmüyor musun ?
Roman Starkov

@romkyns: Bu tür şeyler için hata ayıklama konusunda katı olan hata ayıklama modlarına sahipsiniz.
Loren Pechtel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.