Baskı altındayken kötü kod yazar mısınız? [kapalı]


14

Baskı altındayken, son tarih yaklaşıyor ve bir yönetici boynunuzu soluyor, kendinizi kötü kod yazmaya başlıyor musunuz? TDD ve en iyi uygulamalar, işleri halletmek için yol boyunca kayıyor mu? Böyle durumlarda ne yaparsınız? Deneyimleriniz nelerdi?


Size büyük bir meydan okuma getireyim: Ortaya koyduğum en büyük ve en iyi yeniliklerden bazıları acil ve acil bir ihtiyacın ürünü oldu. Bazen savaşın sıcaklığı günlerce ve günlerce süreksizlik ve işçiliğin ilham vermediği çok keskin bir odak getirir.
user1172763

Yanıtlar:


31

Tek kelimeyle, evet. Size aksini söyleyen herkes muhtemelen en iyi ihtimalle yanlıştır.

Ancak, anahtar daha az kötü kod yazma deneyiminizi geliştirmektir . Mümkünse "sadece çalışmak" için bir şey koymak için günaha karşı, çünkü olmayacak. Yine de bir tür süreci izlemeniz gerekir (ister kendi şirketiniz, ister şirketiniz, ister bunların bir karışımı).

Deneyim onun çok daha iyi (için söylüyor gasp "baskı altında" üretimine hızlandırılmış dağıtımı anlamına gelmektedir olduğunda) özellikle, düzeltmeler hafta yetmeyecek önlemek şekilde planla birkaç gün slip. Eğer kodu yayınlamak için acele ediyorsanız, test ediciler muhtemelen bunu kauçuk eklemek için acele edeceklerdir.


Ben yazı için artı 10 verecek, çok iyi dedi
maz3tt

16

Eğer takım bir sıkıntı yaşıyorsa, bir şeyler yanlış yapıldı.

Eksik tarihler, kötü planlama ve tahminin bir işaretidir. Son teslim tarihinin kaçırıldığını kabul edin ve sorunu çözün. Bazen planlama veya tahmin üzerinde kontrol sahibi olmazsınız . Kimin yaptığını belirleyin ve bunun yanlışlıkla yapıldığını bildiklerinden emin olun.

Bir durumda son tarih taşınamazdı, yüksek kafeinli içecekleri patlatıp acele ettiniz. Feda edebileceğiniz her şeyi tanımlayın ve kesin. Geriye kalanları alın ve mümkün olduğunca hızlı uygulayın. Bu, kararsızlık, garip hatalar, verimsiz kodlama uygulamaları, bant yardımı düzeltmeleri ve diğer her türlü dehşet gibi sorunlara neden olacaktır. Mutlaka kötü bir kod değildir , ancak ideal değildir .

İnsanların sahip olduğu% 50 iyi bir çözüm, daha fazla problemi çözüyor ve kimsenin sahip olmadığı% 99'luk bir çözümden daha uzun süre hayatta kalıyor çünkü laboratuvarınızda lanet şeyi sonsuz bir şekilde parlattığınız yerde. Nakliye bir özelliktir .

Yazılımdan Joel'den Duct Tape Programmer .

Değil İdeal kod ele alınabilir o ele eğer . Ele alınmayan kod yığılır ve imkansız olmasa da ek değişiklikleri zorlaştırır. Uygulamanın o kadar bağımlı bir şekilde birbirine bantlandığı noktaya gelebilir ki eklemeler sadece en dikkatli programcılar tarafından fahiş bir zaman maliyetiyle yapılabilir. Nakliye bir özellik olsa da, sürdürülebilirlik.


1
Değiştireceğim tek şey ana noktanızdaki "siz" kelimesidir. Ekibinizdeki her üye için yanlış gidebilecek şeylerin çarpımsal bir faktörü olduğunu ve her dış bağımlılık için yanlış gidebilecek bazı üstel faktörlerin olduğunu iddia ediyorum. Ya da tam tersi. ;)
Wone the Sane

2
@ysolik: Yenilemeye bakın. Planlama veya tahminin FUBAR'da yapılması sizin hatanız olmayabilir.
Josh K

2
@ysolik: Son teslim tarihini karşılamak için ideal koddan daha az yazıyorsunuz ve daha sonra düzeltmek için bir şansınız olacak şekilde dua ediyorsunuz. Doğru planlama ile bu asla olmaz.
Josh K

2
Asla asla deme ... :)
Wonko the Sane

3
@Wonko: Doğru, uygun planlama ile bu nadiren olur.
Josh K

