SORU
30 Mayıs 2013, PERŞEMBE


Neden MongoDB Java driver rastgele bir sayı koşullu jeneratör kullanıyor mu?

MongoDB's Java Connection driver this commit aşağıdaki kodu gördüm ve ilk bakışta bir tür fıkra gibi görünüyor. Aşağıdaki kod ne yapar?

if (!((_ok) ? true : (Math.random() > 0.1))) {
    return res;
}

(EDİT: kodu bu soru gönderme has been updated since)

CEVAP
30 Mayıs 2013, PERŞEMBE


Bu hat tarihini inceledikten sonra, ana sonucum iş yerinde bazı beceriksiz programlama olmuştur.

  1. Bu hattı gereksiz yere karmaşık. Genel formu

    a? true : b
    

    boolean a, b basit eşdeğerdir

    a || b
    
  2. Olumsuzluk ve aşırı parantez çevresindeki her şeyi daha da convolute. Akılda De Morgan's laws tutarak bu kod parçası anlamına geleceği önemsiz bir gözlem

    if (!_ok && Math.random() <= 0.1)
      return res;
    
  3. originally introduced this logic olduğunu taahhüt eder

    if (_ok == true) {
      _logger.log( Level.WARNING , "Server seen down: "   _addr, e );
    } else if (Math.random() < 0.1) {
      _logger.log( Level.WARNING , "Server seen down: "   _addr );
    }
    

    &; beceriksiz kodlama başka bir örnek, ama dikkat edin . - ^em>mantık tersburada olay _ok ya da diğer vakaların 'unda da, 2 kod ise kaydedilir.verirBu kez 10% ve 90% günlükleri. Daha sonra harap sadece netlik tamamlama, ama kendisi doğruluğu.

    Kod aslında yazar if-then orijinal tersi içine bir şekilde kelimenin tam anlamıyla return ilk durum için gerekli dönüştürmek amacıyla nasıl görebiliriz attılar sanırım. Ama sonra eline yüzüne bulaştırdı ve etkili "" eşitsizlik işareti ters çevirerek. çift negatif eklenen

  4. Kenara tarz sorunlar kodlama, stokastik günlüğü özellikle günlük girdisi kendine özgü bir davranış belge olmadığından kendisi tarafından oldukça şüpheli bir uygulama. Sunucu şu an kapalı. niyeti, belli ki, aynı gerçeği restatements azaltılması: Uygun çözüm, sadece oturum açmak içindeğiştirirserver devletin değil, her bir gözlem, bırak 'u bu tür gözlemlerin rasgele bir seçim. Evet, biraz daha çaba alır, biraz bakalım.

Sadece beceriksizliğin tüm bu kanıtlar, teftiş biriken umuyorumkod üç satır sadeceda , bunu konuşmak değil, bir bütün olarak proje, iş ve bu parça en kısa sürede temizlenecek.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • Capcom Unity

    Capcom Unity

    5 NİSAN 2010
  • POGProductionz

    POGProductio

    27 NİSAN 2012