PHP ve JS Frameworklere genel bakış

PHP ve JS Frameworklere genel bakış

İçindekiler

  1. Giriş
  2. Framework kavramı
  3. PHP frameworkler
  4. JS frameworkler
  5. Peki hangisini seçeceğim ?
  6. Hızlı bir başlangıç ve sonuç için benim önerilerim
  7. Sonuç

Giriş

“Hibrit geliştiricler olduk!” Evet bu terimi geçenlerde bir yazıda okumuştum ve hemen hayatıma dahil ettim. Ne anlama geliyor diyeceksiniz. Bizler artık web'in ne kadar hızla geliştiğini ve bunu yakından takip etmemizin ne kadar önemli olduğunun farkındayız. Peki bu takip yarışını başarabilmek için sadece bir alanda uzmanlaşmak yeterli midir. Elbette uzmanlaşmak çok önemlidir ama bir alan beraberinde bir çok yan dal ile birlikte gelmektedir. Örneğin biz kendimize web geliştiricisi diyoruz ama çoğumuz sadece kodlama yapmıyoruz. Bu süreçlerin içerisinde analizden tutun da veri tabanı tasarımına, arayüz tasarımı, görsel tasarımlar, grafik tasarım v.b. bir çok alana zaman zaman dallanmak zorunda kaldığımız olmuştur. İşte bunca çok alanla bir şekilde -zaruriyetten- uğraşan ve bu konular hakkında bilgisi olan bizlere hibrit geliştiriciler deniyor. Bunu örneklemek gerekirse; hem benzinle hem de güneş enerjisi ile çalışabilen araçlar sanırım çok net açıklayacaktır.

Bunca çok alanla uğraşmamız gerektiğinden üretim süreçlerimizi hızlandırmamızı artık kaçınılmaz olmuştur. İşlerimizde vakitin nakit oldugunu düşünürsek hangi alanda ne üretiyor olursak olalım mutlaka frameworkleri (uygulama çatılarını) kullanmamız gerekmektedir. Frameworkler hayatımızı kolaylaştırmak, zamandan kazandırmak, bilgi ve deneyimlerimizi arttırmak, hızlı üretmemiz için yanıbaşımızdalardır. Onları kullanın!

Framework kavramı

Framework – uygulama çatısı, belli amaç için bir araya getirilmiş, belirli bir işi yapmak üzere oluşturulmuş mimari bir yapıdır. Bu mimari yapı geliştirilen uygulamanın içeriğine göre bünyesinde bir çok araç barındırabilir. Frameworkler genellikle açık kaynak kodlu olur. Güzel ve anlaşılır bir dil ile dokümante edilir ki geliştiriciler kolayca adapte olabilsin. Bu gün uygulama çatılarının, yazılım geliştirme, web uygulamaları geliştirme, tasarım ve modelleme gibi bir çok farklı alanda kullanıldığını görüyoruz.

Uygulama çatıları geliştiricileri belirli bir standartta kodlama yapmaya teşvik eder. Yaptığımız bir çok rutin işi bir araya getirilmiş kütüphane ve araçlarla tekrar tekrar yazmadan sadece kullanma yöntemi ile hızlı bir şekilde çözmemizi sağlar. Böylelikle kod tekrarları yapmaktan kurtulmuş oluruz. Örneğin bir çok uygulama çatısı, veri tabanı sınıfları, şablon özellikleri, oturum yönetimi, modüler yapılar, kod üreticiler gibi faydalı araçları bünyesinde barındırmaktadır.

Özetle framework'ler projelerimize odaklanmamızı sağlayarak mimari kurma ve rutin süreçleri çözmekle boğuşmak yerine hızlı bir şekilde üretim yapmamızı sağlayan ortamlardır. Ayrıca frameworklerin bir başka güzel yanı da geliştirici topluklarına dahil olarak o kişilerin bilgi ve deneyimlerinden yararlanmamızı sağlarken, bir çok alanda kendimizi ister istemez geliştirmemizi sağlamaktadır. Örneğin ben MVC yapısını ilk kullandığım CodeIgniter Framework sayesinde öğrenmiştim.

Neden frameworkleri kullanmalıyız ?

Frameworklerde bazı ön plana çıkan terimler

MVC (Model-View-Controller)

Gördüğünüz gibi bir framework ile çalışmaya başladığınızda bir çok yeni terim ve metodolojiyi de beraberinde getiriyor. Tüm bunlarla uğraşmak mesleki gelişimimizde çok önemli rol oynamaktadır.

PHP Frameworkler

