Yazılım

NodeJS Notları

Bu bölümde NodeJS hakkındaki notlarımı paylaşacağım.

Java Magazine Temmuz-Ağustos 2013 Sayısı Çıktı

Konu:

Oracle'ın online Java dergisi olan Java Magazine'nin Temmuz-Ağustos sayısı çıktı. Ücretsiz olarak okuyabilir ya da PDF olarak indirebilirsiniz: http://www.oraclejavamagazine-digital.com/javamagazine/july_august_2013

Bu sayının içeriği genel olarak şöyle;

  • İlk sayfalar genel olarak JavaOne etkinliğine ayrılmış. Konuşmacılarla yapılan kısa söyleşiler bulunuyor.
  • Ardından performans konusu işleniyor. Günde 400 milyon tweet'in atıldığı, 1.6 milyar aramanın yapıldığı Twitter'in JVM üzerinde çalışmasından bahsediliyor. Twitter 2010'un sonlarından yaşanan yüklenme problemlerinden sonra Java ve Scala ile yazılan servisleri ile yürümeye başlamış. Twitter'ın yazılım mühendisliği direktörü Robert Benson'ın dediğine göre, JVM'e geçişle sadece performans değil, gözlemlenebilirlik de artmış.
  • Göze çarpan bir diğer konu ise Java 8 ile beraber gelen Lambda Expression'ları. Fonksiyonların objelere bağlı olduğu Java'da bazılarına göre büyük eksiklik olarak nitelendirilen 'anonim metodlar' Java 8 ile artık kullanılabilecek.

Diğer başlıklar ise şunlar;

  • Java HotSpot VM'de önbellek
  • NetBeans Java EE 7 desteği
  • OpenDolphin ile kurumsal JavaFX
  • Veri trafiğini analize ederek MapReduce öğrenmek
  • Java ME ile fotoğraf paylaşım uygulaması

Kamuda Yazılım Projeleri

Konu:

php-ist İstanbul PHP Konferansı (2013) geçtiğimiz günlerde gerçekleşti. Bu konferansta konuşmacı olan değerli yazılımcı dostum Hüseyin Mert, kamuda yazılım projelerinin ne durumda olduğunu, genel itibariyle PHP üzerinden anlatmış. PHP ile pek yakın değilim ve konuşmanın PHP içeriğinden uzağım. Yine de PHP yerine herhangi diğer bir dili düşünecek olursak; şüphesiz ki Hüseyin hocamın söylediklerinden tüm yazılımcılar için çıkarılacak dersler var. Sunumun videosu şurada: http://www.paylas.com/video/istanbul-php-konferansi-huseyin-mert

Kendimce videodan çıkardığım dersler;

- Kamu kurumları (ve aslında tüm şirketler / herkes) 'çalışan', 'patlamayan' / 'çökmeyen', çökse de hızlı bir şekilde tekrar çalışır hale getirilebilen, sıkıntılar olsa bile sunum katmanında, (yazılımcı olmayan) herhangi bir insan için anlaşılır olan mesajlar gösteren yazılımlar istiyor. Eğer yazılımınız patladığında ekrana anlaşılmayan yazılım terimleriyle dolu hata mesajları getiriyorsa, bu görünen her bir yazılım terimi, yöneticilerin bilinçaltına 'kötü' olarak kazınıyor.

- Kamu kurumları her daim 'destek' alabilecekleri ürünleri tercih ederler. Kısa zaman zarfında patlayan-çatlayan yazılımın (hatta genel olarak tüm sistemin) imdadına koşacak özel ya da tüzel kişiler bulmak imkansız ya da zorsa tercih edilmez. Dolayısıyla Oracle, Microsoft gibi büyük oyuncular gerçek anlamda destek verip vermemesi önemli değil ancak 'destek' verecekmiş gibi 'ben buradayım, ne zaman olursa arayabilirsiniz' görüntüsü (intibaı) veriyorsa 'güvenilir' oluyorlar. Bu bir ihtiyaç, o yüzden bir yazılım dili ya da ürününü iyi bir yere getirmek istiyorsak, göstermelik bile olsa 'destek' şart.

- Dokümantasyon şart. Bir şekilde yazılımlar üretiyoruz ve bunları kullanıyoruz. Dokümantasyonu olmayan yazılımlar revaçta. Tamam, kodu okuyarak yazılımın ne yaptığı anlaşılıyor ama işin içine giren yeni biri bu projeyi anlayana kadar çok uzun bir müddet geçiyor. Kısa zamanda halledilebilecek mantığı uzun bir zamanda kavrıyor. Dolayısıyla insanlara yazılımınızı ya da ürününüzün devamlılığını kanıtlayamama ihitmali ortaya çıkıyor. Gün geliyor, yazılımı geliştirmek yerine baştan yazmaya karar veriliyor ve bunun belki de en büyük nedeni kötü yazılmış, daha doğrusu yazılmamış dokümantasyon, anlaşılmayan kod parçaları oluyor.

- Testler yapılmıyor, yük anlaşılmıyor. Küçük ölçekte tıkır tıkır işleyen sistemlerde özellikle büyük yüklere açıldığında patladığını ya da 'sistemin göçtüğünü' görüyoruz. Genel anlamda yapılan yazılım yerinde olsa da tüm sistem yük testine tabi tutulmadığından, yük geldiğinde sıkıntılar ortaya çıkıyor ve genel anlamda yine yazılımın kendisi 'kötü' oluyor. Yazılımınız iyi olabilir, belki de donanım yetersizliğinden ya da konfigürasyon yanlışlığından sıkıntıya düştünüz, ancak yük testini yapmadığınızdan sistem gün geldi çöktü ve fatura donanım eksikliğine değil, yazılıma, ürünlere hatta yazılım diline çıktı. Bu noktadan sonra '... kötü bir programlama dili' olarak anılmaya başlıyor.

Kısaca, işler 'adam gibi' yapılmadığı için sonuçta adı kötüye çıkıyor ve bundan hepimiz etkileniyoruz. Daha iyi bir yazılım dünyası için es geçtiğimiz standartları önemsemekte fayda var.

SaaS Ders Notları

Berkeley Üniversitesi'nden Armando Fox ve David Patterson'ın internet üzerinden ücretsiz olarak verdiği CS169 SaaS derslerinden aldığım notları paylaşmaya çalışacağım.

Derse Giriş

Legacy SW vs Beautiful SW:
Müşteri ihtiyaçlarını karşılayan fakat gelişime açık olmayan yazılıma Legacy software adını veriyorlar. Bu tip yazılımlarda %60 bakım maliyeti yeni şeyler eklemek için, %17 hataları gidermek için gerekiyor.
Bunun yerine gelişime açık Beautiful SW öneriliyor.
Waterfall - Spiral - Agile
Waterfall yöntemi uzun bir sürece dayanıyor. Dokümantasyon çok daha net olmalı. Bu tip geliştirme NASA'nın Curiosity ve benzeri projeleri için iyi olabilir. Çünkü müşteri çok hızlı bir şekilde değişim ve gelişim istemeyecektir.

Dependency Injection - Bağımlılıkların Zerki

Konu:

'Dependency Injection' her yazılımcının en azından kıyısından köşesinden bilmesi gereken bir terim. Bunun kafada tam şekillenmesi, somutlaşması için birilerinin çizip anlatması gerekiyordu. Anthony Ferrara bunu yapmış. Her ne kadar anlatımı bir miktar PHP üzerinden olsa da her yazılımcının anlayabileceği nitelikte anlattığını düşünüyorum. Via tserpico

Sayfalar

Subscribe to RSS - Yazılım