KISS Prensibi Nedir?

K.I.S.S. Prensibi Nedir?
Merhaba! Kendi yazdığınız bir koda altı ay sonra dönüp "burada ne yapmaya çalışmışım" dediyseniz, KISS prensibinin uğraştığı problemi zaten yaşamışsınız demektir. Açılımı "Keep It Simple, Stupid". Söylediği şey tek cümlelik: işi çözen en yalın tasarımı seçin, gerisini eklemeyin.
Kalıbın kökeni yazılım değil, havacılık. 1960 dolaylarında Lockheed’in Skunk Works ekibini yöneten mühendis Kelly Johnson’a atfedilir. Johnson tasarımcılarından şunu istiyordu: yaptığınız uçak, sahada, ortalama bir teknisyen tarafından yalnızca temel el aletleriyle onarılabilsin. Yazılıma tercümesi de bire bir aynı. Kodu, onu ilk kez gören birinin tamir edeceğini varsayarak yazın.
Bunu uygulamak özellik kesmek demek değil. Gerçekten gereken davranışı bulup onu en az hareketli parçayla kurmak demek. Yeni bir soyutlama katmanı eklemeden önce sorulacak tek bir soru var. Bu katman bugün var olan kaç problemi çözüyor? Cevap "ileride lazım olabilir" ise, o katman henüz gerekmiyor.
Somutlaştıralım. Bir müşteri yönetim sistemi yazıyorsunuz. Kayıt formuna 20 alan koyabilirsiniz. Ya da ad, soyad ve e-posta ile açılıp kalanını kullanıcı gerçekten isteyince eklersiniz. İkinci yol size 20 değil 3 doğrulama kuralı, daha dar bir tablo ve yarıda bırakılmayan bir form bırakır.
Bir dosya yöneticisi de aynı testten geçer. Her formatı açmaya çalışan uygulama, her format için ayrı bir ayrıştırıcıyı, ayrı hata durumlarını ve ayrı bakım yükünü de üstlenir. Üç formatla çıkıp kullanıcının bizzat istediği dördüncüyü sonra eklemek daha ucuzdur. Kullanılmayan on yedinci format için yazılan kod, kimse fark etmeden bozulur.
Bunun getirisi kod yazıldıktan sonra görünür. Bir hatayı kovalarken izlemeniz gereken dallanma azdır. Projeye yeni katılan birinin okuması gereken dosya azdır. Yalın bir kod tabanı maliyetini yazıldığı gün değil, sonraki yıllarda geri öder.
Sonuç
KISS bir satır sayma prensibi değil. Bir yazılımı anlamak için harcanması gereken zihinsel eforla ilgili. Müşteri yönetim sistemi de olsa, dosya yöneticisi de olsa, e-ticaret sitesi de olsa değişmeyen bir gözlem var: çalışan yalın halini kurup üzerine ekleyen ekipler, her ihtimali önden tasarlayanlardan daha hızlı ilerliyor. Ve bir gerçek daha var. Karmaşıklığı sonradan sökmek, en baştan eklememekten çok daha zor. Ucuz olan yol, eklememek.
Bu seriden ilk yazı olan "SOLID Prensipleri Nedir" isimli yazıma buradan ulaşabilirsiniz. Şimdilik hoşça kalın!
Referanslar
Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall.

Mustafa Kürşad Başer
Kıdemli Yazılım Mühendisi
Karmaşık sorunlara zarif çözümler üretmekten keyif alan, tutkulu bir yazılım mühendisi. Kodlamanın ötesinde, teknoloji, sanat ve insan bilincinin kesişim noktalarını keşfetmekle derinden ilgileniyor.

