geri

En önemli programlama ilkesi nedir?

11/09/2012
Yakın zamanda Güncel Bilgi Teknolojileri Kavramları isimli bir ders vermeye başladım.

Bu dersin sınavında sorduğum "En önemli programlama ilkesi nedir?" sorusuna iki farklı yanıt aldım. Amacım da zaten buydu çünkü bu sorunun yanıtı oldukça özneldi ve herkesin farklı yanıtlar vermesini bekliyordum. Yanıtların iki ilkede toplanması diğerlerine oranla biraz daha önemli olanların ortaya çıkmasını sağladı.

En az hata içeren kod, hiç olmayan koddur.

Sınavda verilen yanıtlardan biri benim de en sevdiğim ilke olan "En az hata içeren kod, hiç olmayan koddur." oldu. Programcıların bence en büyük yanılgılarından biri görevlerinin kod yazmak olduğunu zannetmeleridir. Oysa programcıların asıl görevi bir ihtiyacı gerçeklemek, bir sorunu çözmektir. Eğer bir sorunu hiç kod yazmadan çözebiliyorsanız öyle yapın. Çünkü her yeni kod beraberinde yeni hatalar getirecek ve ayrıca yazılımın karmaşıklığını artırarak sürdürülebilirliği azaltacaktır. Bu sebeple bir satır kod yazmadan önce iki kere düşünün.

Her aptal, bilgisayarın anlayabileceği kodu yazabilir. İyi programcılar insanların anlayabileceği şekilde kod yazarlar.

Sınavda verilen ikinci yanıt Martin Fowler'ın bu unutulmaz özlü sözü oldu. Bu söz hem kendi kendini belgelendiren kodu hem de kod içerisine düzgün şekilde yerleştirilmiş yorum satırlarını ifade ediyor. Üşenmeyin, kodu belgelendirin. Unutmayın en iyi programcılar asla üşenmezler.

KISS: Keep it simple, Stupid!

KISS ilkesinin aslında birden fazla açılımı bulunuyor ancak benim en çok sevdiğim açılımı "Keep it simple, Stupid! (Şunu basit tut, gerizekalı!)" şeklinde olanıdır. Programcılar karmaşığa eğilimlidirler. Oysa bu eğilim bir süre sonra sürdürülemez yazılımlara dönüşür. Bu sebeple yazdığınız kodu sizden sonra okuyacak insanlar olacağını da düşünerek çözüme giden en basit ve en anlaşılır yolu bulmaya çalışın.

YAGNI: You ain't gonna need it

Sevdiğim bir diğer ilke de "YAGNI (Buna ihtiyacın olmayacak)" ilkesidir. Eğer bir API yazmıyorsanız ileride şuna da ihtiyacım olur diyerek hayali kodlar üretmeyin. Bu kodlar test süreçlerini de düşünürsek size tahmininizden fazla zaman kaybettirecektir. Ayrıca programınız olması gerekenden daha karmaşık hale gelecektir. Bundan dolayı gerçekten ihtiyacınız olana dek programınıza yeni özellikler eklemeyin.

DRY: Don't Repeat Yourself

Beğendiğim ilkeler arasında en iyiler listesinin son sırasında "DRY (Kendizi tekrar etmeyin)" ilkesi yer alıyor. Eğer aynı kodu ikiden fazla yerde tekrarlıyorsanız durup bir düşünün. Mümkünse tekrar eden kodları içeren fonksiyonlar/metotlar oluşturun ve başkalarının da kolayca kullanabilmesi için bu fonksiyonları/metotları uygun şekilde belgelendirin.

Güncel Bilgi Teknolojileri Kavramları dersinde genel olarak aşağıdaki konulardan bahsediyorum.

Follow me on Twitter