Hocam çok bilgili değilim bu konuda ama sanırım önemli olan hedefleri belirlemek. Kendi projelerinde kullanacaksan CodeIgniter ile başlamak daha mantıklı sanırım. Kaynak oldukça çoğaldı. Ama günümüzdeki iş ilanlarına bakacak olursan PHP developer metninin hemen yanına iliştiriyorlar (Zend Framework ile çalışabilmesi tercih sebebidir) diye.
- Lütfi
bunların arasında performans farkı belirleyici olabiliyor sanırım, başka neye göre seçebiliriz bir framework'ü
- Kürşat
Codeigniter hem öğrenmesi çok kolay hem de dokümantasyonu çok iyi. Ayrıca çok fazla kod örneği ve eklenti de mevcut. Paylaşımcı ve kaliteli bir topluluğu da var. Çok büyük bir portalı CI ile kodladım ve hiçbir sıkıntı yaşamadım. Zend Framework, zaten adında da belli, Zend'in müthiş desteğini arkasına almış ama öğrenmesi CI'e göre biraz daha zor (bence). Ayrıca CI'e göre bazı performans sıkıntıları olabilir (elbette bilenler mutlaka bu sıkıntıları da aşacaklardır). Bence ZF, en kaliteli ve ayrıntılı dokümantasyona sahip framework. Tabi saf PHP5 desteği de ZF'ü oldukça popüler yapıyor. CakePHP ve Symphony ile ilgili olarak da, ilgilenenler arkadaşlar bir şeyler yazacaklardır.
- Demods
@Demods zend fw ile CI fw arasında kalsaydın hangisini seçerdin onu merak ettim?
- Kürşat
@Kürşat Kendimi CI ile daha rahat hissediyorum ve daha rahat kod yazıyorum. Belki de yaptığım projelerin neredeyse hepsinde CI kullanmamdan kaynaklanıyor. Ama ZF'nin inanılmaz güzel yönlerini de atlamamak lazım. Soruna muhtemelen CI cevabını vereceğim ama ZF de her zaman ilgileneceğim, üzerinde çalışmaya devam edeceğim bir framework olacak. Keşke çok daha fazla zaman ve imkan olsa da diğerlerini de en azından birer projede deneyebilsek.
- Demods
Kürşat, Eğer bir fw ile işe başlamak istiyorsan CI ile başlayabilirsin. Zend'e göre daha kolaydır. Performans olarak Zend'te bir sıkıntı yaşamazsın. Özellikle büyük ölçekli projelerde ZF'yi tercih etmeni öneririm. Dökümantasyonu Türkçe değil ama çok geniş, Türkçe destek zor bulursun ama öğrenirsen oldukça sağlam olduğunu göreceksin. Ben 1.5 senedir ZF ile çalışıyorum. Ayrıca malesef Türkiye'de ZF'yi gerçekten bilen oldukça az. Türkçe dökümantasyonun az olmasının sebebide bu aslında.
- Can Erdoğan
@can hatta Türkiye'de framework ile çalışan bile çok az. Yoksa hem Türkçe dökümantasyonda bu kadar sıkıntı çekmezdik hem belki kırık dökük de olsa frameworkümüz bile olabilirdi. Ama http://www.codeigniter.gen.tr/ sitesi iyi bir kaynak oluşturmuş gibi. Yavaş yavaş değişiyoruz belki de :P
- Kürşat
Bu "Türkçe kaynak" olayına çok fazla takılmamak lazım bence. Ayrıca bir web geliştiricisi de mutlaka çok iyi derecede İngilizce bilmeli. Bizdeki sorunun diğer diller için de geçerli olduğunu tahmin ediyorum. Sanırım Almanca, İtalyanca, Fransızca vs için de (elbette bizdekinden fazladır ama yine de) yeterli kaynak yoktur. Bilişim dili İngilizceyse, sektörde çalışacak kişilerin de mutlaka çok iyi derecede İngilizce bilmesi gerekiyor. Gerçi bizde daha yazı dilinde bile Türkçe'yi doğru düzgün kullanamayan o kadar fazla insan var ki. Neyse konuyu bulandırmayayım :)
- Demods
@Demods : İngilizce konusunda kesinlikle haklısın. Biz yazılımcılara gerekli olan okuma - yazma ingilizcesi. Peki okuma/yazma seviyemizi nasıl geliştirebiliriz? Bir kursa gitmeden bilgisayar başında sıfırdan hangi kaynaklardan öğrenilebilir? (Konu dışı olabilir biraz ama yeri geldiği için soruyorum)
- Onur Kayacan
@Onur Konuyu çok fazla dağıtmadan hemen cevap vereyim. Ben sadece adventure oynayarak ve günde en az 2-3 saat BBC/CNN seyrederek (biliyorum iğrenç ama çok işe yaradı) öğrendim. Ayrıca sürekli İngilizce kitap okumak lazım. Okuma/yazma İngilizcesi ile zaman kaybedeceğinize, 6 ayda temel konuşma seviyesine gelmek hiç de zor değil bence. Tabi bol çalışma ve sabırla. İlk başlarda inanın çok sıkıcı geliyor, ama öğrendikten sonra çok faydasını görüyorsunuz.
- Demods
Benim ingilizce dökümantasyon aramam kişisel biraz da. frameworkun işini nasıl yaptığını anlayabilmek için sormuştum. Yani metodların nasıl çalıştığını, kod yapısını falan da incelemek isterim.Tabi ki yazılımcı için ingilizcenin bir literatürü takip edebilcek seviyede, hatta anadili seviyesinde olması lazım. Bu arada fw'lerdeki fonksiyonlar, metotlar rahatlıkla değiştirilebilmeli değil mi? CI sitesinde yeni versiyonda alışveriş fonksiyonlarının da eklendiği yazıyor. Projemde alışveriş kullanmayacaksam bu kodlar gereksiz :S Aslında o fw'deki kodların ne haltlar yaptığını bileceksin de kendi fw'ni projene göre kendin kodlayacaksın :/
- Kürşat
@Kürşat : Kullanmadığın kütüphaneler projeye dahil olmuyor olmuyor zaten. Sen ihtiyacın olan sınıfları $this->load->library('Kütüphane Adı'); şeklinde çağırabiliyorsun. Veya tüm sayfalarda kullanman gereken bir kütüphane ise autoload ile otomatik olarak projeye dahil edilmesini sağlayabiliyorsun.
- İbrahim Hızlıoğlu
Şöyleki Kürşat Fw dediğin aslında kütüphanedir. Yani senin odandaki kitaplıkta roman, kişisel gelişim, bilgisayar vs. gibi kitaplar olabilir. Sen buradan ihtiyacın olanı alır ve okursun(kullanırsın) değil mi? Bu Fw'ler de aynı işlevi görüyorlar. Yani aslında Fw içerisinde ne kadar farklı konuya ait kod varsa senin işini o kadar kolaylaştıracak demektir de dersem sanırım yanlış olmaz.
- Can Erdoğan
@İbrahim Yanlış referans alınmaması için ufak bir düzeltme ya da bilgilendirme yapayım; CI için $this->load->library('class name'); şeklinde olması gerekiyor - http://codeigniter.com/user_gu...
- Demods
Tabi tüm Fwlerin yetersiz kaldığı yerler vardır. Bu durumlar içinde pluginler var eğer önceden yazılmış işini gören yoksa kendi pluginlerinide yazabilirsin. Belli kurallara uyman yeterli her şey elinin altında (Zend için söylüyorum.)
- Can Erdoğan
@Demods : Haklısın yanlış yazmışım düzelttim. :)
- İbrahim Hızlıoğlu
büyük projede bi fw kullanılmalı tabi, sonuçta büyük projenin bir kod yapısı olur, bir yazılım deseni söz konusu olur. Ama gerçekten çok büyük projelerde ekibin kendi fw sini mi kurması sağlıklıdır, yoksa hazır kullanması mı? Bütün yazılımlar tek tip olamayacağından yazılımın amacına göre bir fw'yi -eğer piyasadakinden daha iyisi mümkünse- ekibin geliştirmesi daha sağlıklıdır sanırım. Mesela facebook piyasadan bir tane kullanıyor mudur?
- Kürşat
@Kürşat Doğrudur ama şöyle de düşünülebilir; zaten proje ekibinin aynı dili konuşan insanlardan oluşması lazım. Yani bir proje yapacaksanız ve projenin teknik sorumlusu (atıyorum) "proje CI ile yazılacak" dediyse, bu durumda projeye CI bilen adamların alınması en mantıklısı olacaktır. Elbette kendi framework'unu yazmak güzeldir ama bunun temelinin oluşturulması, test edilmesi, açıklarının giderilip sürekli geliştirilmesi vs gibi bir sürü konu var. Ayrıca projeye sonradan dahil olacak kişiler de, sadece sizin geliştirdiğiniz ve muhtemelen hayatlarının ileriki safhalarında hiçbir işlerine yaramayacak bir framework'ü öğrenmek durumunda kalacaklar. Ben bir projenin teknik sorumlusu olsaydım; piyasada hazır framework'lerden işime en çok yarayanı seçer ve ekibimi de ona göre oluştururdum. Facebook ayrı bir konu; kendi sunucusunu ve veritabanını yazmış bir markadan söz ediyoruz :)
- Demods
Demods'a katılıyorum yazdıklarında haklı. Aslına bakarsan her php ye girişen kendi fwsini yazar ilk başta. örneğin en basitinden mysql'e bağlanmak için bir dosya include edersiniz gibi. Ama yüzlerce iş yapan kodlar arasından her birini test edip açıkları kontrol etmeniz çok zor. Zor ama kimse diyemez ki kendi Fw'ni yazma :) eğer istiyorsan yaz ve kullan tabi ki kim bilir bir gün burada senin yazdığını öneriyor olabiliriz :)
- Can Erdoğan
@can ya tabi ki zor, ama zorluğu geçtik şimdi, hayal kuruyoruz şu an :) Arı gibi bir ekibin var, projede ses getirecek potansiyel gösteriyor :) O zaman işinin büyüklüğüne göre ekip yazar belirli kontrolleri. Ama @demods çok iyi dedi; projede çalışacak herkesin ortak dili olması lazım. O yüzden piyasadan belirlenilip kullanılacak en başta. Sonra işinin büyüklüğüne göre değişebilir sanırım. Zaten tek başıma yazsam kendi kullanabileceğim ayarda bişiler yaparım ancak, CI da Zend FW de falan ne ekipler vardır :/ ne heycanlıdır orlar :/
- Kürşat
@Kürşat CI'da da ZF'de de öyle tahmin ettiğiniz gibi büyük ekipler yok. Mesela CI, temelini sadece 3-4 kişinin geliştirdiği bir framework (http://ellislab.com/company...). Ancak açık kaynak kodlu olması sebebiyle bir çok insanın katkıda bulunduğu bir framework. Tam da bu noktada, zaten söylemek istediğim şeyi daha da iyi ifade edebileceğim sanırım. Olay sizin geliştirmeniz değil; dışarıdan size ne kadar katkıda bulunulduğu. Bir de tabi bolca zaman ve işe kendini adamak. Yoksa elbette ki, neden siz de bir framework geliştirmeyesiniz? Ancak soru "bir framework'u nasıl geliştiririz" olmadığı için var olan üzerinden gitmenin daha mantıklı olduğunu belirttim.
- Demods