Azer Koçulu’nun blogunu incelerken 2008 ylında yazmış olduğu bu yazıya rast geldim. Yazıda İngilizce alıntılanmış olan Eric S. Raymond’ın Unix Philosophy adlı metnini elimden geldiğince Türkçe’ye çevirdim:
- Modülerite Kuralı: Birbirlerine temiz arayüzlerle bağlanan küçük parçalar yazın.
- Anlaşılırlık Kuralı: Anlaşılır olmak akıllı olmaktan daha iyidir.
- Birleşme Kuralı: Programlarınızı, başka programlarla bağlanacak şekilde tasarlayın.
- Ayrılma Kuralı: Kuralları mekanizmadan ayırın; arayüzlerinizi(interface) sınıflarınızdan(class) ayırın.
- Basitlik Kuralı: Basitliği hedefleyin. Sadece gereken yerlerde karmaşıklığa başvurun.
- Cimrilik Kuralı: Sadece başka çözüm olmadığından emin olduğunuzda büyük programlar yazın.
- Transparanlık Kuralı: İncelemeyi ve debug etmeyi kolaylaştıracak şekilde tasarım yapın.
- Sağlamlık Kuralı: Sağlamlık, transparanlık ve basitliğin çocuğudur.
- Temsil Kuralı: Bilgileri verilere indirgeyin. Böylece program mantığı basit ve sağlam olabilir.
- Sürpriz Yapmama Kuralı: Arayüzünüzü tasarlarken en tahmin edilebilir şekilde tasarlayın.
- Sessizlik Kuralı: Programın söyleyecek önemli bir şeyi yoksa, hiç bir şey söylememeli.
- Tamir Kuralı: Hata yapacaksanız, elinizden geldiğince çabuk ve gürültülü yapın.
- Ekonomi Kuralı: Programcı zamanı pahalıdır. Makine zamanına karşı programcı zamanını korumayı tercih edin.
- Optimizasyon Kuralı: Cilalamadan önce prototip yapın. Optimize etmeden önce çalışır hale getirin.
- Çeşitlilik Kuralı: “Tek doğru yol” olduğuna dair fikirlere güvenmeyin.
- Genişletilebilirlik Kuralı: Geleceği düşünerek tasarlayın. Çünkü gelecek, düşündüğünüzden daha yakın.