Bu gün PHP'nin dünyadaki en popüler dillerden birisi olmasındaki etken şüphesiz ki her geçen gün yeni PHP Framework'lerin ortaya çıkması ve bunların birbirleriyle çok sıkı bir rekabet halinde olmasıdır. PHP her ne kadar başlı başına çok güçlü olsa da frameworkle sayesinde inanılmaz derecede yaygınlaşmış ve bu sayede gelştirici sayısı artarak gücüne güç katmıştır.

PHP Frameworkleri internette araştırmaya başladığınızda hemen gözünüze çarpacak olanlar Zend Framework, CakePHP, CodeIgniter, Symfony... gibi isimlerle karşılaşacaksınız. Bu liste okadar uzar gider ki bir süre sonra hepsi birbirine benzemeye başlar. Ama benim burada isimlerini verdiklerim bilinen en popülerleridir. Her birisinin birbirlerine göre avantaj ve dezavantajları vardır. Ama kendiniz detaylı araştırmak istersiniz diye ben yinede aşağıda kükük bir liste hazırladım.

Kısa bir araştırma sonucu bulunabilecek bazı PHP Frameworkler

Detaylı incelemek isterseniz, PHP Frameworklerin karşılaştırma tablosunu içeren bir wikipedia sayfası da var.

JS Frameworkler

Javascript tarayıcı savaşlarından en çok etkilenen dillerden birisidir her halde. Javascript'in client-side (kullanıcı taraflı) bir teknoloji olması ve nihai çalışma ortamlarının web tarayıcıları olması bu savaşların ne denli danışıklı dövüşüklü olduğunu ortaya koymaktadır. Tarayıcılar ben HTML'yi daha hızlı yorumlarım, benim CSS'leri daha hızlı seçerim, yok efendim ben DOM'u daha efektif yönetirim, hayır en hızlı JavaScript yorumlayıcısı bendedir diye dursunlar bu savaşlardan en karlı çıkanlar süphesiz biz web geliştiriciler olmaktadır. Neden mi ? Elbette ki bu rekabet bir çok JavaScript Framework'un ortaya çıkmasına sebep olmuştur.

Frameworkler her alanda kullanılırken javascript geliştiricilerin bundan geri kalacak yanları elbette yoktu. Webin etkileşimli yanını temsil eden javascript bugun o kadar yaygınlaşmıştır ki, eminim web uygulamalarında hemen hemen hepimiz bir kere bile olsa bir işlem sonrası ekrana basit bir "Alert" çıkaran javascript kodu yazmışızdır.

Kısa bir araştırma sonucu bulunabilecek bazı JS Frameworkler

Detaylı incelemek isterseniz, JS Frameworklerin karşılaştırma tablosunu içeren bir wikipedia sayfası da var.

Peki hangisini seçeceğim ?

Evet, uygulama çatıları hakkında genel bir bilgi sahibi olduk. Peki bunca framework ve araç içerisinden hangisi size uygundur ? Karar verirken nelere dikkat etmeniz gerekir ? Bu aşamada kendi bilgi birikiminize ve deneyiminize göre karar vermek en doğrusudur. Bir de bizim gibi bu süreçlerden geçmiş kişilerin fikrini almak da size boşuna zaman kaybettirmez, hedef odaklı bir seçim yapabilirsiniz.

Framework seçiminde dikkat edilmesi gereken bazı önemli noktalar;

Ayrıca unutmayın, takım tutar gibi programlama dili veya uygulama çatısı tutmamak gerekir. Kullanacağınız her uygulama çatısı size yeni deneyimler kazandıracaktır. O bakımdan denemekten korkmayın!

Hızlı bir başlangıç ve sonuç için önerilerim

Sonuç

Frameworklerin faydaları ve bizlere ne gibi katkılar sağlayacağı ortada. Elinizin altında internet gibi bir deniz var. Hepmiz bir noktada birşeyler üretiyor ve işimizi yapıyoruz. Artık web uygulamalarında günümüzde "less code - daha az kod" kavramının daha önemli bir hal almaya başladığını düşünürsek, kendimizi tekrarlamaktan kaçınmak, hızlı bir üretim yaparak çabuk sonuç üretmek için uygulama çatılarını hayatınızın bir parçası haline getirmeniz yararınıza olacaktır.

Unutmayın az kod yazmak, bildiklerimizi unutmaya yol açmaz, aksine size araştırma yapmak ve kendinizi geliştirmek için daha fazla zaman bırakır.

Hazırlayan
Tayfun Öziş ERİKAN