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

jİstanbul ve Koç Üniversitesi, 27-28 Eylül 2014 tarihinde gerçekleşecek, 2 günlük bir javascript etkinliği düzenliyor. jsist olarak adlandırılan etkinlikte, javascript ve javascript ile ilgili son teknolojiler, konusunda tecrübeli kişiler tarafından anlatılacak. Önümüzdeki günlerde içeriği de paylaşılacak olan etkinlik ile ilgili ayrıntıları ve katılım bilgilerini http://jsist.org/ adresinden takip edebilirsiniz. Elinizi çabuk tutun derim. Etkinlik katılım ücreti şu sıralar indirimde.

speakers

IT sektöründe çalışan insanların en büyük problemlerinden biri de, yaptığı işi, sektör ile alakası olmayan ya da teknolojiyi çok takip etmeyen ya da kullanmayan insanlara, yaptığı işi tarif etmek olsa gerek… En basitinden, hangimizin anneannesi,babaannesi ve dedesi yaptığımız işten haberdar… Ne yapıyorum ben diye sorsam, stress mtress yaratıp, sıkıntıya sokarım diye korkuyorum…Yaşlı insanlar sonuçta… (:

Bindiğiniz takside muhabbet açmaya çalışan şöförün, “Ne iş yapıyorsun? Bilgisayarcısın demek…Şimdi tam olarak ne oluyor yani?” şeklindeki ölümcül soruları bir yana,  eşin, dostun ya da aile bireylerinin “Yaa şimdi bu bilgisayarların en iyisi hangisi? En iyi virüs programı ne? Bizim ufaklık oyun oynamasın, nasıl engelleriz?” gibi soruları bir yana olsun, bir şekilde cevap vermemiz beklenen sorular her an, her yerde karşınıza çıkıyordur. Şahsen benim çok çıkıyor… Hatta kimi zaman, öyle zor(?) sorular geliyor ki ne diyeceğimi şaşırıyorum. Bu kadar mı kompleks ya da bu kadar mı bir şey ifade etmeyen bir mesleğim var diye düşünmüyor değilim…

software_developer

Donanım tarafıyla ilgili olsam, biraz daha kolay olacaktı sanırım bazı şeyler… En azından somut olarak bir çıktısı var…Ama yazılıma yoğunlaşınca, uzaya roket çıkartıyormuşum izlenimi, “en ucuz ve en hızlı bilgisayar şimdi hangisi” sorusuna verdiğim cevabın tatminsizliği ve sonrasındaki “yaaa sen de, hiç bir şey bilmiyorsun” tepkisiyle alt üst oluyor…Üzülüyorum…:D

Yazılım yapıyorum diyince,  yetmeyeceğini bildiğimden “Bilgisayarda kullandığınız o programlar var ya, işte onları bilgisayarın anlayacağı şekilde kodlar ile yazıyorum” diye efendi efendi anlatmaya çalışsam da, “Kağıda mı yazıyorsunuz peki?” ya da “Benim anlamadığım şeyi, bilgisayar nasıl anlıyor?” şeklinde tepkiler gelince, bazen isyan da etmiyor değilim… Teknoloji hayatımıza girdikçe, insanoğlunun da merak ve öğrenme isteği artıyor doğal olarak; hak veriyor ve efendiliğimden dolayı da söylemek istediklerimi söyleyemiyorum…

Dışardan bir insan gözü ile baktığımda da, bir programın arkasında atılan taklaların, algoritmaların, tasarım kalıplarının, “yok efendim burada “IoC” implementasyonu yaptım ki, şöyle olsun”, “burada DDD presinplerini kullandım”, “servis alt yapısı çok süper ve stabil oldu, aferim bana” gibi konuların bir hiç olduğunu görüyorum…Daha da üzülüyorum…

Neyse, yine efendiliğimi koruyup burada bitiriyorum şimdilik… 😀

Geçtiğimiz aylarda, Microsoft, geliştiriciler için bir çok yeniliği ve yeni ürünü sundu. Bunlardan sanırım en çok merak uyandıran ASP.NET vNext oldu desem çok yanılmış olmam.

Bugün itibari ile bu yenilikleri kapsayan ve daha bir çok yenilik ile tanışmamızı sağlayacak olan Visual Studio’nun yeni, evet yanlış okumadınız, “yeni” versiyonun ilk CTP’sini yayınladı. Visual Studio “14” adıyla yayınlanan bu CTP’yi bu adresten indirip kurabilirsiniz.

Bu CTP versiyonunda, ASP.NET vNext ile duyurulan yenilikleri geliştirebileceğiniz ortama, Rosyln’nin yeniliklerine sahip olmuş olacaksınız. İlgileniyorsanız mutlaka kurun ve kurcalayın derim. Ancak Microsoft’un da altını çizdiği bir noktayı, ben de belirtim; mutlaka ayrı bir bilgisayara ya da VM’e ve önceki Visual Studio versiyonlarının olmadığı bir şekilde kurun.

Son zamanlarda çevremde konusu geçtiği için “fazla mesai” ve “sinir-stres” ile ilgili bir şeyler karalamak istedim. Bir nevi sesli düşünme belki…Neyse…Esnek çalışma saatleri altında, IT sektöründe bir şekilde “fazla mesai” kavramı kendine yer bulmuş; bazen güzel sonuçlara vesile olsa da, çoğu zaman çok can yakan bir kavram aslında. Zamanında bu ikisini de çok yaşadığım diyebilirim. “Fazla mesai”, bazı problemlerin “sinir-stres” kıvamının çok yüksek olması ile çirkinleşen bir olay aslında…Yoksa yapılan işin kalitesini arttırma isteği ile güzel sonuçları da oluyor. Ama ne yazık ki can yakan kısmı daha çok…

Kimse normal çalışma saatleri dışında, bir şirkette fazladan çalışmayı tercih etmez. Sektöre yeni girmiş ve bilgiye aç insanlar da olsa bir süre sonra, herkes kendi zamanını yönetmeyi ve korumayı ister. Bu mesleğinizi ve yaptığınız işi çok sevseniz bile geçerli olan bir durum. Bu noktada; eee madem tercih edilen bir şey değil, peki neden “fazla mesai” yapıyoruz sorusu herkesin sorduğu bir sorudur sanırım. Bu soruya, yapılan işin yönetimi ve yapılma şekilleri başta olmak üzere herkesin söyleyecek, şikayet edecek bir şeyi mutlaka vardır. Üst düzey yöneticeden, geliştiriciye, sistemciden, proje yöneticisine kadar her IT çalışanının, çok da doğru tespitleri mutlaka vardır. Kısaca, şikayet etmekte herkes haklı…Ama peki çözüm? Tam bir bilinmez…

Aslında bütün olay müşteri-proje ilişkisinin, tüm paydaşlar tarafından düzgün yönetilmemesinden kaynaklanıyor.“Deadline” kavramı, proje teslim tarihi değil de, ruhu teslim tarihi olarak çirkin bir hal alıyor. İlk zamanlarda güllük gülistanlık olan proje, sıkışık bir takvim içerisinde, kalitesiz bir duruma düşüyor. “Fazla mesai”ler, bug’lar, bitmeyen geceler de ek olarak yanında geliyor…

Bir geliştiricinin “Bu 2 hafta da olmaz, 3 hafta da biter, 2 hafta da isteniyorsa, şu eksik olur.” gibi yorumları yönetici/müdür tarafından dikkate alınmazsa, aynı şekilde yönetici/müdür bunu düzgün bir şekilde müşteriye/üst yönetime anlatmazsa, alt pozisyondaki paydaşlar öncelikli olmak koşulu ile herkes bir süre sonra olumsuz etkilenir, -ki etkileniyor da. Kimisine “fazla mesai”, kimisine “sinir-stres” şeklinde yansıyor ne yazık ki… Bu süreçler içinde, bir de araya kişisel çıkarlar ve egolar girdi mi, offff eğlenceye gel… Sözde, her şey projeyi zamanında teslim etmek için… Ama pratikte gelinen durum pek iç açıcı olmuyor.

Devam…

Çok uzun süredir yazmıyormuşum bir şeyler…Bunun bile farkında değildim, ne feci…Geçtiğimiz günlerde Microsoft, TechEd etkinliğinde, ASP.NET ile ilgili açıkladığı yeni şeylerin gazı ile, belki aradaki boşluğu kapatırım.(İç ses: Yalannn!!! :P)

Neyse, fazla dağılmadan paylaşmak istediğim konuya geliyorum hemen…ASP.NET vNEXT…Geçtiğimiz haftalarda Microsoft, TechEd North America etkinliğinde ASP.NET ile ilgili gelecek vizyonunu ve nelerin geleceğini ilk defa paylaştı. Oldukça şaşırtıcı ve merak uyandırıcı konular, önümüzdeki aylarda bayaa karşımıza çıkacak gibi. Bu büyük yenilikler, geliştirilen uygulamalara nasıl yansıyor olacak, ayrıca merak ettiğim bir konu ama zamanı gelince hep beraber görüyor ve hatta içinde olacağız sanırım.

.NET vNext
Öncelikle gelen en büyük yenilik, CLR’ın server ve cloud için optimize edilmiş olması. Bu sayede, sunucuda çalışan web uygulamalarının, standart .NET Framework CLR’ından ayrı, cloud/server senaryolarına uygun bir CLR ile daha performanslı çalışabilmesi düşünülmüş. Yani web uygulamasının çalıştığı CLR, artık tüm .NET Framework CLR’ını içermek zorunda kalmayacak. Bu hız ve kaynak kullanımı yönünde oldukça olumlu bir gelişme.

Bu gelişmenin bir çıktısı olarak da, ASP.NET vNext ile artık sadece gerekli olan CLR bileşenlerini sunuculara deploy etmeniz mümkün olabilecek. Farklı versiyondaki bileşenleri,farklı uygulamalarda kullanabiliyor olacaksınız. Yani bir web uygulamanız MVC.v1.dll’ini kullanırken, diğer uygulamanız MVC.v2.dll’ini kullanabilecek.(MVC.vX örnek olarak uydurduğum CLR bileşeni :P) Ve bu bileşenler NuGet paketleri ile yönetilebilecek.

Bu noktada “Dependency Injection” kavramının ASP.NET vNext ile beraber built-in olarak geldiğini de belirtmekte fayda var. Kendi seçeceğiniz IoC ile bağımlılıkları yönetebiliyor olacaksınız.

MVC, Web API, ve Web Pages gibi kavramlar tek bir çatı altında, MVC6 adında bir araya geliyor. Bu ne demek? MVC Controller’ları ve Web API’nin yapabildiği ortak şeyler artık tek bir yapı ile ortak olacak. İnternette dolanan bütün tartışmalar bitecek yani (:
Ortak bir routing yapısı, ortak bir filter yapısı falan gibi…Ve bu yeni çatının System.Web’e olan bağlılığı gibi bir durumu da yok. Bu noktada HttpContext’in memory’deki obje yapısının değiştiğini ve büyük ölçüde küçüldüğünün de altını çizebilirim.

ASP.NET vNext ile artık uygulamaları, IIS dışında, kendi geliştireceğimiz process’lerde de host edebilecek konuma geleceğiz. Bu da lightweight uygulamalar için komple IIS kaynaklarını kullanmak zorluluğunu kısmen de olsa ortadan kaldıracak.

Bir güzel ve değişik yenilik ise, ASP.NET vNext ile compile edilmiş bir *.dll zorunluluğunun kalkması. Rosyln sayesinde(compiler-as-service) runtime sırasında compile işlemi gerçekleşebilecek. Yani kodu değiştirip, sadece browser’de refresh yapmanız değişikliği görmenizi sağlayacak…

Ve son olarak bütün bu ASP.NET vNext’in open-source ve platform bağımsız(Linux, Mac OS X) olacağını söyleyerek heyecanımı sizle paylaşmayı bitirebilirim sanırım.

İlerleyen zamanlarda daha fazla ayrıntı, oynayacak, kurcalayacak daha fazla şey çıkacaktır. Onları da zaman buldukça ve tabi heyecanımı korudukça paylaşmaya çalışacağım.

Daha fazla ayrıntıyı http://www.asp.net/vnext adresinde bulabilir ve gelişmeleri oradan takip edebilirsiniz. https://github.com/aspnet/home adresinden GitHub’a ulaşabilir, kendiniz de kurcalayabilirsiniz.

Ayrıca örnek olarak http://www.asp.net/vnext/overview/aspnet-vnext/walkthrough-mvc-music-store adresindeki örnek uygulamaya bakmanızı tavsiye ederim.

Şimdilik bu kadar…