Framework nedir? Ne işe yarar? Neden kullanmalıyım?

By -

Framework mü? Duydum öyle bir şey ama…

Framework, uygulama geliştiricisine, kullanabileceği bazı özellikleri önceden hazırlanmış (ve gerekirse geliştiricinin bunları kalıtabileceği) biçimde sunan güzide kütüphanelere sahip yapılara verdiğimiz bir isim. Özelliklere örnek olarak veritabanı bağlantısı, form kontrolü, hesap kontrolü vb. verebiliriz.

Neden Framework kullanayım?

Örneğin bir websitesi geliştirmek istiyoruz. Proje geliştirirken projede çözülmesi gereken soruna odaklanmak yerine formlardaki verilerin formatlanmasına, güvenli hale getirilmesine veya yazdığımız kodun kullanacağımız temayla iç içe girmemesine odaklanmak bizi hem yoruyor hem de zaman kaybetmemize sebep oluyor. “Tekerleği yeniden keşfetmek” yerine oluşturacağımız ürünün fikrine yoğunlaşmak için Framework kullanmak en mantıklı yol olarak görünüyor.

“Dünyadaki Framework’ler benim aradığım özelliğe sahip değiller”, “sahip olan da kendinin geliştirilmesine izin vermiyor”, “hız olarak projenin tipine göre düzenlenmiş en iyi optimizasyonu istiyorum” diyorsanız Framework kullanmama konusunda serbestsiniz.

Framework örneği olarak neler var?

Website geliştirirken PHP dilini tercih ettiğimizi varsayalım. Piyasada PHP için birçok Framework mevcut. Bunlardan en çok duyduklarım veya kullandıklarım: CodeIgniter, Zend, CakePHP ve Yii

Hangi Framework’ü kullanmalıyım?

Bu sorunun cevabı için öncelikle ne aradığımızı bilmek gerekiyor. (Özellik, hız, içerik, kullanım kolaylığı, kişiselleştirmeye olanak sağlaması, vb.) PHP için kullandığım Framework’lerden biraz bahsedeyim. (Şu an için sadece 2 tane)

CodeIgniter: Eğer Framework kavramıyla yeni tanışıyorsak ve MVC (Model View Controller) nedir bilmiyorsak (Framework nedir bilmiyorsak zaten “büyük ihtimalle” MVC bilmiyoruzdur) başlangıç için CodeIgniter gayet iyi. Küçük ve orta ölçekli projeler için hem hız hem de kullanım kolaylığı bakımından CodeIgniter gerçekten güzel bir seçim. Her ne kadar object oriented tasarıma ters düşen şeyler barındırsa da…

Zend: PHP’nin temsilini göğüsleyen bir şirkete ait olan, üzerinde at koşturabileceğiniz, detayın tillahına ulaşabileceğiniz bir Framework. Öylesine güzel, öylesine detaylı düzenlenebilir, öylesine esneklik sağlayan bir Framework ki öve öve bitiremez insan. Yalnız başlangıç için gerek konfigürasyonu gerekse detayını kavramak biraz zaman alabiliyor. Ayrıca, CodeIgniter’a göre daha hantal. Yine de “istersem MVC bile kullanmayacağım, detayına ineceğim, büyük çaptaki projelerde kullanabileceğim bir Framework arıyorum” diyorsanız ve PHP için hazırlanmış bir Framework üzerinde önceden deneyiminiz varsa doğru adrestesiniz.

Ben emin olamadım şimdi, biraz daha karşılaştırayım şu Framework’leri diyorsanız Google yardımcınız olsun. Yine de ufak tüyolar verelim:
http://blog.codehangover.com/php-framework-comparison/
http://www.yiiframework.com/performance/
http://www.phpframeworks.com/

Siz de geliştirdiğiniz projelerde işin teknik detayına gereksiz miktarda zaman harcadığınızı düşünüyorsanız, konuya odaklanmak yerine sayfalar arası gönderilen değişkenlere odaklanmak zorunda kalmanıza sinir oluyorsanız en kısa zamanda kendinize uygun bir Framework üzerinde çalışmaya başlayın derim. Geriye dönüp baktığınızda “ben bunu neden daha önce öğrenmedim” diyeceksiniz, emin olun.

-->