Bir yorumda “TILT” ne anlama geliyor?


9

Robert C. Martin tarafından Temiz Kod okuyorum ve ifade TILTbazı kod örneklerinde açıklanamaz görünüyor. Örnek (bu arada Java dilinde):

    ...
    public String errorMessage() {
      switch (status) {
        case ErrorCode.OK:
          // TILT - Should not get here.
          return "";
        case ErrorCode.UNEXPECTED_ARGUMENT:
          return "Unexpected argument";
        case ErrorCode.MISSING_ARGUMENT:
          return "Missing argument";
        ...
    }
    ...

Bağlamdan, TILTerişilemeyen ve yalnızca derleyiciyi tatmin etmek için dahil edilen bir durumu belirtir (örneğin, yukarıdaki kodda, durumda bir hata iletisi olmamalı çünkü durumda TILTgörünür ), ancak Emin değilim.ErrorCode.OKOK

Ne TILTanlama geldiğini / ne anlama geldiğini bilen var mı ?



9
Bu muhtemelen poker eğimi değil langırt eğimi anlamına gelir.
telastin

Yanıtlar:


13

Fiziksel langırt makinelerinde, dışarıdaki bir şeyin ne zaman çok fazla egzersiz yapmaya çalıştığını algılayan sensörler vardır, makineyi sürükleyerek veya eğerek topun yolunu etkiler. ( Burada çok fazla şey söylüyorum çünkü langırt uzun bir geleneğe sahip, özellikle top bir şeye asıldığında belirli bir hareket miktarı kabul edilebilir.) Makine eğimli duruma geçtiğinde, oyuncuya daha fazla puan atabilecek her şey top masanın altına düşene kadar devre dışı bırakılır. Buna genellikle oyundaki bir "Eğim" ışığı ve bazen de bir uyarı sesi gelir. Bunu bir istisna yaratmanın langırt eşdeğeri olarak düşünün.

Martin'in metaforu gergin, çünkü ErrorCode.OKmuhtemelen, statusişlevi yapmaması gereken bir şey yapmaya zorlamaya çalışan bir şey değil , geçerli bir şey. Başka bir deyişle, bu girdi, eksik bir argüman için hata iletisini döndürme işlevini almaya çalışmaz.


Bunun geri kalanı sorunuza cevap vermiyor, ancak kitabın geri kalanını eleştirel bir gözle okumanız için bir neden olabilir. Bu örneği çevreleyen metnin el sallama yapıp yapmadığını görmek için kitaba erişimim yok, ancak değilse, yöntem başlığa kadar canlı olmayan şeyler yapıyor:

Birincisi, muhtemelen geçersiz girdi veya durumu istisnai bir koşul olarak ele almıyor ve şikayet ediyor. Yöntemin belgeleri, yalnızca nesnenin statushata durumundayken çağrılması gerektiğini söylüyorsa , arama kodunda düzeltilmesi gereken bir mantık problemidir.

İkincisi, diğerleri kadar geçerli olan ancak etkili bir şekilde sihirli bir sabit olarak işlev gören bir dize döndürür. Yöntemin başlatılmasının bir hata olup olmadığını bilmek isteyen bir arayan, dönüş değerinin içeriğini kontrol etmeli veya deşifre etmek için onu okumaya yavaşça iletmelidir (örn Operation result:. Ek bilgi olmadan).

İsteğe bağlı üçüncüsü, derleyici numaralandırılmış değerlerin tam kapsamını beklerse, defaultkapsanmayan vakaları yakalamak için bunları tek tek veya bir grupta numaralandırmaktan çok daha okunabilir olmasıdır. (Dosya tarafı, derleyicinin şikayet etmesine izin vermenin daha iyi olabileceğidir, böylece ikinci bir hata dışı durum eklemek programcıyı nasıl ele alınması gerektiğini açıkça bildirmeye zorlar.)


2
Elimde Temiz Kod kopyanız yok, ancak dördüncü bir olasılığı kaçırdınız: yöntem, istisna nesnesi gibi bir şey için okunabilir bir hata mesajı oluşturmak için sadece yardımcı olduğu gibi, yardımcı olur. , herhangi bir "el sallama" gerektirmez.
Doc Brown

@DocBrown Bu, adil bir nokta olsa da, merak edilecek bir sonraki şey, bir istisna nesnesinin neden istisnai olmayan bir durumla inşa edilmesine izin verdiğidir.
Blrfl

2
FYI: Klasik eğim sensörü, metal bir halkanın sınırları içinde serbestçe sallanmasına izin verilen metal bir sarkaçtı. Makineyi çarpmak sarkacın salınımını artıracak ve eğer halka ile elektrik teması yaptıysa, o topu kaybettiniz. Değil sallanan dinmesi izin verecek bir süre için makineyi çarpma. Sarkaç oyuncu tarafından görülemedi: Sadece deneme yanılma yöntemiyle makinenin ne kadar darbelere dayanabileceğini öğrenmek zorundaydınız.
Solomon Slow
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.