Hangi PHP Framework’ü Daha İyi?

Var olan tonla php framework’lerinden birini seçerken birçok faktörü göz önünde bulundurmak gerek:

  • Performans ve scalability
  • Komunite desteği (Yazılımcı ararken ya da takıldığınız noktayı sorarken lazım olacak)
  • Geliştiren ekibin güvenilirliği (Kullandığınız framework’ün gelişmesinin durması kabus olacaktır)
  • Kolay öğrenilebilirlik
  • Kolay geliştirilebilirlik
  • Yeterlilik / Esneklik
  • Sunduğu özellikler
  • Desteklediği PHP versiyonları

Continue reading

Zaman Framework Zamanı

Ruby on Rails’i ilk gördüğümde çok etkilenmiştim ancak Ruby’nin hantallığı ve yıllardır süregelen PHP alışkanlıklarım Rails’i boş zamanlarımda minik uygulamalar yaptığım ve tasarlayanların bulduğu kolaylıkları öğrenme amaçlı kullandığım bir araç mertebesinde bıraktı.

Daha sonra Zend Framework çıktı (Symfony ve Cakephp de var framework olarak ama onları seçmeme nedenim ayrı) ama açıkçası ZF benim için hep “hiç yoktan iyidir” framework’ü oldu zira şu haliyle ZF’yi anlamak için bol bol araştırma yapmak ve debugger’ınızı açıp adım adım nasıl çalıştığını görmeniz gerekiyor.

21 Aralık’ta ZF ekibinin duyurduğuna göre ZF v1.5’te bence en büyük eksiklik olan “programcıyı yönlendirme” işine eğilmiş gözüküyorlar. Zend Framework’ün diğer framework’lerden farkı programcıyı kendi altyapısına uymaya zorlamaması. Kütüphaneleri veriyor ve programcıyı istediği yapıda kullanmakta özgür bırakıyor ancak MVC Model 2’nin karmaşıklığı, framework’teki kütüphanelerin çokluğu öğrenme zorluğu yaratıyor. Özellikle projenin organizasyonu hakkında (modeller nerede duracak, kontroller yapısı nasıl olacak vs.) Öğrenip kullanmaya başladığınızda ise birçok şeyi kopyala – yapıştır yaptığınızı fark ediyorsunuz.

ZF v1.5’te opsiyonel olarak proje yapısını otomatik sunma betiklerle işlemleri kolaylaştırma üzerine yoğunlaşmışlar gibi gözüküyor. Rails’i inceleyenler bu tür betiklerin getirdiği kolaylıkların farkındadır zaten, ZF’de de artık bu kolaylıkları görebileceğiz gibi duruyor.

Benim öngörüm ileride framework’lerin etkisiyle web tabanlı yazılımların üretilme zamanları oldukça kısalacak. Rails, ZF, Django, CakePHP, Symfony derken bunların IDE’lere entegrasyonu önplana çıkacak. Biz web2.0 geliştiricileri performans, güvenlik ve stabilite kaygılarıyla kendi yapılarımıza bağlı kalacağız belki, ancak web tabanlı servis veren diğer yazılımlar için bu altyapılar geliştirme sürelerinin azalmasına ve dolayısıyla maliyetlerin düşmesine destek olacak…

Diğer taraftan Javascript framework’leri de büyük bir hızla gelişiyor. Katmanlı yapı sayesinde birçok geliştirici artık projelerini en az 5-6 katmanda düzenliyor: CSS, Javascript, (X)HTML 3 ayrı katmanda semantik webi de destekleyerek önyüz mühendisliği adı altında gelişirken arkada template sistemi ile önyüze bağlanan page/interaction logic, application logic, data store gibi katmanlar birbirinden ayrı ve düzenli bir yapıya giriyor.

Javascript framework’leri RUI (Rich User Interface) oluşturulmasını hızlandırıyor, hatta biraz iddialı olacak belki ama birçok kişi için mümkün kılıyor. Javascript IDE’leri bile yavaş yavaş ortaya çıkmaya başladı: Bkz. Aptana

Sektör artık framework’lere doğru yönlenmiş vaziyette. Kullanmayacaksak bile altlarındaki çözümleri iyi öğrenmemiz gerek…

Frameworkler, Hibrid Tasarımcı, Web2.0

Nokta’ya geldiğim günden beri savunduğum bir yaklaşım vardı… Yeni gelişen web’de, buna web2.0 diyoruz aslında, teknik anlamdaki başarıyı getiren iki önemli, farklı faktör var:

1. Sürekli değişim
2. Hibrid tasarımcı kavramı

Sürekli Değişim

Eskiden sağlam bir planlama, tüm fonksiyonlara karar verip analiz etme ve ürünü çıkarma şeklinde işliyordu projeler.

