İçeriğe geç
parazade

KISS Prensibi Nedir?

İngilizce: KISS Principle

Yayın: · Son güncelleme:

KISS Prensibi Nedir? Kısaca

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.

KISS Prensibi nedir?
İçindekiler
  1. KISS prensibi nedir?
  2. Yazılımda KISS örnekleri
  3. Basitlik ile eksiklik farkı

KISS prensibi nedir?

KISS, "Keep It Simple, Stupid" ifadesinin kısaltmasıdır ve kabaca "basit tut" demektir. Kökeni mühendisliğe, özellikle havacılık tasarımına dayanır. Yazılımda ise bir sorunu çözmenin en basit ve anlaşılır yolunu seçmeyi önerir.

Bazen "Keep It Short and Simple" olarak da açılır. Mesaj aynıdır: karmaşıklık bir maliyettir.

Yazılımda KISS örnekleri

Basit bir ihtiyaç için karmaşık bir yapı kurmak sık görülen bir hatadır. Örneğin küçük bir şirketin iletişim formu düşünün. Form bilgileri bir e-postaya gönderilecek. Bunun için mesaj kuyruğu, ayrı bir mikroservis ve üç farklı veritabanı kurmak teknik olarak mümkündür.

Ama tek bir fonksiyon ve güvenilir bir e-posta servisi aynı işi daha az hata riskiyle yapar.

Kod düzeyinde de geçerlidir. Tek satırda yazılmış, iç içe geçmiş zekice bir ifade yerine dört satırlık açık bir kod çoğu zaman daha iyidir. Okuyan kişi ne olduğunu hemen anlar. Hata ayıklamak da kolaylaşır.

Basitlik ile eksiklik farkı

KISS, gerekli olanı atlamak anlamına gelmez. Hata yönetimi, güvenlik kontrolleri ve test basitlik adına çıkarılmaz. Amaç, ihtiyaç olmayan karmaşıklığı eklememektir.

Bir karar verirken şunu sorun: bu ek katman bugün hangi sorunu çözüyor? Cevap "ileride lazım olabilir" ise beklemek genelde daha iyidir; bu yaklaşım YAGNI (You Aren't Gonna Need It) olarak anılır. KISS, temiz kod ve DRY ilkeleriyle birlikte kullanıldığında bakımı kolay sistemler ortaya çıkar.

Sıkça Sorulan Sorular

KISS ile YAGNI arasındaki fark nedir?

KISS, çözümün olabildiğince basit tasarlanmasını önerir. YAGNI ise henüz ihtiyaç olmayan özellikleri baştan eklememeyi söyler. İkisi de gereksiz karmaşıklığa karşıdır ve birbirini tamamlar.

Basit kod daha az mı profesyoneldir?

Hayır. Karmaşık bir sorunu basit bir çözümle halletmek genelde daha fazla deneyim gerektirir. Basit kod daha kolay okunur, test edilir ve değiştirilir.

İlgili terimler

DRY Prensibi(DRY Principle)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.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.Tasarım Deseni(Design Pattern)Tasarım deseni (design pattern), yazılım geliştirmede sık karşılaşılan tasarım sorunlarına karşı denenmiş, yeniden kullanılabilir çözüm şablonudur. Hazır kod değil, bir sorunun nasıl çözüleceğini anlatan genel bir yapıdır.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.Mikroservis(Microservices)Mikroservis, bir uygulamanın her biri tek bir işe odaklanan, kendi başına geliştirilip dağıtılabilen ve birbiriyle genellikle API ya da mesaj kuyruğu üzerinden haberleşen küçük servislere bölündüğü mimari yaklaşımdır.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.Hata Yönetimi(Error Handling)Hata yönetimi (error handling), bir programın çalışırken karşılaştığı beklenmedik durumları yakalayıp çökmeden, kontrollü biçimde ele almasını sağlayan yöntemlerin bütünüdür. Try-catch blokları, hata kodları ve loglama bu yöntemlerin parçasıdır.