İçeriğe geç
parazade

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?
İçindekiler
  1. DRY prensibi nedir?
  2. Örnekle DRY
  3. Aşırıya kaçmanın riski

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.

İlgili terimler

KISS Prensibi(KISS Principle)KISS prensibi (Keep It Simple, Stupid), sistemlerin gereksiz karmaşıklıktan arındırılıp olabildiğince basit tasarlandığında en iyi çalıştığını söyleyen ilkedir. Yazılımda sade çözümleri, karmaşık ve gösterişli çözümlere tercih etmeyi önerir.Temiz Kod(Clean Code)Temiz kod (clean code), başka bir geliştiricinin kolayca okuyup anlayabileceği, değiştirebileceği ve test edebileceği biçimde yazılmış koddur. Anlamlı isimler, küçük ve tek işe odaklı fonksiyonlar ve gereksiz karmaşıklıktan uzak bir yapı temel özellikleridir.RefactoringRefactoring (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.Fonksiyon(Function)Fonksiyon, programlamada belirli bir işi yapan, isim verilmiş ve gerektiğinde tekrar tekrar çağrılabilen kod bloğudur. Girdi olarak parametre alabilir ve geriye bir değer döndürebilir.MySQLMySQL, verileri tablolarda saklayan ve SQL diliyle yönetilen açık kaynak kodlu bir ilişkisel veritabanı yönetim sistemidir. Web sitelerinde, özellikle WordPress gibi PHP tabanlı sistemlerde çok yaygın kullanılır.NoSQLNoSQL, verileri sabit tablolar yerine doküman, anahtar-değer, sütun ailesi ya da graf gibi esnek yapılarda saklayan veritabanlarının genel adıdır. Adı "Not only SQL" (yalnızca SQL değil) olarak yorumlanır.