“Temiz Kod” uygulamaları gerçekten bu kadar temiz ve kullanışlı mı? [kapalı]


11

Şu anda büyük bir şirkette staj yapıyorum ve yazılım dağıtım yapısında (Agile'a geçerek) birçok değişiklik geçiriyorlar.

Son birkaç aydır, Clean Codeuygulamalara ve kitabın geliştiricilere bir İncil gibi bu dini bağlılığı fark ettim .

Şimdi, temiz kodun en önemli özelliklerinden biri, anlaşılır adlandırma ve titizlikle yeniden çarpanlara dayalı açıklayıcı koddur. Bunu no commentingkural takip eder .

Bu temiz kod, kod bakım ve geliştirme takip kolaylaştıracak uzun vadeli bir yatırım olduğunu anlıyorum, ama ... Bu gerçekten tüm bu yaygara değer mi?

Herkes Temiz Kod konusundaki deneyimlerini ve çok muhafazakâr olup olmadığımı veya sadece geçici bir trend olup olmadığını düşünür.


1
Birçok iyi soru, uzman deneyimine dayalı olarak bir dereceye kadar fikir üretmektedir, ancak bu sorunun cevapları gerçekler, referanslar veya spesifik uzmanlıktan ziyade neredeyse tamamen görüşlere dayanma eğilimindedir.
gnat

4
Bu kitaba dair çok yüksek bir fikrim yok (yazarına rağmen). Genel olarak çok dogmatik olmamayı öder. Programlama önerilerinin çoğu, pratikte çalıştıkları gösterilmiştir, ancak mutlak gerçek değildirler, bu yüzden çok endişelenmeyin. Okumaya devam edin ve daha doğru olduğunu düşündüğünüz şeylerle devam edin, ancak tekerleği de yeniden keşfetmeyin. Şansımız, bizden daha akıllı bir çözümdür ve bizimkinden daha iyi çözümler bulmuştur.
DPM

2
70 karakterli bir yöntem muhtemelen birden fazla şey yapar. SRP ihlali haklı mıyım ?!
Tombatron

1
İşte başka bir düşünce, 5 veya 10 yıl sonra, temiz kodla daha az ilgilenebilecek bir şirkette geliştirici olduğunuzda, bu dogmatik egzersizi gerçekten takdir edeceksiniz.
Tombatron

3
(Kısaca) "yorum yok" altında çalıştı, ben çok bir kuraldan daha güçlü bir rehber olmayı tercih ederim . Yorumlara ihtiyaç duyulan zamanlar vardır - genellikle belirsiz iş mantığında. Denilen bir yöntem CalculateFoonicityMetric()size tam olarak ne yaptığını anlatır ve iyi yazılmış kod size nasıl olduğunu gösterecektir ... ancak bunların hiçbiri size nedenini söylemez . Kod belirgin olabilir Ne de (... Bu bit eklemek, o ile çarpın bu, diğer şey tarafından bölmek, karesini) ama belirsiz neden negatif foo için hesaba kare, ayarlamak; / c * = b (faktör sürüklenme için ...). Nedenini açıklayan hızlı bir yorumu takdir ediyorum.
anaximander

Yanıtlar:


17

Bu temiz kod, kod bakım ve geliştirme takip kolaylaştıracak uzun vadeli bir yatırım olduğunu anlıyorum, ama ... Bu gerçekten tüm bu yaygara değer mi?

Kesinlikle.

Yeniden faktoring çok önemlidir, ancak zamanınızın% 75'ini yöntemleri hareket ettirmek ve uygun unvanına karar vermek için çok fazla zaman harcamak o kadar verimli görünmemektedir.

Tabii, ama büyük şirketin temizlemek için muhtemelen yıllar veya on yıllar boyunca kötü kod olduğunu düşünün. Bunu yapmak çok zaman ve çaba gerektirecek.

Fark edilmesi gereken en önemli şey, ikinizin de haklı olduğudur. "temiz kod" çok önemlidir ve Temiz Kod oraya ulaşmanın evrensel olarak saygın bir yoludur. Şirket daha yeni başladığı için kitaba daha fazla deneyime sahip bir gruptan daha fazla bakacaklar. Kısa bir süre yaptıktan sonra, neyin işe yarayıp neyin yaramadığını öğrenmeye başlayacaklar. Bunu daha iyi anladıklarında, (umarız) temiz kodu koruyan, ancak 70 karakter fonksiyon ismine yol açmayan daha pragmatik ve doğal bir yaklaşım izleyeceklerdir.


4

Başlangıçta bir yorum yazıyordum. Dikkate alınacak perspektiflerden daha az cevap vermeye çalışacağım. Ancak, kesinlikle anlaşılır adlandırma ve yeniden düzenleme gibi "Temiz Kod" uygulamalarını onaylıyorum.

Gelecekteki kod kırılmasını önlemek için yorumların gerekli olduğu durumlar olduğu için yorum kurallarını her zaman sevmedim . Normalde ne yapıldıkları ve nedenleriyle sınırlı olmalıdırlar. Kod beklenmedik bir şey yaparken veya değiştirilmesi gereken bir algoritma kullanırken bunları az miktarda kullanın.

Kodu okurken veya sürdürürken üretkenliği göz önünde bulundurun. Kodun kullanım ömrü boyunca, bu kodu yazarken üretkenlikten daha önemli olabilir. Bu uygulamalar bu görevlerde üretkenliğe yardımcı olacak mı?

Tecrübe ile, bu uygulamalar kökleşmiş ve daha az verimlilik katili olmalıdır. Doğru adı seçmek daha uzun sürebilir çünkü kodun ne yapması gerektiğini netleştiriyorsunuz. (Bu açıklama kodlama ve hata ayıklamayı daha hızlı hale getirebilir.) Bu, yalnızca gerekli olan veya daha az hata içeren kodlarla mı sonuçlanır? Bunun üretkenlik üzerindeki etkisi nedir?

Doğru yöntem adını seçmek için harcanan zaman, yöntemin amacının ne olduğunu daha iyi anlamak için hemen ödeyecektir. "İterateOverCustomers" yöntem adlarını "locateActiveCustomers" ile karşılaştırın. Hangisi işlevin amacını aktarır? Gerekirse hangisini yeniden düzenlemek daha kolay olacak?


3
Temiz Kod kitabına atfetmek isteyen insanların "yorum yok" kuralının aslında kitabın hiçbir yerinde olmadığını belirtmek isterim. Aksine, ilk yarısı birçok "iyi yorum" türünü ve ardından "kötü yorumlar" bölümünü tanımlamak için harcanan yorumlarla ilgili bütün bir bölüm vardır. Yazarın konuyla ilgili görüşleri aslında pek çok kişinin ona kredi verdiğinden çok daha makul.
Eric King

Genel olarak "yorum yok" kuralları hakkında yorum yapıyordum. Dil tanımından yorumları kaldırma önerilerinin olduğu dillerde çalıştım. Yorum yok iyi ya da kötü. O zaman, bazı durumlarda düşmenin arzu edildiği bir kod bloğunda bir yorumumuz vardı. Bu durumda böyle bir uyarı var ve o noktada yeni kod blokları eklememekteydi.
BillThor

Evet, bu bana çok aşırı geliyor.
Eric King
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.