Framework Nedir ? Avantaj ve Dezavantajları Nelerdir ? Kimler Kullanmalı ?

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 ?

  1. Zaman kazandırır.
  2. Güvenlidir.
  3. Düzenli ve temiz kod yazımını sağlar.
  4. İş görüşmelerinde + değer kazandırır.
  5. Günceldir.
  6. Ekip olarak proje geliştirmeye daha elverişlidir.
  7. 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 olmaz olurmu 😀

Framework Kullanmanın Dezavantajları Nelerdir ?

  1. Salt PHP( düz kodlama) ye göre daha yavaştır.
  2. Programlama bilginizi unutmanıza neden olur.
  3. Hazıra kon felsefeniz desteklenir.
  4. Cache sistemi yoksa framework yüksek trafikte cortlar.
  5. Sınıfta oluşan bir hata tüm projede fatal error oluşturur.
  6. Çalışma mantığını değiştirmek ve düzenlemek zordur.
  7. Ve öğrenmek için çok zaman harcamanız gerekir.

Yine yukarıdaki listede frameworkleri sevmeyen bir geliştirici kardeşimize göre yeterli olmayabilir.

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 3-4  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 soğuttu beni. Acemilik 😀

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 oop bilmediğim için nasıl çalıştığını neler olduğunu kavrayamadım. Ç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. Bir gün salt php ile yazılmış bir projede ufak bi düzenleme yapmam gerekiyordu. Projeyi açıp veritabanına ekleme yapacağım zaman yıllardır bildiğim mysql insert metodunu zar zor hatırladım. Belki de benim aptallığımdan 😀 Ancak o saatten sonra kullanmamaya karar verdim. Tabii ki arada hala laravel amcayı 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 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Solve : *
28 + 3 =