Refactoring Nedir?
Yayın: · Son güncelleme:
Refactoring Nedir? Kısaca
Refactoring (yeniden düzenleme), yazılımın dışarıdan görünen davranışını değiştirmeden kodun iç yapısını daha okunur, sade ve bakımı kolay hâle getirmek için yapılan düzenlemelerdir. Yeni özellik eklemek ya da hata düzeltmek değildir.

Refactoring nedir?
Refactoring, kodu yeniden düzenlemektir. Program aynı işi yapmaya devam eder, ama içi daha derli toplu olur. Uzun bir fonksiyonu küçük parçalara bölmek, anlaşılmaz değişken adlarını düzeltmek ya da tekrar eden kodu tek bir yerde toplamak tipik örneklerdir.
Kullanıcı farkı görmez. Fark, kodu bir sonraki değiştirecek kişinin işinin kolaylaşmasıdır.
Ne zaman yapılmalı?
Sık duyulan bir kural vardır: bir kodu üçüncü kez benzer şekilde yazıyorsanız düzenleme zamanı gelmiştir. Bir başka iyi an, yeni bir özellik eklemeden hemen öncesidir. Kodu önce değişikliği kolaylaştıracak hâle getirir, sonra değişikliği yaparsınız.
Kodda bazı işaretler de vardır. Yüzlerce satırlık fonksiyonlar, aynı mantığın beş farklı yerde kopyası, açıklamasız sihirli sayılar ve anlamsız isimler bunlardandır. Örneğin x = t * 0.2 satırı, kdv = tutar * KDV_ORANI hâline getirildiğinde aynı işi yapar ama artık ne yaptığı okunur. Oranın değeri de tek bir yerde tanımlanmış olur.
Güvenli refactoring kuralları
Önce test. Kodu düzenlemeden önce davranışını doğrulayan testler olmalıdır; aksi hâlde bir şeyi bozup bozmadığınızı bilemezsiniz.
Küçük adımlarla ilerleyin ve her adımdan sonra testleri çalıştırın. Düzenleme ile yeni özelliği aynı commit'e koymayın; ayrı tutmak, sorun çıktığında sebebi bulmayı kolaylaştırır. Düzenli refactoring, teknik borç birikimini kontrol altında tutmanın en etkili yoludur.
Sıkça Sorulan Sorular
Refactoring hata düzeltmek sayılır mı?
Hayır. Refactoring davranışı değiştirmez, yalnız iç yapıyı iyileştirir. Hata düzeltmek ise davranışı değiştirir. İkisini ayrı adımlarda yapmak daha güvenlidir.
Refactoring için zaman ayırmak işi yavaşlatmaz mı?
Kısa vadede biraz zaman alır. Ancak düzenli yapılmadığında kod karmaşıklaşır ve her yeni özellik daha uzun sürer. Bu yüzden birçok ekip refactoring'i günlük işin parçası olarak görür.