7

Yazılım işçiliğinin büyük bir hayranıyım - temiz kodları elimden geldiğince yazıyorum, ama bazen zamanın kısa olduğu ve son teslim tarihinin yaklaştığı anlarda acele etmek zorunda kaldım. Gerçekten elimden gelenin en iyisini yapmaya çalışmıyorum, ama bazen ondan kurtulamazsın.

Bazı insanlar "İşte bu hayat, gönderilmelisin" diyecek ama ben bu tutuma gerçekten katılmıyorum.

Acele kod yazarken, yazılımı zamanında kapıdan çıkartabilirsiniz, ancak önümüzdeki birkaç gün içinde yazılımdaki hatalarla ilgili destek çağrıları aldığınızda ne olur (bu hatalar aynı parçada yaşıyor) bitirmek için koştuğunuz kodun). Ya da sizi serbest bırakma gününde iyi olacağına söz vermiş olsanız bile, raporlama modüllerinin neden artık çalışmadığını soran kızgın bir müşteri mi alıyorsunuz?

Her şey çok iyi "Gemiye gitmelisin" demekle birlikte, verimli görünmekle özensiz bir işçi gibi görünmek arasında bir fark vardır.


5

Evet. Ama daha sonra bana musallat olmak her zaman geri geliyor.


2

Stresli bir durumdayken, kodum işi bitirmek içindir. Bu kadar. Benim görüşümde verimlilik ve kötü olan diğer konulara odaklanmıyorum.

Yine de üzerinde çalışacağım.



1

Şahsen önemli ölçüde daha kötü kod yazdığımı sanmıyorum, ancak daha kötü bir ürün teslim ediyorum.

Keyfi ve imkansız bir son teslim tarihiyle karşı karşıya kaldığımızda, geliştirme sürecini gözden kaçırıyoruz. Daha yüzeysel kod incelemeleri yapıyoruz (veya bunları tamamen atlıyoruz). Daha az test ediyoruz, nokta kontrol tipi entegrasyon testleri için ayrıntılı birim testini atlıyoruz, ardından entegrasyon testini resmi bir yeterlilik olarak saymaya çalışıyoruz. Doğrudan başarısızlık kriterlerine bağlı olmadıkları takdirde test sırasında anormallikleri göz ardı etme eğilimindeyiz. Dokümantasyon güncellemelerini atlıyoruz, sürüm notlarını iki kez kontrol etmiyoruz, artık gerekli olmayan dosyalar için çıktı listesini temizlemeyi unutuyoruz.

Bir crunch sırasında yazdığınız kaynak kodu yüksek kalitede olabilir, ancak neredeyse kesinlikle kalitesiz bir ürünün parçası olarak gönderilecektir.


0

Bağlı olmak.

Baskı, her şeyin yapılabilmesi için bir yol olmadığı ve yayınlanmadan saatler önce önemli yeni özellikler eklendiği için mi?

Hatalı kod geliyor!

Ama eğer program sadece gerçekten çok sıkı ama genel plan sağlam olduğu ve sadece normalden çok daha fazla çalışmak ve birkaç özellik duymak ve orada tweaking sürekli odaklanmış tutmak zorunda ise ... Sonra daha iyi kod üretmek Eğer program tonlarca zaman veriyorsa. Tüm ünite testlerini yazılı olarak almamama rağmen kodun büyük bölümlerini kapsamam gerekiyor.


Oooh - iyi yorum, ancak son cümle beni biraz korkutuyor.
Wone the Sane

İyi. Bu asla yazılmayacakları anlamına gelmez. Korkutucu ama sanırım odaklanmama yardımcı oluyor. Ve birim testi var, sadece% 100 kapsama alanı yok. Daha çok% 66 gibi.
ElGringoGrande

Tek sorun, kapsanmayan% 34'ün aceleyle koyduğunuz yeni kod olması ve değişikliklerinizle (hepsi) kırılma olasılığı olmayan önceden kurulmuş kod değil. Hepimizin yapmadığını söylemiyoruz, sadece bu korkunç bir teklif.
Wone the Sane

0

Hiç baskı altında kötü kod yazmayan birini tanıyorum. Ayrıca ilginizi çekebilecek bazı sihirli fasulye var.

Herkes bazen kötü kod yazıyor ve yaklaşan son teslim tarihleri ​​her zamanki sebeptir, hile ilk etapta bu duruma girmekten kaçınmaktır (ve bu da kolay değildir).

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.