Programlamada Güzellik ve Basitlik
Platon? un, tüm yazılım geliştiricilerin bilmesi gereken ve her zaman yanlarında taşımaları gereken bir sözü var;
Uyum, zarafet ve iyi bir ritim basitliğe bağlıdır.
Bu söz, bir cümle ile yazım geliştiricilerin neyi arzuladıklarını özetler niteliğinde.
Kodumuzun içinde dikkat etmemiz gereken birkaç konu var;
- Okunabilirlik
- Sürdürülebilirlik
- Geliştirme Hızı
- Güzelliğin nadide kalitesi
- Platon, bütün bu nitelikleri sağlayanın basitlik olduğunu bize bildiriyor. Peki güzel kod ne demek? Bu aslında potansiyel olarak çok subjektif bir soru. Güzellik algısı çoğunlukla arka plan özelliklerine bağlıdır tıpkı algılarımızın çoğunun oluştuğu yer gibi. Sanat eğitimi alan kişilerin fizik eğitimi alan kişilere göre güzellik algısı her zaman daha farklı olmuştur. Bir sanatçı yazılıma baktığında bu çalışmanın içindeki sanat kavramına yakın olan şeyleri karşılaştırır, bir fizikçi ise baktığında simetri, altın oran gibi kavramları formüle ederek karşılaştırır. Sonuçta, basitlik her iki tarafın argümanlarının temelini oluşturur.
- Üzerinde çalıştığınız kaynak kodu bir düşünün. Eğer başka birinin kodu üzerinde hiç çalışmadıysanız, bunu okumayı bırakın ve açık kaynak bir kod üzeirinde çalışmaya başlayın. Gerçekten! İnternette Türkçe birinin yazdığı kodu bulun, tabi iyi bir yazılımcının yani alanında uzman birinin yazdığı kod olsun.
Sonra bu yazıya geri dönün. Bulduğunuz kodların, aynı zamanda güzel olduğunu düşündüğünüz, birkaç ortak özellikleri vardır. Bunların başında sadelik gelir. Bütün sistem ne kadar karmaşık olursa olsun, parçalar basit olmalıdır, basit sorumluluğu olan basit nesneler benzer basitlik içerirler. Bir de yanlarında açıklayıcı method ve tanımlayıcı isimleri varsa tadından yenmez bu nesneler. Bazı insanlar 5-10 satır kod içeren methodları aşırı bulurlar ve bazı dillerde bunları uygulamanın zor olduğunu söylerler. Ben böyle bir kısalığın istenilen bir amaç olduğunu düşünüyorum.
Sonuç olarak güzel kodun basit kod olduğunu düşünüyorum. Her özgün kısım, basit sorumlukları ve basit diğer kısımlarla basit ilişkileriyle tüm sistemi basit kılar. Bu zaman içerisinde, temiz, basit, test edilebilir kod ile sisteminizin ömrü boyunca yüksek bir geliştirme hızı sağlayacaktır.
Güzellik, basitlikle birlikte doğar.
Fonksiyonel programlama paradigması yazmış olduğunuz kodun kalitesini büyük ölçüde arttırabilir. Eğer fonksiyonel programlama uygulamayı derin olarak anlarsanız, tasarımınız çok yüksek bir derecede bütünsel bir şeffaflık gösterecektir.
