Büyük bir proje yaptırıldığnda (örn. sosyal ağ, oyun) çeşitli standartlara ve teknik yaklaşımlara dikkat etmek önemlidir. Bunun çeşitli sebepleri vardır birincisi yazdığınız kod ileride çok büyük yerlere gidebilir, şirketleşebilir ve/veya başkaları tarafından geliştirilebilir. 5 sene sonra projeyi geliştirecek kişi kodu kendi yazmış gibi bulmalıdır. Modüler, takım çalışmasına yatkın, katmanlı ve profösyonel olmalıdır. (kod, yazılım, script forumdaki kullanımı sebebiyle aynı paralellikte kullanılacaktır)
Büyük bir sistemi yazdırırken şunları arayınız:
1. Neden ve hangi kapsamda OOP kullanılacağının ispatını ve cevabını isteyin.
Nesne tabanlı programlama konusunda bilgi (Object Oriented): Şu çağda bu şarttır. Düz kodla herşey yapılabilir ama olay kanser hücresine döner, uzun vadede kod okunamaz ve dolanık hale gelir. Ayrıca nesne tabanlı kod yazmak $db diye nesne belirleyip ona SQL göndermek değildir. Bu OOP'u yanlış anlamaktır sadece.
2. Modüler yazılım geliştirme konusunda ispat
Kod modüller tabanında ayrıştırılmış olmalı ve servis bu şekilde dağılmalıdır. Bir pattern bu konuda yardımcı olabilir. Popüler Framework'ler de bu konuda yardımcı olabilir. Daha Fazlası için Kiss bölümünü okuyunuz.
3. Drupal Joomla Smarty XTemplate gibi kullanımların zorunluluk ispatını isteyin
Bazı teknolojilerin nerede kullanılıp nerede kullanılmayacağını iyi bilmek gerekir. Drupal ve Joomla gibi sistemler bazı yerlerde kullanılmamalıdır, amaçları sınırlıdır. Ayrıca bu sistemlerle kodlatılan sistemin ileride sadece bunları bilenlerce devam ettirileceği akıldan çıkarılmamalıdır. Smarty, XTemplate ve benzeri sistemler için de bu geçerlidir, yeri vardır, yeri olmadığı zaman vardır
4. Kodlar (php, asp...) ve arabirim (html, css) birbirinden temiz bir şekilde ayrılmış olmalıdır Bunun ispatını isteyiniz. Uzun vadede içiçe geçmiş kod yığınları değişimleri ve geliştirmeleri can sıkıcı hale getirebilir. Tüm bunlar performans ispatlı şekilde yapılsın.
5. ORM yararlıdır: Kod içinde SQL gözükmemesi iyi birşeydir.
Sözgelimi
mysql_query("select name from users where id=5");demektense: $u = new users(5); $u->getName();demek kodun modüleritesi açısından hayli yararlıdır. İşte buna ORM (object relational mapping) denir.
6. Kendini tekrar etmediğinin ispatını isteyin Yapılabilecek en büyük hatalardan birisi yazılımcının yazdığı şeyi copy-paste'lerle yapmasıdır. Birbirine benzeyen kodlar bir kere (class, fonksiyon, vb düzeyinde) yazılmalı, kullaınldığı her yerden çok kez çağırılmalıdır. Bir değişiklik yapılacağında tek yerden yapılmalıdır. Aynı şey HTML, CSS gibi temellerde de geçerlidir.
7. Kiss (keep it simple stupid) Yapacağı şeyi basit, aptal ama güçlü interface'lerle ifade etsin. Unix standartlarına uyacağının garantisini isteyin.
unix philosophy
8. Düzenli yazılım Tab kullanımından kodun düzenine, standart bir şekilde yazılsın. Görünümü makarna koda dönmesin. Bir sonraki yazılımcı eliyle koymuş gibi bulsun.