Temiz kodun gelişimi geliştirdiğine ikna edici bir şekilde gösteren bir vaka çalışması var mı? [kapalı]


13

Programcı olarak ilk gerçek işim ve gördüğüm sadece "Büyük Çamur Topu" kodu (yararlı yorumlar da olmadan), ama temiz kod yapmaktan hoşlanıyorum ve daha kötü kodlamak benim için gerçekten zor yol.

Temiz kod kullanımının (burada temiz kodun ne olduğunu çeşitli tanımları görüyorum) geliştirme ve sürdürülebilirliği geliştirdiği bazı çalışma vakalarını arıyorum.


1
herhangi bir zaman temiz kod vs çamurda bir hata izlemek zorunda
cırcır ucube

@ratchetfreak: Bence OP, kuruluşlarının neden kodlarını temizlemesi gerektiğine dair bir argüman kullanmak için yayınlanmış çalışmalar bulmaya çalışıyor.
SinirliWithFormsDesigner

1
@FrustratedWithFormsDesigner Evet, ancak şirkete karşı "argüman" iddiasında bulunmuyorum. Küçük bir şehirde eşzamanlılığı olmayan (en azından farklı bir zihinle) eski teknolojiyi kullanan 16 yaşında bir şirket. Bu sadece biraz merak ve "kötü kod" teslim olmamak için teşvik ihtiyacı.
Renato Dinhani


Sistemi temiz kılan tek şey "temiz kod" un olmadığını unutmayın. Dolayısıyla, INMO gibi bir çalışmanın yapılması zor olacaktır, çünkü bir faktörü sonuca katkıda bulunan diğer faktörlerden izole etmek zordur.
NoChance

Yanıtlar:


4

Google Akademik’in hızlı (ancak hiçbir şekilde kapsamlı olmayan) bir araması , Bob Martin'in Temiz Koduna atıfta bulunan birçok makale ortaya çıkarıyor , ancak kişisel olarak "temiz kod" ve gelişmiş geliştirme arasında bir korelasyon içeren herhangi bir makale görmedim.

Ancak, sorunuzu bir an için düşünün. Geliştirilmiş geliştirme hakkında soruyorsunuz ve kendi içinde sadece daha iyi kod yazarak değil, aynı zamanda iletişim, beklentileri yönetme, metodoloji ve düzene koyma süreçleri, test, sürekli entegrasyon ve gerçekten de diğer birçok faktör tarafından kapsanan çok geniş bir konu alanı olduğunu düşünüyorsunuz. bir yazılım geliştirme projesini başarılı kılmak için ne kadar şey yapıldığını düşündüğünüzde tüm kutuyu ve zarları geliştirin.

Yani muhtemelen şöyle olmalıdır: temiz kod yazmak yazılım geliştirmenin geliştirilmesine katkıda bulunuyor mu? Bunu cevaplamak için verebileceğim tek "kanıt" tamamen anekdot olacaktır ve bunun için Temiz Kod kitabının sadece Bob Martin tarafından değil, aynı zamanda birçok bölümün de yazdığı gibi mükemmel bir referans olacağını düşünüyorum. bazı akıllı yazılım geliştiricileri tarafından. Bu işe yaramazsa, belki biraz soğuk bir sert mantık uygulanabilir.

Evinizde bir karışıklık yaparsanız ve onu temizlemek için asla etrafta dolaşmazsanız, o zaman evinizde yaşamak bir angarya haline gelecektir. Bir şeyler bulmak zorlaşıyor, dolaşmak zorlaşıyor ve pis bir ortamda yaşıyorsanız, sağ akıllarında kimse sizi ziyaret etmek istemeyecek. Kod için de aynı şey geçerli. Kodunuz dağınıksa, bunları düzeltmek yerine, bulunan sorunların daha zor olduğunu görürsünüz. İşi yapamayan bir çözümün haklılaştırılması daha kolay hale gelir, ancak hey, tüm bu eski mirasın içinden geçmek zorunda kaldığı kesin. Sonunda, tıpkı evinizi asla toparlamamak gibi, kodunuzun düzensizleşmesine izin vermek size zaman ve çaba harcayacak ve uzun vadede sizin için zorluklar yaratacaktır. Bununla birlikte, kodunuzu temiz tutmak, çalışmak, yeniden düzenleme ve hata ayıklamayı daha az iş yapmak için daha güzel bir platform sağlayacaktır.

