Framework kullanımında dikkatle değerlendirilmesi gereken hususlar (Dezavantajlar)

Framework kullanımı hazır bileşenler olması sebebiyle, genel olarak avantajlı değerlendirilebilir. Fakat bazı durumlarda bu faydalar azalabilir veya belirli bir noktadan sonra, faydadan çok zarar verir.

Framework kullanımı ile ilgili dikkat edilmesi gereken hususlar aşağıda listelenmiştir:

1) Framework alana özel olmalı veya çok ilişkili birkaç alana çözüm sunmalıdır.

2) Aynı çözüm alanı için de olsa bile, her türlü probleme çözüm getirme anlayışı takip edilmemelidir.

3) Framework esneklik sağlamalıdır. Yani, farklı ihtiyaçlara göre özelleştirilebilir olmalıdır. Bazı problemlerin, framework kullanıcıları tarafından çözülebilmesine imkan tanınmalıdır. Framework geliştirme stratejisi olarak, orta yollu gri modda olmalıdır. (Gray-Framework) Her özelliğin hazır sunulduğu framework ler kara kutu(Black-Box), esnekliğin ve soyutlamanın üst seviyede tutulduğu framework ler (white-box) olarak isimlendirilir.

4) Framework yaklaşımları ve özellikler, iyi bir seviye de dokümantasyonu yapılmalıdır. Framework leri bekleyen en büyük risk, gittikçe karmaşıklaşan yapılar olabilmesidir. Bu karmaşıklık, framework kullananları olumsuz etkilemektedir.

Framework ler niçin önemlidir? (Avantajları)

Projemizin teknik alt yapısı (Platform & Infrastructure) olarak adlandırabileceğimiz bir çok ihtiyacımızı bir veya daha fazla framework bileşeni kullanarak çözümleriz. Bu bileşenler, kurum kaynakları ile geliştirilebileceği gibi, açık kaynak veya ticari olarak kullanıma hazır bileşenlerde olabilir.

Framework kullanmanın avantajlarını şu şekilde listeyelebiliriz:

1) Tekrar kullanılabilir ve kullanıma hazır bileşenler olması

2) Farklı projelerde denenmiş ve test edilmiş olması

3) Kodların standart olarak geliştirilmesine katkı sunması

4) Framework çözüm alanının, kendi iş alanımızdan ayrıştırılması ve kaynaklarımızı iş alanımıza sarfetme imkanı

5) Teknik ve tecrübe gerektiren bir alan olması sebebiyle, tecrübeli kişiler tarafından geliştirilmesi (Tecrübenin kullanılması)

6) Projemize daha hızlı başlangıç yapma ve daha hızlı ilerleme imkanı

Framework lerin en önemli avantajı tekrar kullanılabilir bileşenler olmasıdır. Diğer tüm avantajlar, bu temel avantaj çerçevesinde şekillenmektedir.

Yazılım alt yapı bileşenleri (Frameworks) ve Tasarım desenleri

Yazılım alt yapı bileşenleri, aynı alanda benzer uygulamalara ortak bir alt yapı sunmak için geliştirilen, birbiri ile ilişkili bileşen kümesidir. Bu bileşenlerin en önemli özelliği, tekrar kullanılabilir (reusable) ve genişletilebilir (extensible) yazılım bileşenleri olmasıdır. Bu açıdan önemli tecrübe gerektirir.

Tasarım desenleri bilgisi ile, bu alanda gerekli tecrübeleri kazanma imkanımız vardır. Ayrıca, tasarladığımız “Framework” içinde çözüm sunacağımız problemlerde, tasarım desenlerinden ihtiyacımız olanlarını kullanırız. (Factory, Facade, Command, Strategy, Singleton, Observer, Template Method gibi) Bu kullanım o kadar yaygındır ki, “X Framework projesinde kullanılan tasarım desenleri…” benzeri makale ve açıklamalar duyarsınız.

Tasarım desenleri tecrübesi, “Framework” geliştirme süreci için ön bir basamak olarak görülebilir.

Tasarım desenlerinin yazılım sistemi sürecine sağladığı diğer katkılar nelerdir? (Motivasyon, Takım içi iletişim, Kod Kalitesi)

Yazılım tasarımının ve geliştirilen kodların kaliteli olması (Yaygın ve bilenen yaklaşımlar), iş tatmini açısından önemlidir. Diğer bir bakış açısıyla, yazılım sistemi geliştirme kalitesi düşük olduğunda, iş tatmini de düşmektedir. Edindiğimiz tecrübelere göre, kısa zamanda iş arayışının sebeplerinden bir tanesi de, yapılan işin düşük kalitede olmasıdır.

Tasarım desenleri, tecrübeli kişiler arasında ortak bir terminoloji ve iletişim dili olarak kullanılmaktadır. “Sistemin şu kısmında, bu tasarım desenini kullandık?”, “Bu problemin çözümü için, şu deseni kullanabilirsiniz?” gibi. Tasarım desenlerinin kullanıldığı ilgili bölümlerde, kodun anlaşılabilirlik seviyesi de yükselmiş olacaktır. Bireysel olarak tecrübe edinmiş kişiler, tüm takım çalışanları ile bu tecrübelerini paylaşarak, yazılım geliştirme süreçlerine katkı sağlayabilirler.

Prosedürel dillerden Nesne temelli dillere geçiş dönemi ve tasarım desenleri

Tasarım desenlerinin yayına hazırlandığı dönemi incelediğimizde, prosedürel dillerden(Pascal, Cobol vb) nesne temelli dillere yaygın geçiş döneminin ilk zamanlarıdır. (90 yılların başı) Bu geçiş döneminde; Nesne temelli yaklaşımda yeni olanlar, daha önceki bilgilerini kullanarak kod yazmışlardır. Özellikle; sınıfı sadece bir fonksiyon kütüphanesi gibi görüp, çok fazla metot yazmak gibi. Bu şekilde geliştirilen yazılımların, kod kalitesi ve sürdürülebilirliği ile ilgili sıkıntılar yaşanmış. Bu sıkıntılara çözüm olabilmek için, nesne temelli yaklaşım tüm detayları ile irdelenmiş, faydalı çözüm yaklaşımları geliştirilmiş ve paylaşılmıştır. Tasarım desenleri yayını böyle bir zamanın mahsülüdür. Bu alanda verilen diğer eserlere de baktığımızda, 90’lı yıllar, nesne temelli yaklaşımın altın çağı olarak adlandırılabilir. Hatta, bu alanda derinleşmek isteyen kişiler, bu zaman diliminde yazılan eserlere müracaat etmelidir.

Özetle; İlk adaptasyon dönemi geri kalmıştır. Bugün itibarı ile, biz hala o geçiş dönemlerinde yapılan hataları tekrarlamamalıyız. Çözüm bekleyen güncel problemlerimiz var. Geçmiş kazanımları çok iyi öğrenmek ve üzerine yeni şeyler bina etmek zorundayız.