Sonraki versiyon uzun bir süre sonra, yine benzer aşamalardan geçtikten sonra çıkıyordu. Çıkana kadar kimsenin bilmediği, gizli kapaklı hummalı çalışmalar sürüyordu.

Yeni yaklaşımda ise planlama yapılırken detaylara gömülmek yerine:

– ilk versiyonu çıkar
– kullanımı analiz et, ihtiyaçları belirle
– yeni versiyonu çıkar
– kullanımı analiz et, ihtiyaçları belirle
– yeni versiyonu çıkar

şeklinde ilerliyor herşey. O kadar çok versiyon çıkıyor ki, versiyon diye bir kavramı kullanmıyor bile bir çok proje… Versiyonlamamayı “sürekli beta” olarak adlandıranlar bir ara çok modaydı.

Bu, tasarımın defalarca değişmesi demek… Veritabanına eklenen/çıkan yeni alanlar, yazılımın arada bir tepetaklak olması demek.

Buna tasarımcıların ve yazılımcıların kendini hazırlaması ve sürecin doğal bir parçası olarak kabullenmeleri gerek.

Bu “yap-boz”ların hızla gerçekleştirebilmesi açısından framework’ler çok büyük şeyler kattı dünyadaki büyük projelere.
Ya da belki de tam tersi, büyük projeler framework’lere ilham kaynağı oldu. Framework kullanmayan büyük projeler de framework’lerin getirdiği avantajları sağlayan altyapılarını kurarak ilerlediler. Kendilerine özgü frameworkler kurdular diyebiliriz belki de…

Kibrit Tasarımcı!

Ne demek hibrid?? Ah be TDK yetişemiyorsun ne yazık ki gelişen teknolojiye…

“Wepçi” arkadaşlara dedim ki,

….. web tasarımcısı diyelim de ayıp olmasın

Web tasarımcısı arkadaşlara dedim ki, unutun o firmalara sayfa hazırlarken “ben fotoşop’ta yaparım, htmlci sayfa haline getirsin çünkü ben programcı değil sanatçıyım” laflarını…

Artık öyle bir şey kalmadı üzgünüm. CSS’i sevgilisinin yuvarlak hatları kadar bilmeyen web tasarımcısı 5-10 sayfalık kurumsal site tasarlamaktan öteye geçemez. Ajax’ı nerede kullanmaması gerektiğini bilmeyen, actionscript’in kabiliyetlerinden bihaber olan tasarımcı anca “bizim yeğen de yapıyor web sitesi” cümlesinin öznesi olabilir…

Sevgi Kelebeği - bengidiyorum.blogspot.com
sevgi kelebeği

Web tasarımcısı, grafik tasarımcısından farklı olarak, internet gurusu olmalı. Programlamaya, daha doğrusu analitik düşünceye çok ters olmaması lazım. Uçuk kaçık hayal dünyasında yaşayan, sanat kim içindir geyiklerine giren entellektüel sevgi kelebekleri yerine, estetik duygusu güçlü olan ve tasarım ilkelerini bilen, CSS’te organizasyon yapabilen, javascript’te 3-5 satır if-else cümleleri kurabilen programcı-tasarımcı arası ortaya karışık web tasarımcıları hayatta kalacak web2.0’da, web3.0’da ve hatta ‘web9.0.1rc1 build 3425’te…

Bu ortaya karışık yanar dönerli şeye hibrid tasarımcı diyoruz.

Sonuç

Yazılar giriş-gelişme-sonuç şeklinde olmalıdır. Buyrun size sonuç (lisedeyken de nefret ederdim edebiyat derslerinden, öys’de türkçeden top çekmiştim o ayrı…)

Arda Kutsal şu yazısında Türkiye’deki geliştiriciler olarak global ürün çıkarmamız gerektiğinden bahsetmiş.
Altına 3 sayfa huysuzluk yaptım, muhtemelen gıcık oldu Arda bana :)

Global ya da lokal, dünyadaki projelerle yarışacak boyutta proje çıkarmak istiyorsak üşenmeyeceğiz….

Framework’lere geçmek için üşenmeyeceğiz,
2 günde bir tasarım mı değişir canım demeyeceğiz,
Ben sanatçıyım kardeşim kodlama benim sanatımı öldürür diye kendimizi kısıtlamayacağız,
script.aculo.us neymiş ben de yazarım ne var ki’lerle vakit kaybetmeyeceğiz.

Bu iş teknik bir iş… Hem de çok teknik bir iş. “Fikrimgeldi”den öteye geçebilenler Türkiye’nin internetini ayağa kaldıracak olanlardır.

Benden söylemesi
(evet, hem huysuz hem de ukelayım!)