DRY Prensibi Nedir?
İngilizce: DRY Principle
Yayın: · Son güncelleme:
DRY Prensibi Nedir? Kısaca
DRY prensibi (Don't Repeat Yourself), yazılımda her bilginin ya da iş kuralının tek bir yerde tanımlanması gerektiğini söyleyen ilkedir. Aynı mantığın birden fazla yere kopyalanmasını önleyerek bakımı kolaylaştırır.

DRY prensibi nedir?
DRY, "Don't Repeat Yourself" yani "kendini tekrar etme" demektir. Andrew Hunt ve David Thomas'ın "The Pragmatic Programmer" kitabıyla yaygınlaştı. Kitaptaki tanıma göre her bilgi parçasının sistem içinde tek, açık ve yetkili bir karşılığı olmalıdır.
Mesele yalnız kod satırlarını kopyalamamak değildir. Asıl konu, aynı iş kuralının farklı yerlerde ayrı ayrı yaşamamasıdır.
Örnekle DRY
Bir e-ticaret sitesinde kargo ücretinin hesaplandığını düşünün. Varsayımsal kural şu: belirli bir tutarın üstündeki siparişlerde kargo ücretsiz. Bu kural sepet sayfasına, ödeme sayfasına ve sipariş onay e-postasına ayrı ayrı yazılmış olsun.
Sonra sınır değişir. Geliştirici üç yerden ikisini günceller, üçüncüsünü unutur. Sepette "kargo ücretsiz" yazar, e-postada ise ücret görünür ve müşteri hizmetlerine şikâyet yağar.
DRY'a uygun yapıda kural tek bir fonksiyonda durur ve üç yer de onu çağırır. Değişiklik bir kez yapılır, her yere aynı anda yansır.
Aşırıya kaçmanın riski
DRY'ı her benzerliğe uygulamak da sorun yaratır. Bugün aynı görünen iki kod parçası, farklı iş ihtiyaçlarına hizmet ediyor olabilir ve yarın farklı yönlere değişebilir. Onları zorla birleştirmek, her değişiklikte koşullarla dolu karmaşık bir fonksiyon üretir.
Pratik bir ölçü olarak "üç kuralı" sık kullanılır: aynı şeyi üçüncü kez yazıyorsanız ortaklaştırmayı düşünün. Ortaklaştırırken amacınız sadelik olsun; KISS prensibi bu dengeyi kurmaya yardımcı olur.
Sıkça Sorulan Sorular
DRY ile WET ne demek?
DRY, tekrardan kaçınmayı önerir. WET ise şakayla karışık "Write Everything Twice" ya da "We Enjoy Typing" diye açılan ve tekrar eden kodu anlatan bir terimdir.
DRY sadece kod için mi geçerli?
Hayır. Veritabanı şemaları, yapılandırma dosyaları, belgeler ve testler için de geçerlidir. Aynı bilgi birden fazla yerde elle güncelleniyorsa DRY ihlali vardır.