Monthly Archives: Eylül 2012

Yazılım ve Sistem Mühendisliği

Geliştirme Metodolojisi Finansal Bir Karardır

Yıllar geçse de, yeni teknolojiler çıksa da PHP gibi serbest yazım stillerine izin veren diller olduğu sürece MVC öcü mü ? oop mi spagetti mi gibi tartışmalar daha uzun yıllar devam edecektir…

***

İşin özü, projenizin programlama stilini belirlemek veya değiştirmek, tamamen finansal bir karardır. Aynen vadeli veya peşin para ile alışveriş yapmak gibi.

Prosedürel programlama kolaydır, fonksiyon kütüphaneleri ve kategorize edilmiş klasör yapılarıyla sizden bekleneni hızlıca üreterek işvereninizi ve yöneticilerinizi kolayca memnun etmenizi sağlar. Bazı durumlarda mvc frameworkler ile geliştirilen projelere göre daha az kaynak tükettiği ve daha hızlı aplikasyonların geliştirilmesine elverişli olduğu konusu gerçektir. Ancak kalabalıklaşan ve projenin geneli hakkında bilgisi olmayan ekiplerin proje üzerinde çalışması ve projenin yaşlanması gibi faktörler kod tekrarına; çok basit ancak projenin geneline etki etmesi beklenen geliştirmeler bazen günler sürerek gereksiz geliştirici kaynağı tüketimine neden olabilir.

MVC frameworkler, umumiyetle nesne yönelimli programlama bilgisi gerektiren yapılardır. Gücü yada hızı kullandığınız framework un dispatch cycle ına göre değişkenlik gösterir. Deneyimli developer lar ve tasarım bilgisi gerektirir. Yapılacak her geliştirme programatik ortamda doğru modellenmeli ve dökümante edilmelidir. Concurrent kullanımın artması gibi durumlarda sunucunuz üzerindeki yükün ciddi manada artacağı konusu bir hakikattir. Kısa vadede bu ve benzeri durumlar gözünüzü korkutsada uzun vadede mvc framework lerin sağlayacağı yararların tartışılmazlığı kesindir.

MVC frameworklerin kullanımıyla ilgili olarak başta bahsettiğim concurrent kullanıcı sayısından doğan yük, doğru ölçeklenmiş, dağıtık bir yapıda rahatlıkla karşılanabilir. Ayrıca mvc hiyararşisi, basit manada tüm business logic in model katmanında, arayüz içeriğinin view katmanında ve bu iki katman arasındaki iletişimi sağlayan yapının controller katmanında olmasını gerektirir. Böylelikle sistemin fonksiyonel bölümünü görsel bölümden izole etmiş olursunuz. Projenin geneline etki etmesi beklenen geliştirmeler, mvc frameworklerin sunduğu plugin gibi yapılarla son derece basit ve kısa sürelerde gerçekleştirilebilir(Zend framework’ün controller plugin leri bu konuya iyi bir örnektir.). DbTable ve ORM gibi, frameworklerle birlikte gelen yada uyumlu çalışabilen veri erişimi sistemleri, injection gibi tehlikeli durumlardan sizi koruyarak güvenli sistemler geliştirmenize olanak sağlar. Son olarak her framework kendi kod standartlarıyla birlikte gelir. Kurallara uygun yazılan, düzgün modellenmiş ve dokümante edilmiş sistemler, minimum kod tekrarıyla temiz ve anlaşılır kod yazmanıza olanak sağlar.

***

Ve… emin olun sizden alelacele iş bekleyerek, sizi sistemi çöp haline getirmeye zorlayan her işveren veya yönetici, uzayan development süreleri ve büyüyen maliyetlerden bezerek “Framework diye birşey varmış…” diyecek ve konuyu gündemine alacaktır.