İşte benim katkım.
Son zamanlarda çok büyük bir uygulama üzerinde çalıştığım (15M kod satırı) yeni bir işe başladım.
Muhtemelen projeye ve onun "özelliklerine" aşina değilsinizdir. Tek bir kod satırı yazmadan önce, projeye aşina olmak önemlidir. Bu yüzden değişikliklerinizi geri alın ve kodu analiz ederek başlayın . (En azından etkilenen)
Mevcut çözümü anlamak, nereye girdiğinize dair daha iyi bir bakış açısı sunar. Bağlamsallaştırın çözümü ve önemi.
@Greg'in belirttiği gibi, (regresyon testleri) ile karşılaştırılacak geçerli bir referans olması için mevcut kodu test edebilmelisiniz. Çözümünüz , mevcut sonuçla aynı sonuçları üretebilecek kapasitede olmalıdır . Bu aşamada, sonuçların doğru olup olmadığını umursamıyor musunuz . İlk hedef, düzeltici değil, hataları düzeltmektir. Mevcut çözüm "2 + 2 = 42" diyorsa çözümünüz de olmalıdır. İstisnalar atmazsa, sizinkini de yapmamalısınız. Eğer null değerini döndürürse, sizinki de null değerini döndürmelidir. Ve bunun gibi. Aksi takdirde, 25k kod satırından ödün vereceksiniz.
Bu geriye dönük uyumluluk uğruna.
Neden? Çünkü şu an, başarılı bir refactor için benzersiz garantiniz.
Birim testlerinin çoğu ya bu arayüzü doğrudan referanslar ya da bu arayüzü referans alan temel sınıflara bağlıdır.
Geriye dönük uyumluluğunu garanti etmenin bir yolu acilen sizin için gereklidir. İşte burada ilk zorluk. Ünite testi için bileşeni izole edin.
Mevcut 25k kod satırının, mevcut kodun olası sonuçları varsayılarak yapıldığını unutmayın. Sözleşmenin bu bölümünü bozmazsanız, nihai çözüme giden yolun yarısı kadardır. Eğer yaparsan, iyi: güç seninle olsun
Yeni "sözleşmeyi" tasarlayıp uyguladıktan sonra, eski sözleşmeyi değiştirin. İtiraz et ya da çıkar.
Yeniden düzenleme ve hataların giderilmesi nedeniyle hataları yalnız bırakmayı önerdim. Onları bir araya getirmeye çalışırsanız her ikisinde de başarısız olabilirsiniz. Hata bulduğunuzu düşünebilirsiniz, ancak bunlar "özellikler" olabilir. Bu yüzden onları yalnız bırakın (bir dakika için).
25k kod satırı bana sadece bir göreve odaklanmamı sağlayacak kadar çok şey gösteriyor.
İlk göreviniz bittiğinde. Bu hataları / özellikleri patronunuza gösterin.
Son olarak, @Stephen'in söylediği gibi:
Yavaş yavaş işleri daha iyi hale getirme dışında bu konuda yapabileceğin pek bir şey yok. Yeni sınıfları oluşturduğunuzda, bunları doğru bir şekilde test ettiğinizden ve SOLID ilkelerini kullanarak oluşturduğunuzdan emin olun , böylece gelecekte değişmeleri daha kolay olur