Merhaba beyler,
Framework Nedir ? Avantaj ve Dezavantajları nelerdir ? gibi soruları son zamanlarda forumlarda ve geliştirici portallarında çok sık görmeye başladık. Her kes bir şeyler söylemiş ve bende bu konuda kendi fikirlerimi sizlere sunmak adına böyle bir yazı yazmaya karar vermiş bulunuyorum. Öncelikle framework nedir onu tanımlayarak konumuza bir giriş yapalım.
Framework: uygulama geliştirme çatısıdır. Çok klişe bir tanım olduğunun farkındayım o yüzden biraz daha bu tanımı açalım. Örneğin yeni bir proje yazıyorsunuz ve bunun için sıfırdan bir sistem kurmak, veritabanı tasarımı yapmak, yönetim panelini yazmak, formları kontrol etmek, güvenlik gibi olayları halletmek son olarak temanızı sisteme entegre etmeniz gerekir. Daha sonra cache sistemleri, veri iletişim sınıfları vs gelir. En azından ben böyle yapıyor(dum)um. Burada bahsettiğim her olay kendi içinde uzar gider. Örneğin formları kontrol etmek için gelen değerlerin xss yada benzeri güncel açıklara geçit vermemesi için bu değerlerin belirli filtrelerden geçirmek gerekir. Cache sistemi için bir cache sınıfı yazmak gerekir. ORM ve kuyruk işlemleri içinde bir sınıf yazmak gerekir. Kısaca özetlemek gerekirse asıl projeye odaklanmak için 1 hafta kadar bu tarz işlerle uğraşırsınız. Hatta bazen bu süre daha da uzayabilir.
Frameworklerde ise asıl projeye odaklanmanız frameworkü indirip kurduktan hemen sonra başlar. Peki nasıl oluyor ?
Frameworkler yukarıda bahsettiğimiz işlemlerin çoğunu yapan sınıflara sahiptir. Tekrar form örneğinden yola çıkarsak frameworklerde form işlemlerini yapan sınıflar bulunur. Ve bu sınıflar bizim yerimize yukarıda bahsettiğimiz şeyleri yaparlar. ORM ve cache sistemleri de çoğu frameworkde bulunur. Özetlemek gerekirse framework bize zaman kazandırıp asıl yapmak istediğimize odaklanmamızı sağlar. Zaman = para demek olduğuna göre gerisini artık siz düşünün 🙂
Framework Kullanmanın Avantajları Nelerdir ?
- Zaman kazandırır.
- Güvenlidir.
- Düzenli ve temiz kod yazımını sağlar.
- İş görüşmelerinde + değer kazandırır.
- Günceldir.
- Ekip olarak proje geliştirmeye daha elverişlidir.
- Component yazımında kolaylık sağlar.
Yukarıda ki liste frameworklere hayran biri için yeterli olmayabilir ve bu liste uzatılabilir. Ancak temel olarak framework bize bu avantajları sağlar. Peki hiç mi zararı yok bize bu frameworklerin ?
Framework Kullanmanın Dezavantajları Nelerdir ?
- Salt PHP( düz kodlama) ye göre daha yavaştır. Bunun sebebi çok daha fazla mimari ve özellik içermesi.
- Programlama bilginizi unutmanıza neden olur. Bu maddeyi birazcık sağa sola çekebiliriz. Frameworklerde genellikle ORM yapıları kullanıldığı için standart sql kodlarını unutabilirsiniz.
- Hazıra kon felsefeniz desteklenir.
- Çalışma mantığını değiştirmek ve düzenlemek zordur.(OOP, MVC ve framework üzerindeki diğer mimarilere çok hakim değilseniz.)
- Ve öğrenmek için çok zaman harcamanız gerekir.
Yine yukarıdaki listede frameworkleri sevmeyen bir geliştirici kardeşimize göre yeterli olmayabilir ancak tarafsız bir şekilde bakmak gerekirse aşağı yukarı bu dezavantajları bulunmaktadır.
Kimler Kullanmalı ?
Framework kullanmanın avantaj ve dezavantajlarından bahsettikten sonra kendi framework hikayemden yola çıkarak kimler framework kullanmalı yada kullanmamalı başlığına da bir el atmak istiyorum.
Yaklaşık 4-5 yıl önce işlerin yoğun olduğu zamanlar yeni bir projeye başlarken belirli bir kısma kadar hep aynı şeyleri yeniden yaptığımı fark ettim. “Amerika’yı yeniden keşfetmeye gerek yok” sözü tamda bu noktada benim için söylenmiş gibiydi. Zaman geçtikçe bu olay iyice canımı sıkmaya başladı ve yaptığım işten zevk almamaya başladım ki bu en kötüsüdür.
Daha sonra bu olayı nasıl hallederim diye araştırırken frameworklere denk geldim ve biraz daha araştırıp codeigniterın popüler olduğu zamanlar codeigniter öğrenmeye başladım. Sonra ci ile ilk projemi geliştirdim. Kafam artık rahattı. O zamanlar nesne tabanlı programlama ve mvc mimarisini ve codeigniterın kendi içinde kullandığı bazı standartları (PSR) bilmediğim için nasıl çalıştığını neler olduğunu kavrayamadım. Bu yüzden sisteme çok fazla müdahale edemiyordum. Avantaj kısmında söylediğim gibi gerçekten zaman kazandırıyordu. Select, insert gibi sql kodlarını kullanmadan çok rahatlıkla veri tabanı işlerini halledebiliyordum. Daha sonra Laravel amcaya geçtim ve şu an bazı projelerimde nadirde olsa laravel kullanıyorum.
Konuyu toparlamak gerekirse framework kullanmak yada kullanmamak sizin ihtiyaçlarınıza kalmış bir şey. Eğer oop bilmiyorsanız kesinlikle kullanmamanızı öneririm. Frameworkler component(bileşen) mantığında ve full oop olarak yazıldığı için bir şeyler yaparsınız gayet de güzel çalışır ancak asla ne olduğunu nasıl çalıştığını anlayamazsınız. Frameworkde olmayan ve ihtiyaç duyduğunuz sınıfları eklerken çok sıkıntı yaşarsınız.
Ancak çok fazla iş yapıyor ve bir ekip olarak çalışıyorsanız birde oop biliyorsanız tadından yenmez. Framework Nedir ? Avantaj ve Dezavantajları Nelerdir ? Kimler Kullanmalı ? gibi konuları ele aldık arkadaşlar. Umarım ufak da olsa faydalı olmuştur. Bir sonraki yazıda görüşmek üzere kendinize iyi bakın 🙂
İlk Yorumu Siz Yapın