Bazen okuyucularımı, sonrasında vereceğim örneklere hazırlamak için zemin hazırlayıcı yazılar yazarım. Bunlar genellikle sade ve başlangıç seviyesindeki yazılar olur. İleride değinmeyi düşündüğüm konu ise programcılar arasında hızla yayılan ve projelerin daha güvenli, daha hızlı şekilde tamamlanmasını sağlayan, MVC (Model View Controller) olarak nitelendirilen programlama tekniği. MVC‘yi özetle tarif etmek gerekirse projenizdeki veri işleme, bu verileri kontrol etme ve ekranda görüntüleme amacıyla oluşturulmuş bir düzendir. Beraberinde anaçatı (framework) mantığını da getirmektedir. Anaçatılar sayesinde de birçok hazır fonksiyon ve sınıf (veritabanı, dosya yükleme (upload), oturum yönetimi, çerez vb.) en basit şekliyle kullanımınıza sunulur.
Anket
İleride anlatacağım konularda ve paylaşacağım örneklerde CodeIgniter anaçatısı ile MVC mantığını kullanmayı planlıyorum. Planlarımı gerçekleştirmeden önce de sizin düşüncelerinizi, eğiliminizi merak ediyorum. Aşağıdaki anketi cevaplar ve düşüncelerinizle pekiştirirseniz çok sevinirim.
[polldaddy poll=2006109]
Ben bu konulardan pek anlamama rağmen sizin gibi ustaların anlattığı zaman anlayacağıma emin olduğum kesindir.
ben ne düşünüyorum? aslında düşünemiyorum. Nerde kullanlır kim kullanır? artısı eksisi ne? destekçileri çokmu? falan filan..
bunları bilmiyorum. sadece sizi takip ettiğim için bişey yazmak istedim.
ben volkan görgülüden gördüğüm bir google olayı vardı. bu google aracı arattığımız bir veya 2 tane nesnenin popülerliğini hangi şehirlerden aratılmış? ve arama sonuçlarını grafik ve yıl bazında gösteren bişeydi. volkan hocam anlatmıştı. (volkan görgülü) oradan bakabilirsiniz. bu sistem tutuluyormu? insanlar bunları arıyor mu? diye..
yani kısacası ben konuyla alakalı değilim sadece bu google aracını haber verdim size. oradan hangisinin popüler olduğunu hangisinin daha çok kullanıcı ile önde gittiğini yaklaşık olarak bulabilirsiniz.Bunun sonucundada o yöne doğru çalışırsınız.
eğilimim sıfır ama takip güzel. :-)
Yakuter: Merakla bekliyorum…
Bence MVC çoklu projelerde gerekli bir durum. Yani bir şirket/grup çalışması olduğunda karışıklığı önlemek için ideal çözüm. Fakat tek takılan bir geliştirici neden MVC kullansın ki? Zaten çoğu kendi sınıflarını kullanıyor. Şu sıralar süper sınıf diye yeni bir model çıktı. Herkes sınıflarını tek sınıfa çevirip gerektiğinde çağırıyor. Ama dediğim gibi birden fazla kişi olmadığında bence gereksiz..
Php bir dil, MVC kendine has bir dil gibi. Bir de onu öğrenmek gerekiyor haliyle..
Ben de ne yazık ki ilgileniyorum ama yüzeysel olarak bilgiliyim. Malum sürekli yeni teknikler ve yeni frameworks (ana çatılar) çıkıyor, takip etmek çok zor. Özellikle Türkiye’de makale sıkıntısının yaşandığını düşünürsek en geç biz yararlanıyoruz diyebilirim. Bu nedenle derinlemesine makaleler yazılırsa herkesin işine yarayacaktır. Merakla ve sabırsızlıkla makalelerini bekliyorum, iyi çalışmalar.
Kendi freworkum var mvc ve oop tabanlı , CI baktıgımda yazdıgım freworkun catisini nasil yazabilirim diye baya dusundugumden gecmek nasip olmadi …
Temelinde URL routing olması yani SEO için yararlı bir alt yapı olması çok güzel bir artı.
Web Form ile site yapmaya yıllarca alışmış birinin de mutlaka göz atmasını ve bir kaç proje ile öğrenme anlamında alıştırma yapmasını öneririm.
En önemlisi insanı OOP mantığı ile iç içe olmasından dolayı ilkel programlama yapmaktan uzaklaştırıyor .
meraba,
MVC artık yazılım geliştirmenin olmazsa olmazlarından olmak üzere. çok yaygınlaştı, PHP gibi aslında temelde nesneye yönelik programlaya göbek bağıyla bağlı olmayan bir dilde bile mevcut birçok framework MVC’yi yapılarına dahil ediyor. tabii burda şunu söylemek lazım, ilgilendiğiniz proje ufak çaplı ise MVC’yi kullanmayı düşünmeyebilirsiniz. ama yine de MVC daha iyi bir yazılım için size artı sağlıyor, yani ufak çaplı bir proje bile olsa :)
biz şirkette üzerinde çalıştığımız projede zend framework kullanıyoruz. birçok faydasını gördüğümüzü söyleyebilirim. tabii framework’leri öğrenmek de biraz vaktinizi alıyor. code igniter php tarafında adı anılan, tercih edilen framework’lerden bir tanesi. zend framework, symfony ve cakephp de diğer önemli framework’ler. özellikle symfony ruby on rails’in yazılım dünyasına kazandırdığı proje yönetim sistemini model alıyor. ve hızlı geliştirme(rapid development) kavramını odağına alıyor.
sizin blogunuzu önceden görmüştüm, fakat yeni rss’ten takip etmeye başladım. bu yazınızı da görünce bildiklerimi paylaşmak istedim :)
@azer, teşekkür ederim değerli paylaşımın için. Aslında bu işin babasının ürününü kullanmak lazım (yani Zend’i) ama onu çok ağır bulanlar var. Bu nedenle CodeIgniter üzerinden anlatmaya çalışacağım. Zaten mantığını anladıktan sonra gerisi gelir bir şekilde.
Selamlar….
MVC yapısı aslında bir çok kişinin yanlış anladığı framework yapısı değildir.Sadece Frameworkler MVC yapısını kullanırlar.Demek daha doğru olur bence.Nedenine gelince Frameworklerin amacı genel anlamda sık kullanılan sınıfları (Örneğin : login control , session control , form validation v.b.) gibi işleri tek 1 çatı altında toplamalarıdır.MVC ise Programda yapılan işlemleri bölümlemektir. Web olarak bakarsak html i , css i ayrı tutmak (view), sql i ayrı tutmak (Model) , Programı ayrı tutmak (Controller) aynı zamanda bu controller html sql ve program arasındaki veri akışınıda sağlar.Ben ufakta olsa orta çaplıda olsa proje yaparken mvc yi temel alarak kodluyorum. Ne oluyor dersek smarty , flexy gibi bir siteme ihtiyaç duymayı bırakın adından bile söz etmiyorsunuz :) kodlarınız okunabilir oluyor. Kod yazımında bir standard olmuş oluyor…Fakat framework php gibi bir dil için bana gereksiz geliyor bir ara codeIgniter a başlamıştım.Fakat kullanım kolay ama arka planda ne oluyor ne bitiyor hiç haberiniz olmuyor…Ki Çok Çok büyük web projeleri yazmıyorsak benim görüşüm gerek yok.Sistem Hakimiyeti açısında http://www.phpclasses.com dan gerektiğinde class eklenip işler yine kolaylaştırılabilir.Ama MVC Şart :) KOLAY GELSİN..İYİ ÇALIŞMALAR…
Sevgili Feyyaz, söylediklerinin her kelimesine katılıyorum. Zaten aklın yolu birdir. Ufak bir ziyaretçi defteri için CodeIgniter gibi geniş bir altyapıya gerek yoktur. Ayrıca MVC ve anaçatıların beraber kullanılsa da farklı konular olduğu da aşikâr. Diliyoruz ki zamanla bu felsefeler daha da yerleşir ve Türk programcılarını çok daha iyi yerlerde görebiliriz ;)
Sürekli hazır sistemler üzerinde çalışıyoruz. Kullanmış olduğumuz herşey hazır. Üzerine birşeyler eklemekle meşgulüz sürekli. Bu sadece kod yazmakta değil bir çok konuda bu böyledir. Burda sorulması gereken soru acaba biz ne işe yarıyoruz gerçekten ?
daha hızlı şekilde tamamlanmasını sağlayan demişsiniz ?
MVC’nin geliştirme sürecini arttırdına dair şeyler okumuştum bir kaç kaynakta.
Hızlı geliştirme konusunda tecrübelerini okumak isterim.
Saygılar,
Aslında benim merak ettiğim PHP ile MVC yapısını nasıl oluştururuz. Sanırım bu programcının kendi mantığı ve tekniğiyle alakalı olarak değişiklik gösterebilir. İlk etapta MVC yapısını kapsamlı bir şekilde anlatabilirsiniz daha yararlı bir konu olur gibi geliyor bana.
MVC de modüler yapılar üzerinde çalışanlar var mı ?
Herkes ci anlatıyor.Sizde yii frameworku anlatırsanız bence daha iyi olacaktır.