Murat Uysal

girişimci / matematik mühendisi / yazılım uzmanı / hislerim ve deneyimlerimden yazılar

Framework derken ?

Her yazılım şirketinde framework lafını çok sık duyarsınız.

Küçük veya büyük her tür sistem bazı hazır kütüphanelere ihtiyaç duyar. Bunları her lazım olduğunda tek tek uyarlamak zorunda kalınırsa, müşterinin ihtiyaçlarına çözüm sunmak zorlaşır. İşte bu sebeple her şirket bir framework geliştirmiştir.

Amaç tabi ki işi kolaylaştırmak olsa da, maalesef pratikte tersi olmaktadır. Çünkü şirketin oluşturduğu framework yeterince akıllı olmadığında, ve talepleri karşılamak zorunda kalan acımasız yazılımcı arkadaşlarımın insiyatıfinde kalırsa :) işte işler çığırından çıkmaya başlamaktadır.

Normalde standart bir düzen sağlaması gerekir iken, framework birçok yazılımcıya göre esner hale getirillmesi tercih edilir. Ve günün sonunda, anlamsız bir kod yığını ile iş çıkarması zor günler geçirir yazılım şirketleri.

Bazı şirketler de kendimiz uğraşmayalım, bunların hazırlarını alıp kulanalım der. Mesela DevExpress, Telerik gibi tool'dan öte tam bir sistem olmayı hedeflemiş yazılımlar vardır. Özellikle Devexpress'in XAF platformunu deneyimlemiştim, gerçekten çok başarılı bence de. Ama bu da iyi bir çözüm mü derseniz, maalesef yine değil yine değil... Bu durumda da gerçekten ilgili platform için kapalı bir kutu alıp kullanmaya başlamış olursunuz ki bu da ayrı bir risktir.

Peki gerçekte bir framework nasıl olmalı ki bu sorunlar yaşanmasın ? İşte bu sorunun yanıtı epey uzun aslında. En kısa hali ile izah etmeye çalışacağım.

Öncelikle framework niçin vardır ? Tek ana sebebi vardır, müşterinin hızlı değişen taleplerine aynı hızda cevap verebilmek için güçlü yazılım geliştirme sağlaması. Daha öte kapsamlı bir tanıma hiç gerek yok. 

Bu soruya doğru cevap verebilmek için önce yazılımlarda neler gelişir ve değişir bunları ele almalıyız.

1- Yazılımlar veritabanı üzerindeki birçok tabloya veri yazarlar ve bunlar arasında süreci işletirler. Her işte olabileceği gibi, müşteri iş süreçleri değiştiğinde, aynı şekilde bu süreç  değişiklikleri bu yazılıma yansıtılabilmelidir.

2- Validasyon yapısı değişebilir. Örneğin bir formda girdiğiniz sipariş no SİP-31233 formatında iken, S-1212 formatına geçebilir. Bu durumda çok hızlı şekilde ve 'TÜM İLGİLİ SAYFALARDA' tek bir noktada değiştirerek bu süreç değişikliği yansıyabilmelidir.

3- Parametrik ayarlamalar ile kurgulanabilmeli, gerektiğinde parametre değiştiği anda tüm sistem yeni parametreye göre çalışabilmelidir. Dil desteği default Türkçe iken, İngilice yapılabileceği gibi, veya bir kullanıcı e-posta doğrulaması olarak üye olurken, bunu iptal edilmek istenmesi gibi... Tek bir paramere ile bu tip şeyler değişebilmeli.

4- Özel yeni formlar hızlıca oluşturulabilmelidir. Müşteri yeni bir özellik kazandırmak isteyeblir ve bu durumda, form validasyon kuralları ile oluşturulmalı ve ilgili tablo ile doğrudan konuşan BUG içermeyen formlar oluşturulabilmelidir.

5- Özgürce kod revizyonu yapılabilmelidir. Framework size kolaylık sağlamalı, istediğiniz zaman framework dışında kalıp sadece faydalı yönlerini kullanıp bağımsız çalışma üretebilmelisiniz.

En ana başlıklar ile bunlar bir framework ü en iyi tanımlayan özelliklerdir diye düşünüyorum.

( devamı gelecek )
Comments are closed