Wednesday, July 28, 2004

Ben Kodun Güzelini Severim

Yazılımlarım "iç güzellik"lerini içerdikleri kodlar belirler. Kodlar, istenen işi yapıyorlarsa, anlaşılmaz, karmaşık, kırılgan ve hatalı olsalar bile yeterli mi? Kodların bakımı ve gelen isteklere ve doğan ihtiyaçlara göre değiştirilmesi durumunda ne olacak?

Kendi yazdığımız bir kodu bile bir süre sonra anlayamıyorsak ve "Ben ne yapmışım burada ya!" diyorsak, başkalarının anlamasını ve bakımını yapmasını nasıl bekleyebiliriz?

Bence, kodlar geliştiricilerin istedikleri gibi "at oynatarak" yazdıkları bir gün yazanın bile çözemeyeceği parçalar olmamalıdırlar. Yazılımın temeli olan kodu çok iyi ve sağlam yazılması gerekir. Yani "güzel" olması gerekir.

Peki, bir kod nasıl olmalı ki "güzel" diyebilelim. İşte birkaç madde:

1. Okunabilir olmalıdır

  • Fonksiyonlar/metodlar çok uzun olmamali
  • Parametre çok olmamalı. İnsan aklinda ancak 3-7 tane degişken tutabiliyor. Bundan fazla olunca artık bazı noktalari kaçırmaya başlıyoruz.
  • Degişken, parametre, method, fonksiyon, sınıf... vb gibi parçalar verilen isimler, içerik hakkında bilgi vermeli.

2. Değiştirmeye ve geliştirmeye açık olmalıdır.

3. Belli bir kavram ustune odaklanmali yani sadece bir iş yapmalı ve bunu iyi yapmalıdır.

4. Mümkün olduğunca basit olmalıdır.

5. Hata içermemelidir.

6. Test edilebilir olmalıdır.

Kodu "güzel"leştirme teknikleri ve kodu "çirkin"leştiren "kötü kokular" için Refactoring 'e bakılabilir.

http://www.refactoring.com/catalog/

Kitap : http://martinfowler.com/books.html#refactoring