Yazılım Geliştirmenin İki Yolu

Diyelim ki bir uygulama için raporlama fonksiyonu geliştiriyorsunuz. Bu raporların CVS ve HTML formatını desteklemeleri gerekiyor. Bu durumda iki seçeneğiniz var:

  • İki fonksiyon yazmak
    • Rapor datasını alıp CSV çıktı üreten bir fonksiyon,
    • Rapor datasını alıp HTML çıktı üreten bir fonksiyon.
  • Bir raporlama sistemi yazmak;
    • CSV ve HTML için iki şablon tasarlanır,
    • Raporlama sistemine Rapor Datası verilir,
    • Raporlama sistemine Rapor Şablonu verilir,
    • Raporlama sistemi bu iki bilgiyi birleştirip raporları oluşturur,
    • Bu altyapı kullanıcıdan gizlenir içeride kullanılır. Gerekirse gelişmiş kullanıcılarda bu rapor sistemini kullanarak daha sonradan yeni rapor tipleri üretebilirler. Mesela XML rapor alabilirler.

Birinci yolun avantajları ve dezavantajları:

  • Hızlı bir şekilde sonuca ulaşmak, kodun çok daha basit olması.

İkinci Yolun Avantajları

  • Prezantasyon ile datanın temiz şekilde ayrılmış olması,
  • Daha sonradan yeni bir rapor formatı gerektiğinde tekrar kod yazmaya gerek olmaması,
  • Daha sonradan bu fonksiyonun kullanıcılara açılabilmesi.


Şimdi geniş ölçekte farklı yolları seçen yazılımları görelim:

  • Internet Explorer
    Birinci yolu seçen yazılımlardan.
  • Firefox
    İkinci yolu seçen yazılımlardan. Firefox bir onlarca fonksiyonu XUL Framework' ü üzerine inşa etti. Dolayısla aynı raporlama sistemi gibi XUL sistemini yazdılar. Daha sonradan geniş bir API ile onu desteklediler ve aynı herhangi biri Firefox için eklenti (addon) yazarmış gibi Firefox' un iç sistemini geliştirdiler. Daha sonrada bunu kullanıcıya açtılar. Açılan API çok güçlüydü çünkü geliştiriler XUL ile bir şeyler geliştirirken API yüzünden tıkandıklarında API' ı geliştirdiler dolayısıyla tüm sistem çok daha güçlü bir hal aldı.


Benzer örneklerden gidersek Macromedia' nın hemen hemen tüm ürünleri de aynı şekilde geliştirilmiştir. Ana motor JavaScript + Macromedia' nın güçlü API larını destekler. Aynı XUL gibi JavaScript ve bu API' lar birleştirilerek extension' lar yazılabilir. Eğer Dreamweaver, Flash gibi yazılımların altyapılarını incelerseniz ana sistemden sonraki hemen hemen tüm yazılımın JavaScript ile yazılmış olduğunu görebilirsiniz. Yani bu kodları değiştirerek aslında tüm yazılım arabirimlerine kadar değiştirebilir ya da yeni fonksiyonalite ekleyebilirsiniz.

Burada bence unutulmaması gereken şey geliştirilen yazılımın boyutudur. Yani Macromedia ya da Firefox bu tip bir framework' ü destekleyebilir ama küçük bir takım için bu seçim büyük bir yanlış olabilir. Ama raporlama sistemi küçük olduğundan tek kişi olarak çalışan bir geliştirici bile raporlama sistemini özel bir çözüm yerine bu şekilde genel bir çözüm olarak geliştirebilir.

Benim naçizane fikrim iyi programcılar her zaman ikinci genel çözümü yapmak ister, ancak hayatın gerçekleri işin yönünü değiştirebilir.

Agacan - 04.02.2010

Slm Abiler sizlerden ricam ben normal bir pc kullanicisiyim ve sadece biraz word biliyorum excel i hiç ama hiç (copyala yapistir bile ) bilmiyorum yazilim dersi veren kurslar var BilgeAdam gibi bu kurslardan birine kaydolsam yazilim kurslarina sifirdan verim alirmiyim yada temel olarak biseyler bilmem gerekiyormu.(oyle soruyorum cunku bana sadece bilgisayar kullanmayi bil yeter dediler, temelden gorecekmisiz. Asp.net, veritabanlari, vbsc. sqol ve baska dersler veriyorlarmis verimli olurmu abiler)yetenek olarakta oyle super zeka degilim gayet normal akil calisiyor:) sizlerden daha once bu kursa giden varsada bana az bilgi verirseniz egitimleri hakinda olumlu yada olumsuz cevabiniz için minnettar kalirim sizlere .
Tskler¯¯Agacan

INTeori - 18.08.2009

Yazilim bana göre bir sanat oldugu için iyi yada kötü diye bir genelleme yapamiyorum. Ama yazilimi sanat olarak görmeyip üstünkörü boyaci küpü gibi
yazanlar varsa bunlara kötü denebilir.
Yazilim bir sanattir bu yüzden emek ve duygu ister.

Ferruh Mavituna - 30.04.2009

@Burcu
Dediginde haklisin bu karsilastirmadan öte bir örnekti.

Burcu Dogan - 29.04.2009

N-katmanli mimari denince aklima aksine ilk Microsoft geliyor. Bir tür platform sirketi, her zaman tasarimda semaya, eklentileye açik olmaya, yeniden kullanilabilirlige önem veren ve katman üzerine katman koyma kültürüyle taninan bir sirket.

IE 1.0 1995'te piyasaya sürülmüs bir ürün ve hala 1995'teki mimarinin üzerinden gelistiriliyor. Firefox 2005'te geliyor, arada kalan 10 yilda yazilim mimarisi konusunda çigir açacak seviyede paradigmalar gelisti. Bence eski bir tasarimla, modern çagin tasarimini karsilastirmak çok gerçekçi degil.

Necat Bolpaça / anov - 08.03.2009

Aslinda MS de bu yaklasimi benimsiyor.

Bunun örnekleri winapi ve .net. MS hiçbir zaman köke erisime izin vermemis, daima yapilacak islerin bir API vasitasiyla yapilmasini saglamis.
IE den bahsedilmis, konu IE olunca bahsetmek istedigim baska seyler de var ama haydi konunun disina çikmayayim.
Selamlar.

Adil ERKAN - 03.03.2009

iyi programci? Bu tanimin açilimini hep merak ettim. Her ortam da tartisilir ama net bir cevap hiç bir zaman bulunamadi sanirim da bulunamayacak. Hayatin gerçekleri !!!

Ferruh Mavituna - 02.03.2009

CVS? "Comma Separated Value" mu demek istedin diye merak ettim?

evet CVS ile CSV' yi hep karisitiriyorum:) Bu aksam duzelteyim yaziyi da.

Ali Utku Selen - 02.03.2009

CVS? "Comma Separated Value" mu demek istedin diye merak ettim?

Mehmet - 02.03.2009

Dedigin gibi her programci genel yazmayi çok fonksiyonlu olmasini ister fakat, programin egitimini verdigin kisi excel'de kopyala-yapistir nasil oluyor diye soruyorsa? Sanirim bu da hayatin gerçeklerinden oluyor...

Yorum Yazın


Tüm yorumlar onaydan geçmektedir, bu işlem en uzun 30 dk. sürecektir. E-mail adresleri yeni yorumları bildirme harici hiç bir başka amaçla kullanılmamaktadır ve sitede gözükmemektedir.



Captcha Kodu