Cevabın bir kısmı Yeniden Düzenleme .
Öncelikle, değişikliklerinizle yanlışlıkla bir şey kırmamanız için birim testleri yazmaya başlayın. Ardından, tasarımı geliştirmeye, kopyaları vb. Küçük adımlarla kaldırmaya, her adımdan sonra birim testlerinizi çalıştırmaya, testlerden herhangi biri başarısız olursa herhangi bir sorunu çözmeye veya kolayca çözebileceğinizden daha büyük bir sorunla karşılaşırsanız hemen geri dönmeye başlayın.
Diğer kısım eğitimdir .
İnsanlara kötü kodları geride bırakmamaları öğretilmelidir. Bu kesinlikle uzun vadeli bir savaştır, çünkü alışkanlıkların ve düşünce süreçlerinin değiştirilmesi zor (bazen imkansız) . Bununla birlikte, onsuz, yeniden düzenlenmesi için çığlık atan sonsuz bir kötü kod kaynağı almaya devam edeceksiniz.
İyi ve kötü kodlama alışkanlıkları hakkında tartışma açmak ve birincisinin yararlarını yaymak için grup kodu incelemeleri yapmayı seçebilirsiniz. "Böyle kod yazmalısınız (söylememelisiniz) demek yeterli değildir, insanları mantık ve zor gerçeklerle ikna etmeniz gerekir. Gibi "Eğer varsa yöntemin bu parça kod tabanına üzerinde çoğaltılamaz n defa, sen şansını bir hata olduğunu yöntemde bulunursa, bu yöntem kodunun her kopyasında sabit olacağını ne düşünüyorsunuz?"
Şirketinizin ayrıca danışmanlar için teşvik ve kabul kriterlerini gözden geçirmesi gerekebilir - özensiz kod yazarak kurtulabilirlerse, kesinlikle daha kolay yolu seçmeye devam edecektir. Şirket uzun vadeli sürdürülebilirlik üzerinden "hızlı teslimat" değer vermeye devam ederse, hiçbir şey değişmeyecek: --( Bu yüzden yönetimi ile de tartışmak gerekebilir. Onları anlamak için bir yolu şudur: yeniden düzenleme kodu temiz tutmak, Yeniden düzenleme yapmamak, kredi kartınıza borç toplamak gibidir .. Bir süre bununla kurtulabilirsiniz, ancak satın alma alışkanlıklarınızı ve borçlarınızı aktif olarak yönetmiyorsanız, bir gün omuzlarınızda kaçınılmaz olarak parçalanacaktır. Bir yazılım projesinin hayatında iflas, projenin sürdürülemez hale geldiği zamandır: sıfırdan yeniden yazmak, mevcut kod tabanına yeni bir özellik eklemekten daha kolay hale gelir. Ya da kullanıcılar, sadece rekabete geçecekleri düşük seviyedeki destek ve özelliklerden bıkmış olurlar.