Dekra Projesi

7.1.2009 tarihinden itibaren Stuttgart (Almanya) şehrinde bulunan Dekra firması için J2EE danışman (freelancer) olarak işe başladım. 6 aylık proje sözleşmesi imzaladım. Dekra mühendislik hizmetleri veren bir firma. Hizmet yelpazesi otomobil vizesinden, binalarda kullanılan asansörlerin kontrolüne kadar değişik alanları kapsıyor.

Okumaya devam et

CETURK Java Teknolojileri Ankara Etkinliği

3 ocak 2009 tarihinde Ankara Çankaya üniversitesinde CETURK tarafından düzenlenen Java teknolojileri seminerine konuşmacı olarak katılacağım. Apache Wicket framework hakkında bir sunum yapacağım. Bu konu hakkındaki yazımı http://www.kurumsaljava.com/2008/12/25/web-framework-gokyuzunde-yeni-bir-yildiz-wicket/ adresinden temin edebilirsiniz.

Okumaya devam et

Agile Software Development

Büyük usta Robert Cecil Martin tarafından kaleme alınan Agile Software Development isimli kitapta çevik yazılım ile ilgili prensipler ve pratikler yer almaktadır. Özellikle tasarım prensiplerinin detaylı anlatım bulduğu kitabın, her yazılım mühendisi tarafından mutlaka okunması gereken bir kaynak kitap olarak görebiliriz.

Okumaya devam et

Çevik Süreç Nedir?

Yazılım sektörü yıllardan beri kan kaybediyor. Ama artık taze kan bulundu ve hastalığın tedavisi kolaylaştı. Çözüm çevik süreçler!

Günümüze kadar uzanan süreçte yazılım sektöründe yapılan projeler nereye varacağı belli bile olmayan büyük maceralar haline gelmiştir. Bunun başlıca sebebi kullanılan yazılım yöntemlerinin gereksinimlere cevap verecek yapıda olmamasıdır. Çevik süreçler bu sorunu çözecek nitelikte.

Okumaya devam et

Data Access Object (DAO) Tasarım Şablonu

Birçok programın var olma nedeni veriler üzerinde işlem yapmak,verileri bilgibankalarında depolamak ve bu verileri tekrar edinmektir. Bu böyle olunca, verilerin program tarafından nasıl bilgibankalarına konulduğu ve tekrar edinildiği önem kazanmaktadır. Data Access Objects (DAO) tasarım şablonu ile, kullanılan veritabanına erişim ve veri depolama-edinme işlemi daha soyutlaştırılarak, diğer katmanların veritabanına olan bağımlılıkları azaltılır. DAO ile diğer katmanlar etkilenmeden veritabanı ve bilgibankası değiştirilebilir. Daha öncede belirttiğim gibi, amacımız birbirini kullanan ama birbirine bağımlılıkları çok az olan katmanlar oluşturmak ve gerekli olduğu zaman bir katmanı, diğer katmanlar etkilenmeden değiştirebilmek olmalıdır. Katmanlar arası bağımlılık interface sınıfları üzerinden olduğu sürece bu amacımıza her zaman ulaşabiliriz.

Okumaya devam et

Yazılım Test Türleri

Yazılım sürecinde oluşturulan sistemin kalite kontrolü yazılım testleri ile yapılır. Bu bölümde yazılım testlerin nasıl hazırlandığını yakından inceleyeceğiz. Bir sonraki bölümünde yer alan test güdümlü yazılımı (Test Driven Development – TDD) uygulayabilmek için yazılım test konseptlerinin bilinmesi gerekmektedir. Java tabanlı sistemlerde testler JUnit çatısı kullanılarak hazırlanır.

Okumaya devam et

Web Aplikasyonlarında Yüksek Performans için Caching Mekanizmaları

Facebook gibi, aynı anda binlerce insanın kullandığı web platformlarının temel sıkıntısı
kullanılan kaynakların (hardware, software) yetersiz kalmasıdır. Kullanıcı sayısı arttıkça
sistem kaynaklarının da artırılması gerekmektedir. Bu genelde bilgibankası için yeni server
sistemlerini takviyesiyle gerçekleşir ya da mevcut server sistemlerinin hafıza (ram) alanlarının
genişletilmesiyle. Kullanıcı sayısı çoğu platformlarda her gün arttığı için, kaynak kapasitenin
artırılması da kaçınılmazdır. Web girişimciliğinde alt yapı giderlerinin önemli bir rol
oynadığını düşünecek olursak, her kaynak kapasite artırımı, girişimcinin sırtına ek gider
bindirecektir.

Okumaya devam et

Singleton (Tekillik) Tasarım Şablonu

Bazı şartlar altında bir sınıftan sadece bir nesnenin oluşturulması ve oluşturulan bu nesnenin
tüm sistemde kullanılması gerekebilir. Örneğin bilgibankası için bir connection pool
(bilgibankası bağlantı havuzu) sadece bir defa oluşturulmalı ve kullanılmalıdır. Bu durumda
Singleton tasarım şablonu kullanılarak, bir sınıftan sadece bir nesnenin oluşturulması
sağlanabilir. Okumaya devam et

Sürekli Entegrasyon (Continuous Integration)

Sürekli entegrasyon (Continuous Integration = CI) kod üzerinde yapılan her değişikliğin ardından, tüm sistemin çalışır durumda olduğunu, yapılan değişikliğin sistemin bazı bölümlerinde kırılmalara yol açmadığını tespit etmek için kullanılan yöntemdir. Kırılmaları tespit edebilmek için testlere (JUnit) ihtiyaç duyulmaktadır. Bu testler, yapılan değişikliğin neticesi olarak yeni bir yapı (build) hazırlandıktan sonra otomatik olarak çalıştırılır. Yapılan değişiklik yeni yapının bir parçası olduğu için, testlerde oluşan hatalar, yapılan değişikliğin sistemi kırdığı anlamına gelmektedir. Bu durumdan tüm programcılar haberdar edilerek, hatanın bir an önce giderilmesi ve testlerin her zaman olumlu sonuç vermesi sağlanır. Sürekli entegrasyon ile programcılar tarafından kod üzerinde yapılan çalışmalar neticesinde her zaman çalışır bir sürümün oluşması sağlanmış olur. Okumaya devam et

Test Güdümlü Yazılım – Test Driven Development (TDD)

 

Günümüzde kurumsal projelerin büyük bir bölümü geleneksel yazılım  metotları ile gerçekleştirilmektedir. Müşteri gereksinimleri en son detayına kadar kağıda döküldükten sonra, programcılar dokumente edilen gereksinimler doğrultusunda yazılımı gerçekleştirmektedirler. Eğer proje bütçesi yeterli ise, yazılım süreci sona erdikten sonra testler hazırlanarak, yazılım sistemi test edilmektedir. çoğu zaman hiçbir unit testin yapılmadığı sistemlerin firmalar tarafından kritik iş alanlarında kullanıldığını görmek mümkündür. Bu tür yazılım sistemlerinde oluşan hatalar (Bug)  firmanın sunduğu hizmetleri kısıtlamakta ve en kötü ihtimalle firmanın para kaybetmesine sebep olmaktadır.

Okumaya devam et

Extreme Programming Nedir?

En popüler çevik süreçlerden ( Agile Process) birisi XP olarak bilinen Extreme Programming’dir. Kent Beck ve arkadaşları tarafından 1996 yılında Chrysler firmasında yapılan bir proje bünyesinde oluşan XP, ihtiva ettiği basit ama bir o kadar etkili yöntemlerle yazılım sektöründe yeni bir rüzgarın esmesini sağlamıştır.

Okumaya devam et