«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.

5
Yeni özelliklere odaklanan bir projede kırılmayan mevcut kodu yeniden gözden geçirmeli misiniz?
Uygulamaya yeni işlevsellik eklemeyi amaçlayan küçük bir proje göz önüne alındığında, getirilen değişiklikler, bazı alanlarda bunların güncellenmesini içeren mevcut kodlara değinmektedir. Uygulama sırasında, güncellenen bu kodların bazılarının yeniden düzenleme için adayları olduğunu gördüm. Bu, etkilenen bileşenler için regresyon testini gerektiren (böylece muhtemelen projenin bir parçası olmayan kapsamı getirecek) refactor için …

3
Java'da ne zaman kullanımdan kaldırılacağı ve ne zaman silineceği
Yeniden düzenleme çabasının veya sadece devam eden gelişimin bir parçası olarak, belirli bir yöntem veya belki de tüm sınıf bir anlamda eski olabilir. Java, söz @Deprecatedkonusu işlevselliği ele almanın daha iyi bir yolu olduğunu belirtmek için ek açıklamayı destekler . Bunun, bir API'nin parçalarını kaldırmanın etkilerinin bilinmeyebileceği genel API'lerde özellikle …

2
Tekrarlayan kod nasıl düzenlenir?
Ekibim çok sayıda tek seferlik web formu oluşturuyor. Bu formların çoğu sadece bir e-posta gönderir ve birkaçı basit bir veritabanı yazımı yapar. Şu anda, her form Visual Studio Team Foundation Server'da kendi ayrı çözümünde yaşıyor. Bu, tutarlılığı korumayı zorlaştıran 100'e yakın farklı form projemiz olduğu anlamına gelir. Her form, alanların …

4
Eski projeleri temizlemek için iyi yaklaşımlar nelerdir?
Yaklaşık 2 yıl önce yazdığım bir yazılımım var ve bazı özelliklere eklenmesi gerekiyor. Bunun korkunç bir karmaşa içinde olduğunu fark ettik ve etrafındaki her şeyi taşımak için dürtü, düzenli up, vb ben oldum okumak zorunda yeniden başlıyor değil yaklaşık Yazılım Joel makalesine whats iyi yolu ileriye?

6
SRP'yi uygulamanın pratik yolları nelerdir?
Bir sınıfın tek sorumluluk ilkesini ihlal edip etmediğini kontrol etmek için insanların kullandıkları pratik teknikler nelerdir? Bir sınıfın değişmek için tek bir nedeni olması gerektiğini biliyorum, ama bu cümlenin bunu uygulamak için pratik bir yolu eksik. Bulduğum tek yol "......... gerekir ......... kendisi" cümlesini kullanmaktır . burada birinci alan sınıf …


4
Koşullu'yu polimorfizm ile uygun bir şekilde değiştir?
İki sınıfı düşünün Dogve Cather ikisi de Animalprotokole uygun (Swift programlama dili açısından. Java / C # arayüzünde olurdu). Köpeklerin ve kedilerin karışık bir listesini gösteren bir ekranımız var. Orada Interactorsınıf perde arkasında o kolları mantık. Şimdi bir kediyi silmek istediğinde kullanıcıya bir onay uyarısı sunmak istiyoruz. Bununla birlikte, köpeklerin …

4
Her yerde veri kontrolleri yapmak için iyi kod stili?
Kafamdaki her yönü artık tutamayacağım kadar büyük boyutlu bir projem var. İçinde birkaç sınıf ve işlevle uğraşıyorum ve veriyi veriyi aktarıyorum. Zamanla hatalar almaya devam ettiğimi fark ettim, çünkü veriyi farklı işlevlere geçirdiğimde ne kadar kesin bir form olması gerektiğini unuttum ( örneğin, bir işlev daha sonra yazdığım bir dizi …

6
Eşit derecede optimal olmayan tasarımlarla sonsuz bir şekilde tekrarlamayı nasıl önlersiniz?
Muhtemelen birçokları gibi, genellikle kendimi tasarım problemleri ile baş ağrısına koşarken buluyorum, örneğin, sezgisel olarak problemlere uygun görünen ve istenen faydaları olan bazı tasarım desenleri / yaklaşımları var. Çoğunlukla patern / yaklaşımın, bir çeşit çalışma olmadan uygulanmasını zorlaştıran ve sonrasında paternin / yaklaşımın faydasını reddeden bazı uyarılar vardır. Pek çok …

5
Benzer özellikler için farklı desenler kullanma
Herhangi bir yazılım projesinde olduğu gibi gelecekte başka biri tarafından alınabilecek bir projedeki tek geliştiriciyim. Diyelim ki X özelliğini A özelliğini uygulamak için kullandım. Özelliği geliştirip bitirdikten sonra, yeni öğrendiğim Y desenini kullanarak aynı özelliği uygulayabileceğimin farkındayım. Ancak A özelliği iyi çalışıyor ve X'ten Y'ye yeniden düzenleme zaman alıcı ve …

4
Bir sınıfın karmaşıklığını azaltmak
Bazı cevaplara baktım ve Google'da arama yaptım, ancak yararlı bir şey bulamadım (yani, garip yan etkileri olmaz). Benim sorunum, soyut olarak, bir nesnem var ve üzerinde uzun bir işlem dizisi yapmam gerekiyor ; Bunu bir araba yapımı gibi bir çeşit montaj hattı olarak düşünüyorum. Bu nesnelere Yöntem Nesneleri deneceğine inanıyorum …

3
Uzlaşmak zorundayım: KURU veya Komut-Sorgu-Ayırma?
Son zamanlarda bir komut ve bir sorgu yöntemi olan bir yöntemi refactoring. Bir komut yöntemi ve bir sorgu yöntemine ayırdıktan sonra, şimdi kodu çağırıyorum sonra DRY ilkesinin ihlali gibi görünüyor sorgudan değeri almak nerede kodda birden çok yer olduğunu buldum. Ama bu ortak kodu bir yönteme sarmak olsaydı, bu yöntem …

3
Hiçbir şeyi kırmamamı sağlamak için büyük bir yöntemi yeniden düzenlerken ne yardımcı olur?
Şu anda hiçbir birim testleri ile büyük bir kod tabanı bir kısmını yeniden düzenleme. Ben kaba bir şekilde kod refactor denedim, yani kodun ne yaptığını ve ne değişiklikler anlamını değiştirmek olmaz tahmin etmeye çalışarak, ama başarı olmadan: rastgele tüm kod tabanı çevresindeki sonları. Yeniden düzenleme işleminin eski C # kodunu …

7
Geçici değişkenler ve satır uzunluğu gereksinimleri
Martin Fowler'in Refactoring'ini okuyorum . Genellikle mükemmeldir, ancak Fowler'in önerilerinden birinin biraz sorun yarattığı görülmektedir. Fowler, bunun yerine geçici değişkenleri bir sorgu ile değiştirmenizi önerir: double getPrice() { final int basePrice = _quantity * _itemPrice; final double discountFactor; if (basePrice > 1000) discountFactor = 0.95; else discountFactor = 0.98; return …

5
Strateji modeline göre yeniden düzenlenmiş bir fonksiyon nasıl test edilir?
Benim kodda gibi bir işlevi varsa: class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } Normalde Ploymorphism'i bir fabrika sınıfı ve strateji modeli kullanarak kullanmak için bunu yeniden düzenlerdim: public string calculateTax(string name) { InameHandler nameHandler …

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.