legacy koda dokunmak: üç yıllık bir projeyi devraldım, nereden başladım
İlk hafta: hiçbir şeye dokunmadım. Sadece okudum ve çalıştırdım. Sistemi ayağa kaldırmak üç gün sürdü ve bu süreç zaten çok şey öğretti.
Bu aşamada yaptığım tek yazma işi, kurulum adımlarını bir dosyaya not etmek oldu. Sonraki kişi için ilk hediye bu.
İkinci hafta: haritayı çıkardım. Hangi modül ne yapıyor, hangi dış sisteme bağlanıyor, veri nereden geliyor. Bir sayfalık kaba bir şema çizdim ve duvara astım.
Üçüncü hafta: emniyet ağı kurdum. Koda dokunmadan önce, mevcut davranışı doğrulayan testler yazdım. Birim testi değil, uçtan uca birkaç senaryo. Amaç doğru çalıştığını kanıtlamak değil, değiştirdiğimde bozulduğunu fark etmek.
Bu aşama en sıkıcı ama en kritik olanı. Testsiz legacy koda dokunmak, karanlıkta yürümek.
Dördüncü hafta ve sonrası: küçük ve izole değişiklikler. Her seferinde tek bir şey. Büyük yeniden yazma cazip geliyor ama neredeyse her zaman kötü bitiyor.
Öğrendiğim şeyler:
Anlamadığınız kodu silmeyin. Tuhaf görünen bir kontrol, muhtemelen bir olay sonucu eklenmiş.
Versiyon geçmişine bakın. Bir satırın neden eklendiğini commit mesajından öğrenebiliyorsunuz.
Eski çalışanları bulun. Bir saatlik sohbet, iki haftalık okumaya bedel.
Dokunduğunuz her yeri belgeleyin. Yeniden yazmaya kalkmadan önce anlaşılır hale getirin.

@nikea