«refactoring» etiketlenmiş sorular

Yeniden düzenleme, mevcut bir kod gövdesini yeniden yapılandırmaya yönelik, dış davranışını değiştirmeden iç yapısını değiştiren disiplinli bir tekniktir.

16
Patronum benden küçük fonksiyonlar yazmamı ve her şeyi aynı döngüde yapmamı istedi.
Robert C. Martin tarafından Temiz Kod adlı bir kitap okudum . Bu kitapta, küçük işlevler yazmak, adları dikkatlice seçmek, vb. Gibi kodları temizlemek için birçok yöntem gördüm. Ancak bugün patronum bu kitabı okuduktan sonra kod yazmamı sevmedi. Argümanları vardı Küçük fonksiyonlar yazmak acı vericidir, çünkü kodun ne yaptığını görmek için …

21
Kodumun büyük bir bölümünün büyük bir tasarım kusuru var. Bitirmek ya da şimdi düzeltmek mi? [kapalı]
Ben bir arkadaşımla bir C # projesinde çalışan benimle aynı beceri seviyesine sahip bir lise öğrencisiyim. Şimdiye kadar, 100 taahhütte yaklaşık 3.000 satır kod ve 250 satır test kodu yazdık. Okul yüzünden birkaç aylığına projeyi kapattım ve son zamanlarda tekrar geri alabildim. Geri aldığımda, yazdığım kodun, işleyiciye aşırı iş parçacığı …

9
Doğrudan nesne yapımı yerine neden fabrika sınıfı kullanmalıyım?
GitHub ve CodePlex'te birçok С # ve Java sınıfı kütüphane projesinin tarihini gördüm ve doğrudan nesne örneklemesinin aksine fabrika sınıflarına geçme eğiliminde olduğumu görüyorum. Fabrika sınıflarını neden yoğun kullanmalıyım? Nesnelerin eski moda yöntemlerle yaratıldığı oldukça iyi bir kütüphanem var - sınıfların kurucularını çağırarak. Son olarak, yazarlar binlerce sınıfın bütün kamu …

13
“Değişmez” olarak işaretlenmiş kodu tekrar gözden geçirmeli miyim?
Oldukça büyük bir kod temeli ile uğraşıyorum ve var olan kodu yeniden düzenlemek için birkaç ay verildi. Refactor işlemi gereklidir, çünkü yakında ürünümüze birçok yeni özellik eklememiz gerekecek ve şimdi olduğu gibi artık başka bir şey kırmadan hiçbir özellik ekleyemiyoruz. Kısacası, çoğumuzun kariyerlerinde gördüğü dağınık, kocaman, hata kodu. Yeniden düzenleme …


16
İlgili olmayan kodu silmeli miyim?
Orta büyüklükte (100k satır) bir kod tabanı üzerinde çalışıyorum, hepsi nispeten yeni kod (bir yaşından küçük) ve iyi bir birim test kapsamı var. Artık herhangi bir yerde kullanılmayan ya da yalnızca belirli bir yöntemi test eden ünite testlerinde başvurulan yöntemler ile karşılaşmaya devam ediyorum. Artık gerekmediğinden emin olduğumda bu kodu …

12
Yerel değişkenleri örnek değişkenler yerine tercih etmenin gerekçesi?
Üzerinde çalıştığım kod temeli, çeşitli önemsiz yöntemler arasında veri paylaşmak için sık sık örnek değişkenleri kullanır. Asıl geliştirici, bunun Bob Amca / Robert Martin tarafından Temiz Kod kitabında belirtilen en iyi uygulamalara uyması konusunda gayretlidir : "İşlevlerin ilk kuralı, küçük olmaları gerektiğidir." ve "Bir fonksiyon için ideal argüman sayısı sıfırdır …
109 java  refactoring 

15
TDD Kırmızı-Yeşil-Refaktörü ve özel hale getirilmiş yöntemleri test etmek için nasıl / nasıl
Anladığım kadarıyla, çoğu insan özel yöntemlerin doğrudan test edilmemesi gerektiği, bunun yerine kamusal yöntemler ne şekilde olursa olsun denenmesi gerektiği konusunda hemfikir. Onların noktasını görebiliyorum, ancak "TDD'nin Üç Yasasını" izlemeye çalıştığımda ve "Kırmızı - yeşil - refaktör" döngüsünü kullanmaya başladığımda bazı problemlerim var. Bence en iyi örnekle açıklanıyor: Şu anda, …

