Yazılım Tasarım Prensipleri DRY ve KISS

Bu yazının içerisinde yazılım tasarım prensiplerinden olan DRY (Don’t Repeat Yourself) ve KISS (Keep It Simple, Stupid) üzerine bahsedeceğim. DRY’nin genel amacı yazılan kodun kendisini tekrar etmeme üzerine kuruludur. KISS ise kod parçacıklarının basit ve sade tutulmasını amaçlar.

DRY

DRY, sistem içerisinde bulunan her bilgi veya lojiğin tekrar edilmesini engellemeye çalışır. Aynı işi yapan fonksiyonları farklı yerlerde tekrar yazmak yerine, tek bir benzer fonksiyonun her yerde kullanılmasını amaçlar. Bu şekilde eğer sistemde major bir değişiklik olduğunda yönetilmesini kolaylaştırır ve bu değişikliğin sistemin küçük parçalarına az maliyetle entegre edilmesini sağlar.

Peki DRY prensipini nasıl uygularım diye kendinize soruyor olabilirsiniz. Sistemi küçük parçalara bölerek elbette! Fakat gelişigüzel bir parçalama değil, yeniden kullanılabilir parçalara bölmeniz gerekiyor. Böylelikle redundancy durumunun önüne geçerek sisteminizin yönetilebilirliğini ve karmaşıklığını azaltabilirsiniz. Aynı zamanda destan gibi upuzun metotlar yerine sizi kısa ve öz, yaptığı tek bir iş olan metotlar bekliyor olacak. Bunun yönetilebilirliği ise sizin için daha kolay olacaktır.

KISS

KISS, yazılacak kod parçacıklarının basit, sade ve temiz olmasını amaçlar. Yazılan kod parçacıkları yalnızca bilgisayarların okuması için değil, başka mühendislerin ve geliştiricilerin anlayabilmesi için de yazılmalıdır. Bu yüzden basitlik ve sadelik KISS metotu için birincil anahtarlardır.

KISS, her metotun tek bir işinin olduğunu söyler. Bu yüzden yapılacak işleri birer metotlara sığdırırsanız ve bunu yaparken DRY prensipini de göz önüne alırsanız, yazdığınız kodlarda hata yakalamak ve bakım yapmak fazlasıyla kolay olacaktır. Ekstra olarak yazdığınız kodun okunabilirliği artacaktır.




Okuyucuya Not

Merhaba okuyucu! Blogum son zamanlarda yüksek trafik almaya başladı ve bu durumdan memnunum fakat aynı zamanda siz ziyaretçileri tatmin edememekten endişeliyim. 🙂 Eğer yazılarım ile ilgili bir tavsiyeniz olursa mail adresimden bana ulaşabilir veya Twitter üzerinden direct message gönderebilirsiniz. Github’ta örnek olarak yaptığım projelere göz atmak isterseniz de bu linki kullanabilirsiniz. Umarım bu ziyaretinizle size bir şeyler katabilmişimdir.

Sağlıcakla kalın!