Yaklaşık 10 aylık bir çalışmanın sonunda 1 şubat 2011 tarihinde İşbankası Corebanking projesindeki görevimi tamamladım. Corebanking projesi, İsbankası’nın 2 sene önce başlatmış olduğu, Cobol ile geliştirilen Mainframe sistemlerinden açık sistemlere (Java, J2EE) geçişi öngören bir proje. Projenin nihayi amacı uzun vadede bankanın alt yapısını tamamen açık sistemlere taşımak ve Mainframe sistemlerini devre dışı bırakmak.
Yazar arşivleri: Özcan Acar
Maven2 ve OutOfMemory
Danışman olarak çalıştığım bir projenin modüllerini Maven2 kullanacak şekilde yeniden yapılandırdım. Birçok JAR ve WAR dosyası bir araya gelerek büyük bir EAR dosyası oluşturdu. JAR ve WAR’ları oluştururken bir sorun yaşamadım, lakin EAR dosyasını alırken durum farkli idi. EAR projesi için maven clean install komutunu kullandığımda aşağıdaki hata oluşuyordu:
İlk Program Bug’ı
Bug ingilizce dilinde böcek, bilgisayar dillerinde bir program hatası anlamına geliyor. İlk program bug’ı 1947 yılında Grace Murray Hopper’in Harvard Üniversitesi’nde kullandığı Mark II Aiken isimli röle (relay) (resim 1) bazlı hesaplayıcıda (primitif bir bilgisayar) bulundu.
Kim Daha İyi Programcı?
Çoğu zaman programcı adaylarının piyasada en çok talep gören programramlama dilini seçip, bu dili öğrendikleri malum. Bu doğal bir seçim; talep olan yerde arzın bedeli olur. Bu bedel programcının iyi bir maaş ile hayatını sürdürmesi anlamına gelir.
Common Reuse Principle (CRP) – Ortak Yeniden Kullanım Prensibi
Bu prensip hangi sınıfların aynı paket içinde yer alması gerektiği konusuna açıklık getirir. CRP’ye göre beraberce tekrar kullanılabilir yapıda olan sınıfların aynı paket içinde olması gerekir.
Decorator Tasarım Şablonu
Mevcut bir sınıf hiyerarşisini ya da sınıfın yapısını değiştirmeden, oluşturulan nesnelere yeni özelliklerin eklenme işlemini gerçekleştirmek için Decorator tasarım şablonu kullanılır.
K.Maraş Sütçü İmam Üni. – Bilge Programcı – Nasıl Uzman Yazılımcı Olunur ?
25 mart 2010 tarihinde K.Maraş Sütçü İmam Üniversitesi’ne bir sunum yapmak için davet edildim. Seminer videosunu, resimleri ve sunumu bu yazıda bulabilirsiniz.
Özcan Acar
Java Compiler Versiyonu
Bir Java sınıfının hangi Java compiler versiyonu ile derlendiğini görmek için javap komutu aşağıdaki şekilde kullanılır. Okumaya devam et
Bilge Programcı – Nasıl Uzman Yazılımcı Olunur? Seminerinden İzlenimler
24 mart 2010 tarihinde Elazığ Fırat Üniversitesi’ne bir sunum yapmak için davet edildim. Seminer videosunu, resimleri ve sunumu bu yazıda bulabilirsiniz.
Özcan Acar
Yeni KurumsalJava Seminerleri
15 mart’dan 30 mart 2010’a kadar, üniversitelerde ücretsiz KurumsalJava.com seminerleri düzenlemek üzere İstanbul’da bulunacağım. İlgilenler bana acar[AT]unitedinter.net adresinden ulaşabilirler.
Java İle Yazılımı Kavramak
Java ile yazılımı tam anlamıyla kavramak isteyenler mutlaka bu kitabı okumalı! Okumaya devam et
Java JVM’i (Java Virtual Machine) Anlamak
Java JVM’i tam anlamıyla kavramak isteyenler mutlaka bu kitabı okumalı! Okumaya devam et
Java Dilini Kavramak
Java dilini tam anlamıyla kavramak isteyenler mutlaka bu kitabı okumalı! Okumaya devam et
Java’da Finalizer Metodu
Java_tr grubunda aşağıdaki yer alan soru soruldu. Bu soru ve benim bu konudaki düşüncelerim aşağıda yer almaktadır.
Java’da bulmaca sevenlere; Aşağıda ki kod parçası için çıktı ne olur,
“finalized” yazar mı? Constructor’ýnda exception fırlatmış bir nesnenin
finalize işleminden geçmesini bekler misiniz?
public class FinalizerTest {
Java’da Final Anahtar Kelimesi
Java’da final anahtar kelimesi aşağıda yer alan yapılar için kullanılabilir:
- Final sınıf değişkenleri: Final olan bir sınıf değişkenine sadece bir kere değer ataması yapilabilir ve bu atama sadece sınıf konstrüktöründe gerçekleşebilir.
- Final metot parametreleri: Final olarak tanımlanmış bir metot parametresine sadece bir kere değer atanabilir. Metot parametrelerinin tamamen final olarak tanımlamış olmalarında büyük fayda vardır. Bu şekilde parametrenin metot bünyesinde değişikliğe ugrama tehlikesi ortadan kaldırılmış olur.
- Final metotlar: Final olan bir metot ne alt sınıflarca yeniden yüklenebilir (method overloading) ne de saklı (hidden) tutulabilir.
- Final sınıflar: Final olan bir sınıf genişletilerek bir alt sınıf oluşturulamaz.
Covariant Return Types
Java 1.5 ile kullanıma sunulan ve covariant return type ismini taşıyan bir yapı mevcuttur. Java 1.5 öncesi bir alt sınıf, bir üst sınıfın sahip olduğu metodu yeniden implemente etmek (method overriding) istediginde, bu metodun geri döndürdüğü veri tipinin, üst sınıftaki metot ile aynı olması gerekmekteydi. Bunun bir örneği aşağıda yer almaktadır.
Java Enum ile Singleton Tasarım Şablonu
Daha önceki bir yazımda Singleton tasarım şablonunun ne olduğunu ve Java’da nasıl kullanıldığını yakından incelemiştik. Bu yazımda Java 1.5 den itibaren kullanıma sunulan Enum sınıfı ile singleton tasarım şablonunun nasıl kullanılabileceğine değinmek istiyorum.
Oracle’ın Sun ve Java için stratejik planları hakkında ip uçları
JUG (Java User Group) e-posta listesinde olduğum için bana ulaşan bir e-postayı sizlerle paylaşmak istedim. E-posta Oracle’ın Sun ve Java için stratejik planları hakkında ip uçları verebilir…
DBUnit JUnit Entegrasyonu
DBUnit JUnit ile entegre edilerek entegrasyon ve regresyon testlerinin JUnit testleri olarak implemente edilmesi mümkündür. DBUnit JUnit entegrasyonu aşağıdaki şekilde gerçekleştirilebilir. Bilgibankası olarak örnekte HSQLDB kullanılmıştır (bakınız HSQLDB JUnit entegrasyonu). Verilerin dbunit-dataset.xml dosyasında tanımlanmıs olması gerekmektedir. setUp() metodu her test öncesi JUnit frameworkü tarafından koşturulacağı için istenilen veriler test öncesi bilgibankasına eklenmiş ve regresyon testleri için taban oluşturulmuş olacaktır.