SORU
26 Mayıs 2010, ÇARŞAMBA


Olmak karanlık tarafı GOTO için baskı yaptı

Geliştiriciler (core) eski bir sistem üzerinde çalışıyor zaten spagetti kod ile enfekte olduğunu, mevcut kod yeni özellikler eklerken GOTO deyimleri kullanarak bir baskı altında olduğu bir işim var.

Şimdi, kullanmak için argümanların sadece küçük bir GOTO' daha fazla sürdürülebilir bir çözüm için yeniden düzenleme. zaman geçirmek yerine olabilir anlıyorum Sorun bu sadece küçük bir GOTO 'öyle değil mi, yalıtılmış: izole, Yeni bir 'küçük bir GOTO' eklemek için. yani en azından haftada bir gün, Bu kod temeli zaten kod nedeniyle 1984 veya daha önce geri Pastafarians Uçan Spagetti Canavarı kendisi tarafından ilham kaynağı olduğuna çok yapacak GOTOs ile delik deşik olmaktan çıkmaya çalışmak bir korku.

Ne yazık ki bu dil bu yazmış yok hazır yapılmış yeniden düzenleme araçları, çok zor itmek 'Yeniden oluşturulması için verimlilik artırma daha sonra' çünkü kısa vadede kazanır tek galibiyet dikkat burada

Başkasının deneyimli bu konu mademki herkes kabul edemeyiz olması ekleyerek yeni GOTOs atlamak 2000 satır için rastgele bir bölüm, ama sürekli Anaylsts ısrar yapıyor bunu sadece bir kez sahip yönetim onaylıyor?

tldr;

Nasıl bir gidebilir hakkında adresleme sorunu geliştiriciler olmak baskı (zorlama) için sürekli olarak Ekle GOTO deyimleri (Ekle, yani eklemek için atlamak için rastgele bölümler kadar satır uzakta, çünkü bu olurbuhızlı özelliği'?

Bu raptors değerli geliştiriciler kaybedebiliriz korkmaya başladım...

Credit: XKCD

Açıklama:

Githere

alsoThere: Hayır, bir süre içine bir tane daha orta yol bir yordam dışında 1000 satır atlar goto türden bahsediyorum döngü.GitsomewhereClose

there: ben bile makul okuyun ve bir program yaptıklarını belirleyebilirsiniz gotos türden bir söz değildi.GitalsoThere

somewhereClose: Bu köfte midpoint: yapan kod türBurada Goto ilk keznextpoint detail:(her biri neredeyse tamamen farklı)GitpointlessReturn

Bu soru 10**, git ara sıra Tamam kullanımı hakkında konuşuyordum. there git

tacoBell: ve sadece silbaştan gitti.GitJail

Analistler bir program dokundu her zaman ne yaptığını decypher haftalar sürer elsewhere: bir şey sizin kod temeli ile derinden yanlış. Aslında, aslında benim kadar hell: ediyorumgüncel goto değil4 spec yorumugitdetail pointlessReturn:gittacoBell

20* *Aslında, o sadece küçük bir zafer ile güncelleyin. 4 saatlik bir zamanda bu özel programın bir bölümünü tek bir etiket düzenleme olarak gittim svn her yineleme kurtarmakla geçirdim. Her adım (yaklaşık 20) ufacık ve mantıklı kolay oldugit* nextpoint: *21 kendiliğinden makarna-köfte manyetizma garip bir sıralama ile ekran üzerine yemek ve atlama.GitelseWhere bypass: makul bir mantık değişiklikleri tanıtmak gerekmez emin olun. Daha okunabilir bu yeni sürümü kullanarak, analist ile oturdu ve bu değişim hemen hemen hepsi tamamlandı şimdi.Gitend

4: ilk kez ilk *burada* *27, ikinci bir gitburada goto ilk kez* *28, üçüncüburada goto ilk kezhell dördüncüartık güncelliğini githell

end:

CEVAP
26 Mayıs 2010, ÇARŞAMBA


Kaç tane hata yanlış yazılmış GOTOs nedeniyle getirilmiştir? Ne kadar para şirket mal oldu? Somut bir şey haline konu açmak yerine, "kötü bir his". Bir kez olsun tanınan bir sorundan insanların yetkili, teslim içine bir politika gibi, "yeni bir GOTOs için bir şey hariç basitleştirilmesi çıkış mantığı için bir işlev" ya da "hayır yeni GOTOs için herhangi bir işlevleri yok 100% birim test kapsama alanı". Zaman içinde, bu ilkeler sıkın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FASHTAG

    FASHTAG

    5 EYLÜL 2012
  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • RiverCityGraphix

    RiverCityGra

    6 Ocak 2012