Bunları yapmayana programcı demem…

Özellikle uzmansorusu.com‘daki soruları ve hatta bazı yabancı kaynakları incelediğimde bu devirde bile insanların hala çok kritik ve genel uygulamalardan bihaber olduklarına şaşkınlıkla şahit oluyorum…

Sene olmuş 2011, hala şu aşağıdakileri yapmıyorsanız (en azından) ne kadar iyi programcı olduğunuzu tekrar değerlendirmenizin zamanı gelmiş demektir…

(Web tabanlı yazılım ve PHP ele alınmıştır)

Database Wrapper Kullanmak

Veritabanına doğrudan php fonksiyonları ile değil bir class aracılığı ile ya da PDO ile ulaşmak olarak özetleyebilirim.

En büyük avantajlarından biri sql’lerdeki parametreleri bind ederek SQL injection sorununa pratik bir çözüm üretmek. Bind ederek sql’lerin veritabanı tarafından cache’lenebilmesini de sağlamış olursunuz.

Bunların yanında veritabanı değiştirmek istediğinizde işinizi kolaylaştırır, bazı pratik komutlarla yazma hızınızı arttırır, hata yönetimini kolaylaştırır.

Tavsiyem: Sunucuda Zend Framework kuruluysa Zend_Db, ama projenizle dağıtacaksanız, özellikle de FTP ile dağıtmanız gerkiyorsa asla! Zend Framework çok büyük boyutta ve binlerce dosyada oluşuyor. Sunucuya yüklemek saatlerinizi alabilir.

Template Sistemi Kullanmak

Aslında ideali MVC gibi bir yaklaşımla tüm kodları düzgün bir şekilde organize etmek ama bu olmasa bile en azından bir template sistemi ile basitçe HTML’leri PHP’lerden ayırmak gerek…

HTML’lerin içerisinde sadece if/else yargıları ile döngüler ve helper fonksiyonlarına izin verilir. Geri kalan tüm php kodları ayrı çalışmalı ve sadece HTML’de kullanılacak data template sistemine aktarılmalı…

Tavsiyem: Zend_View ya da smarty.

Bonus: HTML, CSS ve Javascript de birbirinden ayrılırsa dadından yinmez.

SVN, Git ya da Benzeri Bir Versiyonlama Sistemi Kullanmak

Versiyonlama sistemleri başlarda angarya olarak gözükse de alışınca vazgeçemeyeceğiniz bir araç. Windows kullanıcıları için özellikle SVN tavsiye edilir, çünkü TortoiseSVN adında süper pratik ve becerikli bir program mevcut. SVN sunucunuz yoksa ve tek çalışıyorsanız TortoiseSVN ile bir dizine sağ tıklayıp o dizini repository yapabilirsiniz.

SVN ile, geçmişte nereleri değiştirdiğinizin tam bir kaydını tutabilir ve bir sorun olması durumunda istediğiniz zamana geri dönebilirsiniz.

Bonus: Branch kullanarak stabil versiyon ile yeni özellik eklenen versiyonları birbirinden ayırmak. Böylece projenize yeni ve uzun süren bir özellik eklemek için çalışmaya devam ederken, çalışan sitede acil bir değişiklik gerektiğinde çalışan siteyi bozmadan değişikliği yapabilirsiniz.

IDE Kullanmak

Hala ben Notepad++ kullanıyorum yetiyor, Notepad2 ya da Ultraedit kullanıyorum diyenlerle hayretler içerisinde karşılaşıyorum.

Gerçi aynı düşünceyi ben de paylaşmıştım bir süre ama sanırım 1998 – 1999 gibi vazgeçtim bu fikrimden. Hala notepad türevlerini kullanmakta inat ediyorsanız, üzgünüm benden 12 yıl geridesiniz :) (vi kullananları tenzih ederim, bilenin elinde IDE gibidir kendisi).

Evet notepad ile de düzgün kod yazılabilir elbet ama benden söylemesi, mehteran gibi  2 adım ileri 1 adım geri gitmek gibi birşey.

Tavsiyem Netbeans: ücretsiz, java olmasına rağmen epey hızlı, sürekli geliştiriliyor ve tonla özelliğe sahip.

Firebug ve Eklentilerini Kullanmak (Frontend Mühendisleri için)