20
Optimize edilmiş kodu okunabilir kodla değiştirmek uygun mudur?
Bazen, varolan bazı kodları genişletmeniz / iyileştirmeniz gereken bir duruma girersiniz. Eski kodun çok zayıf olduğunu görüyorsunuz, ancak genişletilmesi de zor ve okumak zaman alıyor. Modern kodla değiştirmek iyi bir fikir mi? Bir süre önce yalın yaklaşımı sevdim, ama şimdi bana daha yüksek soyutlamalar, daha iyi arayüzler ve daha okunaklı, …

11
Sınama amacıyla kesinlikle kodu değiştirmek kötü bir uygulama mıdır?
Bir programcı meslektaşımla birlikte çalışan bir kod parçasını sadece test edilebilir hale getirmek için değiştirmenin iyi mi yoksa kötü bir uygulama mı olduğu konusunda tartışmalıyım (örneğin, birim testleri aracılığıyla). Benim fikrim elbette, iyi nesneye yönelik ve tabii ki yazılım mühendisliği uygulamalarını sürdürme sınırları dahilinde ("her şeyi halka açık yapma" değil). …

10
Java'da sınıf başına kaç satır çok fazla? [kapalı]
Tecrübelerinize göre, Java'daki bir sınıf için kaç satır kodun fazla olması için kullanışlı bir kural nedir? Açıkçası, belirli bir sınıfta nelerin olması ve neyin olmaması gerektiğine ilişkin olarak kullanılacak satır sayısının gerçek standarda bile yakın olmadığını biliyorum. Sınıflar akılda uygun OOP felsefelerine (kapsülleme vb.) Göre tasarlanmalıdır. Bu, bir kuralın tekrar …

6
Bir yöntem adında yazım hatası düzeltme
Kod üssümüzde sıkça kullandığım yöntemlerden biri yanlış yazılmış (ve bana göre belirlendi). Bu beni gerçekten rahatsız ediyor, çünkü yanlış hecelenmiş değil ama daha da önemlisi ilk kez yazdığımda HER ZAMAN adı yanlış bulmamı sağlıyor (ve sonra şunu hatırlamam gerek "Ah, doğru, yanlış yazılmış ...") Orijinal yöntem etrafında birkaç değişiklik yapıyorum. …

10
Tam bir yeniden düzenleme için zaman olmadığında eski kod için testler yazmak mantıklı geliyor mu?
Ben genellikle kitabın tavsiyesi takip etmeye Legacy Cod ile Etkin Çalışma e . Bağımlılıkları bozuyorum, kodun bölümlerini @VisibleForTesting public staticyöntemlere ve kodu (veya en azından bir bölümünün) test edilebilir hale getirmek için yeni sınıflara taşıyorum. Ve değiştirdiğimde veya yeni işlevler eklerken hiçbir şeyi kırmadığımdan emin olmak için testler yazarım. Bir …

7
Meslektaşım önceden haber vermeksizin gereksiz iyileştirmeler yaptığında kodumun sorumluluğunu nasıl alabilirim?
Ekip arkadaşlarımdan biri, BT mağazamızdaki tüm işlemlerin bir jack'ı ve onun görüşüne saygı duyuyorum. Ancak bazen kodumu gözden geçiriyor (ekip liderimize ikinci sırada geliyor, bu yüzden beklendiği gibi). Bazen, hedefimi tamamlamadan önce değişikliklerimi gözden geçirir ve değişiklikleri hemen yapar ... ve bir kere bile işimi bozdu. Diğer zamanlarda, kodumu 3 …

2
Amacı anlamadığım kod için testler yazmak
Geçenlerde bir kara kutu yeniden düzenlemesini tamamladım. Kontrol edemiyorum, çünkü nasıl test edileceğini çözemiyorum. Yüksek düzeyde, başlangıçları bazı B sınıfından kapma değerleri içeren bir sınıfa sahibim. B sınıfı "boş" ise, bazı makul varsayılanlar oluşturur. Bu bölümü, B sınıfını aynı varsayılanlara ayarlayan bir yönteme çıkardım. Her iki sınıfın amacını / içeriğini …

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.