# DRY (Don't Repeat Yourself (Kendini Tekrar Etme))

Adres: https://softwaredictionary.org/tr/terimler/dry-principle
Kategori: Yazılım Mimarisi
Son güncelleme: 2026-09-30
Okunuşu: dray

Kısaca: DRY, her bilgi ya da mantık parçasının çoğaltılmak yerine tek bir yetkili temsile sahip olması gerektiğini söyleyen bir yazılım tasarım ilkesidir.

## DRY ilkesi nedir?

DRY, Andy Hunt ve Dave Thomas'ın 1999 tarihli The Pragmatic Programmer kitabında ortaya koyduğu Don't Repeat Yourself (Kendini Tekrar Etme) ilkesinin kısaltmasıdır. Özgün ifadesi, her bilgi parçasının bir sistem içinde tek, belirsizliğe yer bırakmayan ve yetkili bir temsile sahip olması gerektiğidir. Pratikte bu, bir iş kuralının, bir hesaplamanın ya da bir yapılandırma değerinin tek bir yerde tanımlanıp diğer her yerde yeniden kullanılması demektir.

Aynı mantık birkaç yere kopyalandığında gelecekteki her değişikliğin hepsinde yapılması gerekir ve birini atlamak kolaydır; bu da uygulamanın parçalarının birbiriyle çeliştiği hatalara yol açar. Geliştiriciler DRY'ı ortak kodu fonksiyonlara, modüllere, sabitlere ya da bileşenlere çıkararak ve API istemcileri veya veritabanı şemaları gibi tekrarlanan çıktıları tek bir kaynaktan üreterek uygular.

Bir şirket telefon numarasını yüz ayrı broşüre ayrı ayrı basmak ile her broşürün gösterdiği web sitesinde tek bir numara bulundurmak arasındaki fark bir benzetmedir: numara değiştiğinde yalnızca bir yerin güncellenmesi gerekir. DRY yalnızca koda değil, dokümantasyona, testlere, veritabanı şemalarına ve derleme yapılandırmasına da uygulanır.

Sık yapılan bir yanlış anlama, DRY'ın benzer görünen her kodu kaldırmak demek olduğudur. İki blok bugün birbirine benzeyebilir ama farklı nedenlerle değişecek farklı iş kurallarını temsil edebilir; bunları birleştirmek, tekrardan daha zor değişen, karmakarışık ve aşırı genel bir soyutlama yaratır. İyi bir pratik kural, yalnızca tekrarlanan karakterleri değil, tekrarlanan bilgiyi kaldırmaktır.

## Önemli noktalar

- DRY, her bilgi ya da mantık parçasının tam olarak tek bir yerde bulunması demektir.
- Tekrarlanan mantığın birkaç yerde değiştirilmesi gerekir; bu da hataları davet eder.
- Ortak kodu fonksiyonlara, modüllere, sabitlere veya bileşenlere çıkarın.
- Sadece benzer görünen kod her zaman gerçek bir tekrar değildir.
- Yanlış soyutlama, biraz tekrardan daha kötü olabilir.

## Örnek: Tekrarlanan mantığı kaldırmak

```javascript
// Not DRY: the same tax rule is copied in two places
function cartTotal(cart) {
  return cart.subtotal * 1.2;
}
function invoiceTotal(invoice) {
  return invoice.amount * 1.2; // if the rate changes, both must be updated
}

// DRY: the rule lives in one place and is reused
const TAX_RATE = 0.2;
const withTax = (amount) => amount * (1 + TAX_RATE);

const cartTotalDry = (cart) => withTax(cart.subtotal);
const invoiceTotalDry = (invoice) => withTax(invoice.amount);
```

## Sık sorulan sorular

**Programlamada DRY neyin kısaltmasıdır?**

DRY, Don't Repeat Yourself'in kısaltmasıdır. Bir sistemdeki her bilgi ya da mantık parçasının çoğaltılmak yerine tek bir yerde tanımlanması gerektiği ilkesidir.

**DRY ilkesi aşırı kullanılabilir mi?**

Evet. Yalnızca benzer görünen kodu tek bir ortak soyutlamaya zorlamak ilgisiz özellikleri birbirine bağlayabilir; böylece biri için yapılan değişiklik diğerini bozar. Biraz tekrar çoğu zaman yanlış soyutlamadan daha ucuzdur.

**DRY'ın tersi nedir?**

Esprili karşıtı WET'tir; çoğunlukla write everything twice (her şeyi iki kez yaz) diye açılır ve gereksiz tekrarı olan kodu tanımlar. Bazı geliştiriciler üç kuralını izler: ikinci kopyayı hoş görün, aynı mantık üçüncü kez göründüğünde ortak kodu çıkarın.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