Firebug Firefox için yazılmış bir eklenti. Javascript ve HTML (DOM) ile ilgili birçok sorunuza cevap verebileceği gibi muhtelif başka amaçlarla da kullanılabiliyor: AJAX çağrılarını izlemek, sayfa yüklenme hızı ile ilgili sorunları tespit etmek, hatta PHP ile ilgili uyarı mesajlarını firebug’a gönderenler bile var.

Geçen yabancı bir şirketin iş başvurusunda, firebug konsolunuzda çıkan adrese CV’nizi gönderin yazıyordu :) Siz düşünün artık firebug’ın önemini…

Bonus: Firebug’a eklenen eklentiler de var. SEO, sayfanın yükleme hızını ölçmek, cookie’leri takip etmek gibi diğer amaçlarınız için

jQuery Bilmek (Frontend Mühendisleri için)

Neden jQuery dedim de mootools, prototype / script.aculo.us, YUI ya da ExtJS demedim? Çünkü jQuery inanılmaz büyük bir kitleyi arkasına almış ve çok kullanışlı bir javascript. Diğerlerinin de elbetteki kendine göre avantajları var ama jQuery’siz olmayacağını düşünüyorum.

Kullanımı ilk başta biraz garip geliyor ancak alıştıktan sonra ne kadar hızla kod üretebildiğinizi görünce diğer javascript framework’lerine gerek olmadığını görebiliyorsunuz. Aslında bunlar beraber de kullanılabiliyor ama zorda kalmadıkça tek framework tercih etmekte yarar var. jQuery’nin plugin’leri sayesinde başka hiçbir framework’e ihtiyacınız kalmıyor.

Bonus: jQuery plugin’lerinden standart bir set oluşturarak web tabanlı projelerinizde hız kazanabilirsiniz. Önerilerim: jQueryUI, autocomplete, beauty tooltips, cookie, validate…

1 Yorum

  1. Tamda bu aralar aklıma takılan bir soru vardı. Zaten bir PHP framework’ü kullanıyorsak (codeigniter gibi) aynı zamanda bir template motoru kullanmamız (smarty gibi) gerekli midir? Zaten veriyi controller’dan gönderiyoruz view’e mvc yapısının gereği. Gereksiz gibi geliyor bana. Yanlış mıyım?

    Reply
  2. Tüm arkadaşlar “vaauv”, “süper” vb. abartılarda bulunmuş. Fakat bu yazıda bu kadar hayrete düşülecek ne var ki? Aksine;

    1. Niçin template motoru kullanayım ki? Smarty’nin kodları yeniden yorumlayarak performansı düşürmesi için mi?
    2. İlla IDE kullanarak mı profesyonel/uzman olunuyor?
    3. Bende jQuery kullanıcısıyım ama diğer kütüphaneleride bu kadar aşağılamamak gerek. Mootools kütüphanesinide iyi derecede kullanan biri bir başka kütüphaneye ihtiyaç duymaz!

    Kısaca, (bence) gereksiz bir entry olmuş. Olmasa da olurdu, hatta olmasaydı keşke!

    @Cemil, kullandığın yöntem daha mantıklı, Smarty tamamen gereksizdir.

    Reply
  3. Sitedeki makalelerinizi sabırla okumaya çalıştım. “Sabırla okumaya çalıştım” diyorum, çünkü her yazınızda bir öncekinden daha agresif ve daha (kusura bakmayın ama söylemek zorundayım) ukala olduğunuzu gördüm. Hal böyle olunca da, her ne kadar değerli ve öğrenilesi bilgiler paylaşmış olsanız bile, yazılarınızdaki bu tavrınız bir daha sitenize uğramamı etkileyecek düzeyde olduğunu farkettim. Bu yoruma, ‘senin ziyaret edip etmemen çok da umrumda’ gibi bir tepki alırsam da hiç şaşırmam.Domain’ i çok güzel seçmişsiniz, size ve ürettiğiniz içeriğe, tabir yerindeyse, cuk oturmuş..

    Reply
  4. PHP Zaten başlı başına bir template dil. Smarty ve/veya Zend kullanılması çok gereksiz. İnsanları yanlış yönlendirmeye gerek yok boşuna hamallık onu öğreneceğinize illede kullanacağım derseniz kendi tema motorunuzu yazın. IDE’nin pek bir artısı görünmüyor. Kodlamaya bilen adam Notepad ile yazıyor. Amatörler için evet haklısın.

    Reply

Leave a Comment.