Hayır, size verecek doğrudan kanıtım yok ve bunlar sadece uzun süredir bu şeyleri yapan ve umarım yol boyunca biraz yazılım geliştirme bilgeliği kazanan birinin düşünceleri . :-)


Güzel cevap ve evet, soru gerçekten işaret ettiğin soru.
Renato Dinhani

İyi bir benzetme, orada temiz bir işyerinin veya evin verimliliği artırdığını söyleyen çalışmalar var mı?
Bob

15

Anlamanız gereken şey, hiçbir şirketin vasat kod yazmak için yola çıkmadığıdır. Sorun, kodun% 50'sinin şirketinizin ortalama programcıları tarafından yazılması veya verilmesidir. Temiz kodun avantajlarını ortaya koyduğunuzda koroya vaaz veriyorsunuz. Hile nasıl yapılacağıdır. Hakem değerlendirme araçları, statik analiz, otomatik test, sürekli entegrasyon, TDD, scrum, aşırı programlama vb. Gibi konularda araştırma yapın ve sorunun neden kötü olduğunu açıklamak yerine potansiyel çözümler sunun.


5

Buradaki tahıllara karşı gideceğini biliyorum, ancak piyasaya sürülme zamanı, gereksinimleri doğru bulma, doğru finansmana sahip olma, iyi pazarlama, doğru fiyat noktası ve sade iyi şanslar, bir yazılım ürünlerinin başarısı üzerinde kod kalitesinden çok daha fazla etkiye sahip.

Bu DEĞİL bunu sadece bir çok faktöre olduğunu kabul etmelidir, kod kalitesi göz ardı edilmelidir söylemek ama.

Oldukça başarılı ürünlerde (örneğin, iplik yönetimini uygulamalara bırakan orijinal Apple OS) korkunç kodun birçok örneği var.

Kötü tasarlanmış veya overpriced bir ürünün üstesinden gelen güzel kod örneklerini düşünemiyorum.

Yani eğer pazara girme zamanı güzel kodla karşılaştırıldığında, pazara zaman öncelikli olmalı!


1
Sana tamamen katılıyorum, olan bu. Müşteri memnun, yönetim direktörleri satified, programcılar, kod ile sihir yapmak için çok çalışıyor ve asla memnun değil.
Renato Dinhani

3

Temiz kodu gerçek hedeflerden ayırmanız gerekir: dağıtımdan sonra kusurları düzeltme maliyetini azaltmak ve gereksiz yeniden çalışmayı azaltmak. "Daha az hataya neden olmak için temiz kod yazmak" hakkında konuştuğunuzda din konuşuyorsunuz. "Projedeki 2 aylık çabadan tasarruf ederek kusur oranını% 10 azaltmak" hakkında konuşurken, yönetimden bahsediyorsunuz. Temiz kod, kod tabanının başlangıç ​​kalitesini iyileştirmek ve böylece toplam maliyeti düşürmek için bir araçtır, ancak birçoğundan biridir.

Aşağıdaki makalede, ilk kez doğru yapmanın neden maliyet açısından önemli olduğu açıklanmaktadır: http://www.cs.umd.edu/~mvz/pub/eworkshop02.pdf


1

Belirli bir çalışmanın farkında değilim, ancak Steve McConnell'in çalışmasına bakın .

Birisi varsa, o yapacak. Mesela bir iki dakikalık tarama bulundu bu (16 yaşında ama hala alakalı bugün).


1

Mattnz'ın cevabına eklemek için, henüz yapmadıysanız, özellikle Kod Tamamlandı: Steve McConnell'in Yazılım Yapımının Pratik El Kitabı'na göz atın. Kodlama olasılığınızı artıracağı gerçeğinin yanı sıra, kitap boyunca çeşitli kodlama uygulamalarının programların kalitesini nasıl etkilediğine dair çok sayıda çalışma belirtiyor.

Örnek olarak (kitaptan):

Farklı bir 450 rutin üzerinde yapılan bir başka çalışma (bu sadece alışılmadık bir tesadüf), en yüksek eşleşme-uyum oranlarına sahip rutinlerin, en düşük eşleşme-uyum oranlarına sahip olanlardan 7 kat fazla ve maliyetli olduğu 20 kat daha fazla olduğunu buldu. düzeltmek için (Selby ve Basili 1991).

Aynı zamanda sorunun bir numaralı yanıtıydı Her programcının okuması gereken en etkili kitap nedir? (bu sorunun yanıtlarının son zamanlarda topal bir şekilde yeniden düzenlendiğini görüyorum)

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.