Arda Çetinkaya Yazılım ve arada kendim ile ilgili karaladıklarım…

28-29-30 Nisan 2010 tarihlerinde Ankara’da yeni bir festival gerçekleşecek. Sepultura’dan, Deathstars’a,Jay-Jay Johanson’dan Hayko Çepkin’e oldukça geniş ve güzel bir kadrosu var…Rock ve metal musikiden hoşlanan Ankaralılara şiddetle tavsiye ediyorum. Ayrıntılar aşağıda bir yerlerde işte…

The Profestival Rock 2010 from The Prostar on Vimeo.

Ayrıntılar: http://www.theprofestival.com/

Biletler: http://www.biletix.com/perfList.htm?id=247&pst=EVENTGROUP

Bu haftanın grupları…

/ Leave a comment / ~ 2 dakikada okuyabilirsiniz.

Bu hafta bunları dinlemişim,etmişim…Özellikle IAMX’i ve Deftones’u yedim yuttum…IAMX konseri olduğu için özel ilgi gösterdim hatta…Ama 3 Nisan ki konserden sonra ilginin boşa gitmediğini gördüm sevindim…Son zamanlarda izlediğim en iyi performansı sergiledi IAMX. Umarım tekrar gelirler…Gelmeleri lazım…Deftones’un yeni albüm de şahane…Biraz zor bir albüm aslında, ama biraz sabır ile kolay aşılabilen bir zorluk…Umarım Deftones’u da görürüz yine yakında…

Bugün başlayan ve önümüzdeki 2 gün boyunca devam edecek Mix10 etkinliğinde ilk duyurulan haberler, Silverlight 4’ün “yayın adayı” ve WCF RIA Services’in “yayın adayı” oldu. Nisan ayı gibi de sanırım bu iki kavramın son hallerine kavuşuyor olacağız…Ayrıntılı bilgileri ve indirmek için gerekli linkleri aşağıdaki adreste bulabilirsiniz.

http://www.silverlight.net/getstarted/silverlight-4/

Bir güzel ve önemli haber ise Windows Phone 7’den…Windows Phone 7’nin geliştirici araçları da bugün itibari ile geliştiricilere sunuldu. Tabi telefon çıkmadan pek kullağa mantıklı gelmiyor ama geliştirme ortamının sağladığı güzellikler ile ilgileniyorsanız hemen olaya dalmanızı tavsiye ederim.Daha fazla ayrıntı ve geliştirme araçları için aşağıdaki linki takip edebilirsiniz.

http://developer.windowsphone.com/windows-phone-7-series/

Bir yazılım projesinde yazılım tasarımına başlarken, kafamızda ilk yaptığımız şey genellikle direk projenin nesne modelini çıkarmaya çalışmak oluyor. Yanlış bir şey olmasa da öncesinde yapılması gereken başka şeyler olduğundan ortaya çıkan nesne modeli ne kadar sağlıklı oluyor tartışılır. Kendi tecrübelerim ve gözlemlerime göre genellikle nesnelerin bir birleri ile ilişkilendirilmeleri konusunda hatalar yapabiliyoruz. Aslında hata demek doğru olmaz. Bazı noktaları düşünmeden, bazı şeyleri göz ardı ederek nesne modellerini oluşturuyoruz ve bunlar yazılım tasarımının ilerleyen aşamalarında sorun olarak karşımıza çıkmasa da, geliştirme sürecinde mutlaka karşımıza çıkıyor. Nesnelerin bir birleri ile olan ilişikileri ile bir sonraki yazımda daha çok ilgileniyor olacağım. Ama önce nesnelerimizi tasarlarken göz ardı edildiğini düşündüğüm bir kaç noktaya değinmek istiyorum.

Bir nesnenin var oluş sebebi…

Her hangi bir kavramın nesne modelini oluştururken, o kavramın ne amaçla var olduğunu asla unutmamak gerekir. Gerçekleştireceği operasyonların, o kavram dahilinde olduğunu kesinleştirmek nesne modelini ve ilgilerini oluşturmakta daha kolaylık sağlayacaktır. Matemetikte ki 4 işlemi soyutlayan bir nesneye, belli bir süre için faiz hesaplayan bir metodu da 4 işlem dahilinde olduğunu düşünerek eklemek o nesnenin karmaşıklığını artıracaktır. Farklı yerlerde farklı şekillerde var olabileceğinden tasarımsal olarak soruna yol açacaktır. Dolayısıyla nesnelerin görevlerinin çok net bir şekilde tanımlanıyor olması gerekmekte.

Bir nesnenin yaşam süresi…

Nesnelerin, bütün içerisinde ki yaşam süresini yönetebiliyor olmak çok önemlidir. Gelişen “geliştirme teknolojileri” bu sürenin yönetimini biraz olsun geliştiriciden alıyor olsa da, en azından nesnelerin yaşam sürelerinin farkında olmak bizim için çok önemli. “Object reference not set to an instance of an object”(sanırım en çok alınan hatadır) hatasını alıyor olmamız, bir bakıma da nesnelerimizin nerede, ne zaman, nasıl yaşadığının farkında olmamamızdan kaynaklanıyor diyebilirim. Nesnelerimizin, nerede, ne şekilde, ne kadar yaşayacağını ya da var olacağını çok iyi belirlememiz gerekiyor.

Bir nesnenin ilişkileri…

Nesnelerin bir birleri ile olan ilişkilerini ortaya net bir şekilde çıkarmak çok önemlidir. Bu noktada “Composition(part-of)”(Bileşim),“Aggregation(has-a)”(Kümelenme,bir araya gelme) ve “Inheritance(is-a)”(Kalıtım) kavramlarını anlıyor olmak çok önemlidir. Teorik olarak kavramlara hakim olsak bile, nesne tasarımlarında bunları uygulama konusunda zaman zaman sıkıntı çekilebiliyor. Nesneler arasında ki ilişikleri, hangi nesnenin hangi nesneye bağlı olduğunu ya da olacağını ilk başlarda kestirebiliyor olmak çok zor olsada,  bu zorluğa katlanıp çözme çabası olumlu sonuçları beraberinde getirecektir. Bu aşamada “Dependency injection”, “Inversion of control” kavramlarını da çok iyi anlıyor olmamız gerekmekte…
Bu üç başlığın yazılım tasarımı konusunda, özellikle nesne modeli oluştururken çok önemli olduğunu düşünüyorum. Şimdilik bu kadar…

Asp.Net MVC Framework 2 versiyonu yayınlandı. Ama şu an için sadece Visual Studio 2008 için…Buradan indirebilirsiniz.Önümüzdeki günlerde Visual Studio 2010 için olan versiyonu da ortaya çıkacaktır diye umuyorum. Bildiğiniz gibi Asp.Net MVC 2, önceki sürümle beraber(Asp.Net MVC 1) ile aynı geliştirme ortamında çalışabiliyordu. Bu hala devam etmekte. Öte yandan eski Asp.Net MVC 1 projelerini MVC 2’ye geçirmek isterseniz de Visual Studio 2008 için http://www.asp.net/learn/whitepapers/aspnet-mvc2-upgrade-notes/ adresindeki upgrade notlarını okuyabilirsiniz. Visual Studio 2010 için bu upgrade olayı bir sihirbaz ile kolayca gerçekleşebilecek.Hokus,pokus…(: