<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kurumsal Java Yazılımı &#187; Haberler</title>
	<atom:link href="http://www.kurumsaljava.com/category/haberler/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kurumsaljava.com</link>
	<description>Java Enterprise Architecture by Ozcan Acar</description>
	<lastBuildDate>Fri, 30 Dec 2011 09:28:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SOLID</title>
		<link>http://www.kurumsaljava.com/2011/12/30/solid/</link>
		<comments>http://www.kurumsaljava.com/2011/12/30/solid/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 09:25:34 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[Tasarım Prensipleri]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=1608</guid>
		<description><![CDATA[<p>SOLID (<b>S</b>ingle responsibility, <b>O</b>pen-closed, <b>L</b>iskov substitution, <b>I</b>nterface segregation ve <b>D</b>ependency inversion) yazılım tasarım prensipleri için kullanılan bir kısaltmadır. Yazılım yaparken SOLID uygulandığı taktirde bakımı ve geliştirilmesi kolay yazılım sistemleri oluşturmak mümkündür. En verimli hali <a href="http://www.kurumsaljava.com/2008/11/26/test-gudumlu-yazilim-test-driven-development-tdd/" target=_blank>test güdümlü yazılım</a> ile uygulanır.<span id="more-1608"></span></p>
<table style="width: auto; font-size: 100%; table-layout: fixed; line-height:1.25; margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<th>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
<th>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
<th>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>S</th>
<td valign=top><a href="http://www.kurumsaljava.com/2009/10/14/single-responsibility-principle-srp-tek-sorumluk-prensibi/" target=_blank>SRP</a></td>
<td valign=top>
<a title="Single responsibility principle" href="http://www.kurumsaljava.com/2009/10/14/single-responsibility-principle-srp-tek-sorumluk-prensibi/" target=_blank>Single Responsibility Principle</a><br />
Her yazılım biriminin (sınıf, nesne, metot) tek bir sorumluluğu olmalıdır.
</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>O</th>
<td valign=top><a href="http://www.kurumsaljava.com/2009/10/16/open-closed-principle-ocp-acik-kapali-tasarim-prensibi/" target=_blank>OCP</a></td>
<td valign=top>
<a href="http://www.kurumsaljava.com/2009/10/16/open-closed-principle-ocp-acik-kapali-tasarim-prensibi/" target=_blank>Open/Closed Principle</a><br />
Yazılım birimleri geliştirilmeye açık, değişikliğe kapalı olmalıdır.
</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>L</th>
<td valign=top><a  href="http://www.kurumsaljava.com/2009/10/29/liskov-substitution-principle-lsp-%e2%80%93-liskovun-yerine-gecme-prensibi/" target=_blank>LSP</a></td>
<td valign=top>
<a href="http://www.kurumsaljava.com/2009/10/29/liskov-substitution-principle-lsp-%e2%80%93-liskovun-yerine-gecme-prensibi/" target=_blank>Liskov&#8217;s Substitution Principle</a><br />
Alt sınıflardan oluşturulan nesneler üst sınıfların nesneleriyle yer değiştirdiklerinde aynı davranışı göstermek zorundadırlar.
</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>I</th>
<td valign=top><a href="http://www.kurumsaljava.com/2009/11/17/interface-segregation-principle-isp-%e2%80%93-arayuz-ayirma-prensibi/" target=_blank>ISP</a></td>
<td valign=top>
<a href="http://www.kurumsaljava.com/2009/11/17/interface-segregation-principle-isp-%e2%80%93-arayuz-ayirma-prensibi/" target=_blank>Interface Segregation Principle</a><br />
Herşeyi ihtiva eden interface sınıflar yerine belli bir işlemi yapan interface sınıflar oluşturulmalıdır.</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>D</th>
<td valign=top><a href="http://www.kurumsaljava.com/2009/10/29/dependency-inversion-principle-dip-bagimliliklarin-tersine-cevrilmesi-prensibi/" target=_blank>DIP</a></td>
<td valign=top>
<a href="http://www.kurumsaljava.com/2009/10/29/dependency-inversion-principle-dip-bagimliliklarin-tersine-cevrilmesi-prensibi/" target=_blank>Dependency Inversion Principle</a><br />
Bağımlılıklar soyut sınıflara doğru olmalıdır.
</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>
Diğer tasarım prensipleri için &#8220;<a href="http://www.kurumsaljava.com/category/design/">Tasarım Prensipleri</a>&#8221; bölümüne bakınız.</p>
<p>
<p>
<p>
<i><br />
EOF (End Of Fun)<br />
Özcan Acar<br />
</i></p>
]]></description>
			<content:encoded><![CDATA[<p>SOLID (<b>S</b>ingle responsibility, <b>O</b>pen-closed, <b>L</b>iskov substitution, <b>I</b>nterface segregation ve <b>D</b>ependency inversion) yazılım tasarım prensipleri için kullanılan bir kısaltmadır. Yazılım yaparken SOLID uygulandığı taktirde bakımı ve geliştirilmesi kolay yazılım sistemleri oluşturmak mümkündür. En verimli hali <a href="http://www.kurumsaljava.com/2008/11/26/test-gudumlu-yazilim-test-driven-development-tdd/" target=_blank>test güdümlü yazılım</a> ile uygulanır.<span id="more-1608"></span></p>
<table style="width: auto; font-size: 100%; table-layout: fixed; line-height:1.25; margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<th>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
<th>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
<th>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>S</th>
<td valign=top><a href="http://www.kurumsaljava.com/2009/10/14/single-responsibility-principle-srp-tek-sorumluk-prensibi/" target=_blank>SRP</a></td>
<td valign=top>
<a title="Single responsibility principle" href="http://www.kurumsaljava.com/2009/10/14/single-responsibility-principle-srp-tek-sorumluk-prensibi/" target=_blank>Single Responsibility Principle</a><br />
Her yazılım biriminin (sınıf, nesne, metot) tek bir sorumluluğu olmalıdır.
</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>O</th>
<td valign=top><a href="http://www.kurumsaljava.com/2009/10/16/open-closed-principle-ocp-acik-kapali-tasarim-prensibi/" target=_blank>OCP</a></td>
<td valign=top>
<a href="http://www.kurumsaljava.com/2009/10/16/open-closed-principle-ocp-acik-kapali-tasarim-prensibi/" target=_blank>Open/Closed Principle</a><br />
Yazılım birimleri geliştirilmeye açık, değişikliğe kapalı olmalıdır.
</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>L</th>
<td valign=top><a  href="http://www.kurumsaljava.com/2009/10/29/liskov-substitution-principle-lsp-%e2%80%93-liskovun-yerine-gecme-prensibi/" target=_blank>LSP</a></td>
<td valign=top>
<a href="http://www.kurumsaljava.com/2009/10/29/liskov-substitution-principle-lsp-%e2%80%93-liskovun-yerine-gecme-prensibi/" target=_blank>Liskov&#8217;s Substitution Principle</a><br />
Alt sınıflardan oluşturulan nesneler üst sınıfların nesneleriyle yer değiştirdiklerinde aynı davranışı göstermek zorundadırlar.
</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>I</th>
<td valign=top><a href="http://www.kurumsaljava.com/2009/11/17/interface-segregation-principle-isp-%e2%80%93-arayuz-ayirma-prensibi/" target=_blank>ISP</a></td>
<td valign=top>
<a href="http://www.kurumsaljava.com/2009/11/17/interface-segregation-principle-isp-%e2%80%93-arayuz-ayirma-prensibi/" target=_blank>Interface Segregation Principle</a><br />
Herşeyi ihtiva eden interface sınıflar yerine belli bir işlemi yapan interface sınıflar oluşturulmalıdır.</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
<tr>
<th valign=top>D</th>
<td valign=top><a href="http://www.kurumsaljava.com/2009/10/29/dependency-inversion-principle-dip-bagimliliklarin-tersine-cevrilmesi-prensibi/" target=_blank>DIP</a></td>
<td valign=top>
<a href="http://www.kurumsaljava.com/2009/10/29/dependency-inversion-principle-dip-bagimliliklarin-tersine-cevrilmesi-prensibi/" target=_blank>Dependency Inversion Principle</a><br />
Bağımlılıklar soyut sınıflara doğru olmalıdır.
</td>
</tr>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>
Diğer tasarım prensipleri için &#8220;<a href="http://www.kurumsaljava.com/category/design/">Tasarım Prensipleri</a>&#8221; bölümüne bakınız.</p>
<p>
<p>
<p>
<i><br />
EOF (End Of Fun)<br />
Özcan Acar<br />
</i></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2011%2F12%2F30%2Fsolid%2F&amp;linkname=SOLID"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2011/12/30/solid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Corebanking Next Generation</title>
		<link>http://www.kurumsaljava.com/2011/04/17/corebanking-next-generation/</link>
		<comments>http://www.kurumsaljava.com/2011/04/17/corebanking-next-generation/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 09:42:43 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[Proje Günlüğü]]></category>
		<category><![CDATA[AOP]]></category>
		<category><![CDATA[AspectJ]]></category>
		<category><![CDATA[CBNG]]></category>
		<category><![CDATA[Corebanking]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Nexus]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=1282</guid>
		<description><![CDATA[<p>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.</p>
<p><span id="more-1282"></span></p>
<p>Danışman, teknik ekip lideri ve programcı olarak çalışmış olduğum bu 10 aylık zaman diliminde, Corebanking projesindeki faaliyet alanlarım şu şekilde oldu:</p>
<ul>
<li>Test güdümlü yazılımın proje genelinde kullanımı</li>
<li>Continuous Integration ve Continuous Deployment gibi çevik metotların projeye entegrasyonu</li>
<li>Yazılım sürecinin iterasyon bazlı organizasyonu (Extreme Programming)</li>
<li>Build işlemlerinin otomatize edilmesi (Ant,Maven)</li>
<li>Lokal yazılım geliştirme işlemi için Websphere uygulama sunucusunun devre dışı bırakılması ve uygulama sunucusu kullanmak zorunda kalmadan test güdümlü yazılım yapılabilmesi</li>
<li>Lokal testler için gerekli referans verilerinin cachelenmesi ve uygulama sunucusunun start-up zamanının optimize edilmesi</li>
<li>Veri tabanı üzerindeki yükü azaltmak için proje genelinde bir caching mekanizmasinin implementasyonu (hazelcast)</li>
<li>Maven kullanılarak tüm Corebanking projesinin modüler bir yapıya geçirilmesi</li>
<li>Nexus kurulumu ve  otomatik dependency yönetimi</li>
<li>Performans analizi ve logmalası için AOP (Aspect Oriented Programming) kullanımı</li>
<li>Performans testlerini yapılması ve performans testlerinde ortaya çıkan problemlerin lokalizasyonu ve eliminasyonu</li>
<li>Ekibin çevik süreç, çevik metotlar ve tasarım prensipleri konusunda eğitimi</li>
<li>Code ve architecture review</li>
<li>Açık sistemler ile Mainframe arasındaki komunikasyonu sağlamak için REST tabanlı bir mimarinin oluşturulması (JBoss EasyREST)</li>
</ul>
<p>İlk çalışma alanlarımdan birisi build ve deployment işlemlerini otomatize etmek oldu. Bunun için gerekli Ant skriptleri oluşturdum ve build işlemlerinin merkezi bir yerden tetiklenmesini sağladım. </p>
<p>Bir proje bünyesinde kodun sürekli entegre edilmesi (Continuous Integration) önemli ve gerekli bir işlemdir. Bu şekilde entegrasyon problemlerini zamanında lokalize etmek mümkündür. Bu amaçla Corebanking projesi için Cruise Control kullanarak bir sürekli entegrasyon serveri oluşturdum. Bu server programcıların yaptığı her commit sonunda otomatik olarak tüm kodu Clear Case’den alarak derliyor ve mevcut testleri kosturuyor. Altta yer alan resimlerde de görüldüğü gibi bir build monitörü kullanarak, projelerin entegrasyon işlemlerinin ne durumda olduğunu takip etmemiz mümkün. Herhangi bir kırılma olması durumunda gerekli programcılar email aracılığı ile uyarılıyor. Bunun yanısıra entegrasyon monitörü herkesin gözü önünde olduğundan, entegrasyon sürecinin hangi safhada olduğunu görmek her zaman mümkün.</p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_1.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_1.jpg" alt="" title="isbank_1" width="600" height="450" class="aligncenter size-full wp-image-1286" /></a></p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_1.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_2.jpg" alt="" title="isbank_1" width="600" height="450" class="aligncenter size-full wp-image-1286" /></a></p>
<p>Diğer bir faaliyet alanım performans testleri esnasında performans ölçümünde kullanılabilecek metriklerin oluşturulması idi. Bu amaçla AspectJ (Java’da Aspect Oriented Programming yapmak için kullanılan bir framework) kullanarak perfomans aspektleri oluşturdum. Bu aspektleri kullanılan teknolojiye göre (Webservice, Rest, JDBC) metot bazında işlem tamamlama süresini ölçecek şekilde programladım. Tüm proje bu aspektler kullanılarak derlendikten sonra, kod bazında bir değişiklik yapmak zorunda kalmadan, işlem tamamlama sürelerini ölçmek mümkün oldu. </p>
<pre name="code" class="java">

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

@Aspect(&quot;perthis(execution(public * com.kurumsaljava.core.restapi.*Resource.*(..)))&quot;)
public class RestPerformanceMonitor extends  AbstractPerformanceMonitor
{
    @Before(&quot;execution(public * com.kurumsaljava.restapi.*Resource.*(..))&quot;)
    public void before()
    {
    	startMonitor();
    }

    @After(&quot;execution(public * com.kurumsaljava.restapi.*Resource.*(..))&quot;)
    public void after()
    {
    	stopMonitor(&quot;[performance:rest]&quot;);
    }
}
</pre>
<p>Çevik süreçleri kullanarak iterasyon bazlı proje yönetimi yapabilmek için kullanıcı hikayelerinin  (user story) oluşturulması gerekiyor. Corebanking bünyesindeki bir projenin yazılım sürecini hikaye kartları (story card) kullanarak yapılandırdık. Hikaye kartları üzerinde kullanıcı hikayeleri yer aldı. Aşağıdaki resimlerde görüldüğü gibi çalışma alanımızın bir duvarını hikaye kartlarını barındıracak biçimde şekillendirdik.</p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_3.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_3.jpg" alt="" title="isbank_3" width="600" height="450" class="aligncenter size-full wp-image-1295" /></a></p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_4.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_4.jpg" alt="" title="isbank_3" width="600" height="450" class="aligncenter size-full wp-image-1295" /></a></p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_5.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_5.jpg" alt="" title="isbank_3" width="600" height="450" class="aligncenter size-full wp-image-1295" /></a></p>
<p>Son dört aylık çalışmamın temelini, Corebanking projesinin daha modüler ve geliştirilebilir bir alt yapıya geçirilmesi işlemi oluşturdu. Corebanking uygulamaları, oluşturduğum ve Corebanking Next Generation (CBNG) ismini verdiğim bu yeni alt yapı ile şimdi İşbankasi’nın production sistemlerinde deploy ediliyor. </p>
<p>Neden CBNG&#8217;ye gerek duyulduğunu sizlere kısaca aktarmak istiyorum. Başlangıçta tek bir uygulama olarak yola çıkan Corebanking projesi, zaman içinde büyüyerek, bünyesinde üç ve daha fazla uygulama barındırmaya başlamış. Prensipte birbirlerinden bağımsız olan bu projeler ne yazık ki aynı kod köklerine sahip olduklarından, birbirlerinden bağımsız olarak deploy edilmeleri mümkün olmuyordu. Yaşadığımız en büyük sorun, hazır olmayan ve test edilmemiş kodun, Corebanking bünyesindeki herhangi bir uygulamanın test ya da production sistemlerine çıkmayı istemesi durumunda, bu projeyle beraber gitmek zorunda olmasıydı, çünkü tüm Corebanking uygulamaları bir EAR dosyası olarak deploy ediliyordu. Bir başka sorun ise, proje yöneticilerinin sürekli kendi test ya da production çıkışlarını diğer projelerle koordine etmek zorunda olmaları idi. Bu şartlar altında yeni Corebanking uygulamalarının geliştirilmesi, yani binanın üzerinde yeni katlar çıkılması imkansız bir hal alıyordu.</p>
<p>Buradan yola çıkarak mimari ekip / teknik lider toplantılari bünyesinde Corebanking Next Generation alt yapısına geçiş fikri oluştu ve kısa bir zaman sonra bu yeni alt yapıyı oluşturmak için çalışmalara başladım.</p>
<p>Prensip olarak yeni alt yapının &#8220;Programming in the large&#8221; modeline göre tasarlanması gerekiyordu. Bu modele göre proje bünyesindeki birçok alt proje, ufak ekipler tarafından, birbirlerini etkilemeden, versiyonlanmış modüler ve komponentler kullanılarak geliştirilebilir hale geliyor.</p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_6.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_6.jpg" alt="" title="isbank_6" width="582" height="431" class="aligncenter size-full wp-image-1300"/></a></p>
<p>Yeni alt yapı büyük bir gökdelen inşa etmek yerine, bir site oluşturarak, bu site içerisinde 2-3 katlı villalar kurulmasına izin veriyor. Her bir villayı bir proje olarak düşünürsek, ekipler birbirlerinden bağımsız olarak kendi villalarını oluşturabiliyorlar.</p>
<p>Kulağa hoş gelen bu model, ne yazik ki 2 senelik bir kod tabanına sahip bir projeden yola çıkıldığında uygulaması çok zor bir hal alabilir. Karşılaştığım en büyük problemlerden birisi, her proje tarafından kullanılan ortak sınıfların lokalize edilmesi ve her proje tarafından kullanılabilir bir modül haline getirilmesi oldu. Bunun yanısıra sınıflar arasında sirküler bağımlılıkların (circular dependency)  olması, ortak kullanılabilir modüllerin ortaya çıkmasını zorlayan bir durumdu. Yer yer DRY (Do  not repear yourself) prensibine uyulmadığı için aynı özellikleri taşıyan sınıfların birden fazla lokasyonda bulunması ve konsolide edilmesi karşılaştığım diğer bir sorundu.</p>
<p>İşe mevcut tüm projeleri Maven projesi olacak şekilde yeniden yapılandırarak başladım. Daha sonra Corebanking bünyesindeki en ufak çaplı projeyi seçerek, bu projeyi yeni modele uygun şekilde yeniden yapılandırdım. Bu esnada diğer projelerinde kullanabileceği ortak modüller şekillenmeye başladı. Bu şekilde adım adım ilerleyerek ilk Corebanking uygulamasını CBNG konform hale getirdim. Bu işlemin ardından projenin tüm testlerini (1000 üzerinde acceptance testleri) koşturarak, yeni yapıyı test ettik. Testler yüzde yüz çalışır hale gelinceye kadar yeni alt yapıyı rekonfigüre ettim. Bu işlemler tamamlandıktan sonra yeni alt yapıyı programcı ekibe teslim ettim. Bu şekilde yeni alt yapı sahada yayılmaya başladı. Bu noktadan itibaren iki Corebanking uygulaması, eski ve yeni dünya olarak paralel yaşamaya başladı. Tüm projeyi durdurup, 1-2 ay yeni alt yapıyı oluşturmak için ayıramayacağımız için bu şekilde bir seçim yapmak zorunda kaldık.</p>
<p>Kısa bir zaman sonra ilk CBNG uygulaması bir EAR dosyası olarak production sistemlerinde deploy edildi. Akabinde diğer bir Corebanking uygulamasını aynı şemayi takip ederek eski alt yapıdan yeni alt yapıya uyarladım ve sahada kullanılır hale gelmesini sağladım. Bu sürecin sonunda Corebanking tamemen transform edilmiş ve CBNG olarak hayatını sürdürmeye devam ediyor olacak. Bu gerçekleşene kadar eski ve yeni alt yapı iki değişik EAR olarak yanyana yaşamaya devam edecek.</p>
<p>Lokal repository olarak Nexus serverini kurdum. Bu server bünyesinde ortak kullanılan tüm modüller versiyonlanmış JAR dosyalar olarak yer aldı. Nexus ve Maven bağımlılıkların otomatik yönetimini ve kod birimlerinin ortak ve yeniden kullanımını sağlayan alt  yapı komponentleri. Bu şekilde herhangi bir CBNG projesi ihtiyaç duydugu bir modülü Nexus‘dan temin edebilir. Aynı şekilde bu proje diğer projelere sunmak istediği modülleri versiyonlanmış bir Jar dosyası olarak Nexus bünyesine katabilir.</p>
<p>Benim için şüphesiz en heyecan verici faaliyet alanı CBNG oldu. Geliştirme plarformu olarak kullandığımız RAD 7 (Eclipse 3.2)  mümkün olan tüm engelleri ortaya koyarak, yaptığım işin hergün heyecan verici kalmasını sağladı <img src='http://www.kurumsaljava.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  En büyük sorunlardan birisi RAD‘ın eski bir Eclipse versiyonu olduğu için M2Eclipse pluginini aktüel versiyonunda kullanamıyor olmamdı.  Eski ve birçok bugı olan bir M2Eclipse plugin versiyonu ile çalışmanın ne kadar ve heyecan verici olabileceğini düsünebilirsiniz <img src='http://www.kurumsaljava.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Oluşan birçok problem için birçok workaround bulmak zorunda kaldım. Bu kadar sorunla karşılaşacağımı önceden biliyor olsaydım, acaba CBNG‘yi hayata geçirmeye kalkarmıydım? Beni tanıyanlar bu sorunu cevabını biliyor <img src='http://www.kurumsaljava.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Corebanking Next Generation (CBNG)  hakkında yazabileceğim sayfalar dolusu anılarım var. Lakin banka bünyesinde olup bitenleri çok detaylı bir şekilde anlatmak doğru olmaz. Danışman ya da banka çalısanı olarak dikkat etmemiz gereken en önemli konulardan birisi, gizlilik prensibine uymaktır.</p>
<p>Corebanking projesi bünyesinde birçok yetenekli programcıyla çalışma fırsatı buldum. Bilgi alışverişine açık bir ortamda çalışmak gerçekten çok zevk vericiydi. Bu programcı arkadaşlara bu vesile ile buradan kucak dolusu selam ve sevgilerimi gönderiyorum.</p>
<p>EOF ( End of Fun)</p>
<p>Özcan Acar</p>
]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p><span id="more-1282"></span></p>
<p>Danışman, teknik ekip lideri ve programcı olarak çalışmış olduğum bu 10 aylık zaman diliminde, Corebanking projesindeki faaliyet alanlarım şu şekilde oldu:</p>
<ul>
<li>Test güdümlü yazılımın proje genelinde kullanımı</li>
<li>Continuous Integration ve Continuous Deployment gibi çevik metotların projeye entegrasyonu</li>
<li>Yazılım sürecinin iterasyon bazlı organizasyonu (Extreme Programming)</li>
<li>Build işlemlerinin otomatize edilmesi (Ant,Maven)</li>
<li>Lokal yazılım geliştirme işlemi için Websphere uygulama sunucusunun devre dışı bırakılması ve uygulama sunucusu kullanmak zorunda kalmadan test güdümlü yazılım yapılabilmesi</li>
<li>Lokal testler için gerekli referans verilerinin cachelenmesi ve uygulama sunucusunun start-up zamanının optimize edilmesi</li>
<li>Veri tabanı üzerindeki yükü azaltmak için proje genelinde bir caching mekanizmasinin implementasyonu (hazelcast)</li>
<li>Maven kullanılarak tüm Corebanking projesinin modüler bir yapıya geçirilmesi</li>
<li>Nexus kurulumu ve  otomatik dependency yönetimi</li>
<li>Performans analizi ve logmalası için AOP (Aspect Oriented Programming) kullanımı</li>
<li>Performans testlerini yapılması ve performans testlerinde ortaya çıkan problemlerin lokalizasyonu ve eliminasyonu</li>
<li>Ekibin çevik süreç, çevik metotlar ve tasarım prensipleri konusunda eğitimi</li>
<li>Code ve architecture review</li>
<li>Açık sistemler ile Mainframe arasındaki komunikasyonu sağlamak için REST tabanlı bir mimarinin oluşturulması (JBoss EasyREST)</li>
</ul>
<p>İlk çalışma alanlarımdan birisi build ve deployment işlemlerini otomatize etmek oldu. Bunun için gerekli Ant skriptleri oluşturdum ve build işlemlerinin merkezi bir yerden tetiklenmesini sağladım. </p>
<p>Bir proje bünyesinde kodun sürekli entegre edilmesi (Continuous Integration) önemli ve gerekli bir işlemdir. Bu şekilde entegrasyon problemlerini zamanında lokalize etmek mümkündür. Bu amaçla Corebanking projesi için Cruise Control kullanarak bir sürekli entegrasyon serveri oluşturdum. Bu server programcıların yaptığı her commit sonunda otomatik olarak tüm kodu Clear Case’den alarak derliyor ve mevcut testleri kosturuyor. Altta yer alan resimlerde de görüldüğü gibi bir build monitörü kullanarak, projelerin entegrasyon işlemlerinin ne durumda olduğunu takip etmemiz mümkün. Herhangi bir kırılma olması durumunda gerekli programcılar email aracılığı ile uyarılıyor. Bunun yanısıra entegrasyon monitörü herkesin gözü önünde olduğundan, entegrasyon sürecinin hangi safhada olduğunu görmek her zaman mümkün.</p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_1.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_1.jpg" alt="" title="isbank_1" width="600" height="450" class="aligncenter size-full wp-image-1286" /></a></p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_1.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_2.jpg" alt="" title="isbank_1" width="600" height="450" class="aligncenter size-full wp-image-1286" /></a></p>
<p>Diğer bir faaliyet alanım performans testleri esnasında performans ölçümünde kullanılabilecek metriklerin oluşturulması idi. Bu amaçla AspectJ (Java’da Aspect Oriented Programming yapmak için kullanılan bir framework) kullanarak perfomans aspektleri oluşturdum. Bu aspektleri kullanılan teknolojiye göre (Webservice, Rest, JDBC) metot bazında işlem tamamlama süresini ölçecek şekilde programladım. Tüm proje bu aspektler kullanılarak derlendikten sonra, kod bazında bir değişiklik yapmak zorunda kalmadan, işlem tamamlama sürelerini ölçmek mümkün oldu. </p>
<pre name="code" class="java">

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

@Aspect(&quot;perthis(execution(public * com.kurumsaljava.core.restapi.*Resource.*(..)))&quot;)
public class RestPerformanceMonitor extends  AbstractPerformanceMonitor
{
    @Before(&quot;execution(public * com.kurumsaljava.restapi.*Resource.*(..))&quot;)
    public void before()
    {
    	startMonitor();
    }

    @After(&quot;execution(public * com.kurumsaljava.restapi.*Resource.*(..))&quot;)
    public void after()
    {
    	stopMonitor(&quot;[performance:rest]&quot;);
    }
}
</pre>
<p>Çevik süreçleri kullanarak iterasyon bazlı proje yönetimi yapabilmek için kullanıcı hikayelerinin  (user story) oluşturulması gerekiyor. Corebanking bünyesindeki bir projenin yazılım sürecini hikaye kartları (story card) kullanarak yapılandırdık. Hikaye kartları üzerinde kullanıcı hikayeleri yer aldı. Aşağıdaki resimlerde görüldüğü gibi çalışma alanımızın bir duvarını hikaye kartlarını barındıracak biçimde şekillendirdik.</p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_3.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_3.jpg" alt="" title="isbank_3" width="600" height="450" class="aligncenter size-full wp-image-1295" /></a></p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_4.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_4.jpg" alt="" title="isbank_3" width="600" height="450" class="aligncenter size-full wp-image-1295" /></a></p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_5.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_5.jpg" alt="" title="isbank_3" width="600" height="450" class="aligncenter size-full wp-image-1295" /></a></p>
<p>Son dört aylık çalışmamın temelini, Corebanking projesinin daha modüler ve geliştirilebilir bir alt yapıya geçirilmesi işlemi oluşturdu. Corebanking uygulamaları, oluşturduğum ve Corebanking Next Generation (CBNG) ismini verdiğim bu yeni alt yapı ile şimdi İşbankasi’nın production sistemlerinde deploy ediliyor. </p>
<p>Neden CBNG&#8217;ye gerek duyulduğunu sizlere kısaca aktarmak istiyorum. Başlangıçta tek bir uygulama olarak yola çıkan Corebanking projesi, zaman içinde büyüyerek, bünyesinde üç ve daha fazla uygulama barındırmaya başlamış. Prensipte birbirlerinden bağımsız olan bu projeler ne yazık ki aynı kod köklerine sahip olduklarından, birbirlerinden bağımsız olarak deploy edilmeleri mümkün olmuyordu. Yaşadığımız en büyük sorun, hazır olmayan ve test edilmemiş kodun, Corebanking bünyesindeki herhangi bir uygulamanın test ya da production sistemlerine çıkmayı istemesi durumunda, bu projeyle beraber gitmek zorunda olmasıydı, çünkü tüm Corebanking uygulamaları bir EAR dosyası olarak deploy ediliyordu. Bir başka sorun ise, proje yöneticilerinin sürekli kendi test ya da production çıkışlarını diğer projelerle koordine etmek zorunda olmaları idi. Bu şartlar altında yeni Corebanking uygulamalarının geliştirilmesi, yani binanın üzerinde yeni katlar çıkılması imkansız bir hal alıyordu.</p>
<p>Buradan yola çıkarak mimari ekip / teknik lider toplantılari bünyesinde Corebanking Next Generation alt yapısına geçiş fikri oluştu ve kısa bir zaman sonra bu yeni alt yapıyı oluşturmak için çalışmalara başladım.</p>
<p>Prensip olarak yeni alt yapının &#8220;Programming in the large&#8221; modeline göre tasarlanması gerekiyordu. Bu modele göre proje bünyesindeki birçok alt proje, ufak ekipler tarafından, birbirlerini etkilemeden, versiyonlanmış modüler ve komponentler kullanılarak geliştirilebilir hale geliyor.</p>
<p><a href="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_6.jpg"><img src="http://www.kurumsaljava.com/wp-content/uploads/2011/04/isbank_6.jpg" alt="" title="isbank_6" width="582" height="431" class="aligncenter size-full wp-image-1300"/></a></p>
<p>Yeni alt yapı büyük bir gökdelen inşa etmek yerine, bir site oluşturarak, bu site içerisinde 2-3 katlı villalar kurulmasına izin veriyor. Her bir villayı bir proje olarak düşünürsek, ekipler birbirlerinden bağımsız olarak kendi villalarını oluşturabiliyorlar.</p>
<p>Kulağa hoş gelen bu model, ne yazik ki 2 senelik bir kod tabanına sahip bir projeden yola çıkıldığında uygulaması çok zor bir hal alabilir. Karşılaştığım en büyük problemlerden birisi, her proje tarafından kullanılan ortak sınıfların lokalize edilmesi ve her proje tarafından kullanılabilir bir modül haline getirilmesi oldu. Bunun yanısıra sınıflar arasında sirküler bağımlılıkların (circular dependency)  olması, ortak kullanılabilir modüllerin ortaya çıkmasını zorlayan bir durumdu. Yer yer DRY (Do  not repear yourself) prensibine uyulmadığı için aynı özellikleri taşıyan sınıfların birden fazla lokasyonda bulunması ve konsolide edilmesi karşılaştığım diğer bir sorundu.</p>
<p>İşe mevcut tüm projeleri Maven projesi olacak şekilde yeniden yapılandırarak başladım. Daha sonra Corebanking bünyesindeki en ufak çaplı projeyi seçerek, bu projeyi yeni modele uygun şekilde yeniden yapılandırdım. Bu esnada diğer projelerinde kullanabileceği ortak modüller şekillenmeye başladı. Bu şekilde adım adım ilerleyerek ilk Corebanking uygulamasını CBNG konform hale getirdim. Bu işlemin ardından projenin tüm testlerini (1000 üzerinde acceptance testleri) koşturarak, yeni yapıyı test ettik. Testler yüzde yüz çalışır hale gelinceye kadar yeni alt yapıyı rekonfigüre ettim. Bu işlemler tamamlandıktan sonra yeni alt yapıyı programcı ekibe teslim ettim. Bu şekilde yeni alt yapı sahada yayılmaya başladı. Bu noktadan itibaren iki Corebanking uygulaması, eski ve yeni dünya olarak paralel yaşamaya başladı. Tüm projeyi durdurup, 1-2 ay yeni alt yapıyı oluşturmak için ayıramayacağımız için bu şekilde bir seçim yapmak zorunda kaldık.</p>
<p>Kısa bir zaman sonra ilk CBNG uygulaması bir EAR dosyası olarak production sistemlerinde deploy edildi. Akabinde diğer bir Corebanking uygulamasını aynı şemayi takip ederek eski alt yapıdan yeni alt yapıya uyarladım ve sahada kullanılır hale gelmesini sağladım. Bu sürecin sonunda Corebanking tamemen transform edilmiş ve CBNG olarak hayatını sürdürmeye devam ediyor olacak. Bu gerçekleşene kadar eski ve yeni alt yapı iki değişik EAR olarak yanyana yaşamaya devam edecek.</p>
<p>Lokal repository olarak Nexus serverini kurdum. Bu server bünyesinde ortak kullanılan tüm modüller versiyonlanmış JAR dosyalar olarak yer aldı. Nexus ve Maven bağımlılıkların otomatik yönetimini ve kod birimlerinin ortak ve yeniden kullanımını sağlayan alt  yapı komponentleri. Bu şekilde herhangi bir CBNG projesi ihtiyaç duydugu bir modülü Nexus‘dan temin edebilir. Aynı şekilde bu proje diğer projelere sunmak istediği modülleri versiyonlanmış bir Jar dosyası olarak Nexus bünyesine katabilir.</p>
<p>Benim için şüphesiz en heyecan verici faaliyet alanı CBNG oldu. Geliştirme plarformu olarak kullandığımız RAD 7 (Eclipse 3.2)  mümkün olan tüm engelleri ortaya koyarak, yaptığım işin hergün heyecan verici kalmasını sağladı <img src='http://www.kurumsaljava.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  En büyük sorunlardan birisi RAD‘ın eski bir Eclipse versiyonu olduğu için M2Eclipse pluginini aktüel versiyonunda kullanamıyor olmamdı.  Eski ve birçok bugı olan bir M2Eclipse plugin versiyonu ile çalışmanın ne kadar ve heyecan verici olabileceğini düsünebilirsiniz <img src='http://www.kurumsaljava.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Oluşan birçok problem için birçok workaround bulmak zorunda kaldım. Bu kadar sorunla karşılaşacağımı önceden biliyor olsaydım, acaba CBNG‘yi hayata geçirmeye kalkarmıydım? Beni tanıyanlar bu sorunu cevabını biliyor <img src='http://www.kurumsaljava.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Corebanking Next Generation (CBNG)  hakkında yazabileceğim sayfalar dolusu anılarım var. Lakin banka bünyesinde olup bitenleri çok detaylı bir şekilde anlatmak doğru olmaz. Danışman ya da banka çalısanı olarak dikkat etmemiz gereken en önemli konulardan birisi, gizlilik prensibine uymaktır.</p>
<p>Corebanking projesi bünyesinde birçok yetenekli programcıyla çalışma fırsatı buldum. Bilgi alışverişine açık bir ortamda çalışmak gerçekten çok zevk vericiydi. Bu programcı arkadaşlara bu vesile ile buradan kucak dolusu selam ve sevgilerimi gönderiyorum.</p>
<p>EOF ( End of Fun)</p>
<p>Özcan Acar</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2011%2F04%2F17%2Fcorebanking-next-generation%2F&amp;linkname=Corebanking%20Next%20Generation"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2011/04/17/corebanking-next-generation/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>K.Maraş Sütçü İmam Üni. &#8211; Bilge Programcı &#8211; Nasıl Uzman Yazılımcı Olunur ?</title>
		<link>http://www.kurumsaljava.com/2010/07/03/k-maras-sutcu-imam-uni-bilge-programci-nasil-uzman-yazilimci-olunur/</link>
		<comments>http://www.kurumsaljava.com/2010/07/03/k-maras-sutcu-imam-uni-bilge-programci-nasil-uzman-yazilimci-olunur/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 05:47:19 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[KurumsalJava Seminerleri]]></category>
		<category><![CDATA[Bilge Programcı]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=1189</guid>
		<description><![CDATA[<p>25 mart 2010 tarihinde K.Maraş Sütçü İmam Üniversitesi&#8217;ne bir sunum yapmak için davet edildim. Seminer videosunu, resimleri ve sunumu bu yazıda bulabilirsiniz.</p>
<p>Özcan Acar</p>
<p>
<span id="more-1189"></span><br />
<object width="600" height="450"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11966103&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11966103&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"></embed></object></p>
<p><img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_1.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_2.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_3.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_4.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_5.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_6.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_7.jpg">
<p>Sunum dosyasını PDF olarak aşağıdaki linkten edinebilirsiniz.</p>
<div style="width:595px" id="__ss_4118473"> <iframe src="http://www.slideshare.net/slideshow/embed_code/4118473" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div>
<p><i><br />
EOF (End Of Fun)<br />
Özcan Acar</p>
<p></i></p>
]]></description>
			<content:encoded><![CDATA[<p>25 mart 2010 tarihinde K.Maraş Sütçü İmam Üniversitesi&#8217;ne bir sunum yapmak için davet edildim. Seminer videosunu, resimleri ve sunumu bu yazıda bulabilirsiniz.</p>
<p>Özcan Acar</p>
<p>
<span id="more-1189"></span><br />
<object width="600" height="450"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11966103&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11966103&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"></embed></object></p>
<p><img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_1.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_2.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_3.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_4.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_5.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_6.jpg">
<p>
<img src="http://www.kurumsaljava.com/wp-content/uploads/2010/07/maras_7.jpg">
<p>Sunum dosyasını PDF olarak aşağıdaki linkten edinebilirsiniz.<br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
<div style="width:595px" id="__ss_4118473"> <iframe src="http://www.slideshare.net/slideshow/embed_code/4118473" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div>
<p><i><br />
EOF (End Of Fun)<br />
Özcan Acar</p>
<p></i></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2010%2F07%2F03%2Fk-maras-sutcu-imam-uni-bilge-programci-nasil-uzman-yazilimci-olunur%2F&amp;linkname=K.Mara%C5%9F%20S%C3%BCt%C3%A7%C3%BC%20%C4%B0mam%20%C3%9Cni.%20%26%238211%3B%20Bilge%20Programc%C4%B1%20%26%238211%3B%20Nas%C4%B1l%20Uzman%20Yaz%C4%B1l%C4%B1mc%C4%B1%20Olunur%20%3F"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2010/07/03/k-maras-sutcu-imam-uni-bilge-programci-nasil-uzman-yazilimci-olunur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bilge Programcı &#8211; Nasıl Uzman Yazılımcı Olunur? Seminerinden İzlenimler</title>
		<link>http://www.kurumsaljava.com/2010/05/22/bilge-programci-nasil-uzman-yazilimci-olunur-seminerinden-izlenimler/</link>
		<comments>http://www.kurumsaljava.com/2010/05/22/bilge-programci-nasil-uzman-yazilimci-olunur-seminerinden-izlenimler/#comments</comments>
		<pubDate>Sat, 22 May 2010 11:00:07 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[KurumsalJava Seminerleri]]></category>
		<category><![CDATA[Bilge Programcı]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=1146</guid>
		<description><![CDATA[<p>24 mart 2010 tarihinde Elazığ Fırat Üniversitesi&#8217;ne bir sunum yapmak için davet edildim. Seminer videosunu, resimleri ve sunumu bu yazıda bulabilirsiniz.</p>
<p>Özcan Acar</p>
<p>
<span id="more-1146"></span><br />
<object width="600" height="450"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11880753&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11880753&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"></embed></object></p>
<p><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_390">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_384">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_385">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_386">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_387">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_388">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_389">
<p>Sunum dosyasını PDF olarak aşağıdaki linkten edinebilirsiniz.</p>
<div style="width:595px" id="__ss_4118473"> <iframe src="http://www.slideshare.net/slideshow/embed_code/4118473" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div>
<p><i><br />
EOF (End Of Fun)<br />
Özcan Acar</p>
<p></i></p>
]]></description>
			<content:encoded><![CDATA[<p>24 mart 2010 tarihinde Elazığ Fırat Üniversitesi&#8217;ne bir sunum yapmak için davet edildim. Seminer videosunu, resimleri ve sunumu bu yazıda bulabilirsiniz.</p>
<p>Özcan Acar</p>
<p>
<span id="more-1146"></span><br />
<object width="600" height="450"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11880753&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11880753&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"></embed></object></p>
<p><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_390">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_384">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_385">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_386">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_387">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_388">
<p>
<img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_389">
<p>Sunum dosyasını PDF olarak aşağıdaki linkten edinebilirsiniz.<br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
<div style="width:595px" id="__ss_4118473"> <iframe src="http://www.slideshare.net/slideshow/embed_code/4118473" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div>
<p><i><br />
EOF (End Of Fun)<br />
Özcan Acar</p>
<p></i></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2010%2F05%2F22%2Fbilge-programci-nasil-uzman-yazilimci-olunur-seminerinden-izlenimler%2F&amp;linkname=Bilge%20Programc%C4%B1%20%26%238211%3B%20Nas%C4%B1l%20Uzman%20Yaz%C4%B1l%C4%B1mc%C4%B1%20Olunur%3F%20Seminerinden%20%C4%B0zlenimler"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2010/05/22/bilge-programci-nasil-uzman-yazilimci-olunur-seminerinden-izlenimler/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CETURK Kıbrıs Java ve Kariyer Günü</title>
		<link>http://www.kurumsaljava.com/2010/03/31/ceturk-kibris-java-ve-kariyer-gunu/</link>
		<comments>http://www.kurumsaljava.com/2010/03/31/ceturk-kibris-java-ve-kariyer-gunu/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 09:11:38 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[KurumsalJava Seminerleri]]></category>
		<category><![CDATA[Bilge Programcı]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=1131</guid>
		<description><![CDATA[<p>CETURK tarafından 3 nisan 2010 tarihinde Kıbrıs Doğu Akdeniz Üniversitesi&#8217;nde düzenlenen Java ve Kariyer Gününe &#8220;Bilge Programcı. Nasıl uzman yazılımcı olunur?&#8221; başlıklı sunumumla katılıyorum.</p>
<p><span id="more-1131"></span></p>
<p><center><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_375"></center></p>
<p>Detaylar için <a href="http://www.ceturk.com/haberler/ceturk-kibris-java-ve-kariyer-gunu-2.html">bakınız >></a></p>
]]></description>
			<content:encoded><![CDATA[<p>CETURK tarafından 3 nisan 2010 tarihinde Kıbrıs Doğu Akdeniz Üniversitesi&#8217;nde düzenlenen Java ve Kariyer Gününe &#8220;Bilge Programcı. Nasıl uzman yazılımcı olunur?&#8221; başlıklı sunumumla katılıyorum.</p>
<p><span id="more-1131"></span></p>
<p><center><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_375"></center></p>
<p>Detaylar için <a href="http://www.ceturk.com/haberler/ceturk-kibris-java-ve-kariyer-gunu-2.html">bakınız >></a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2010%2F03%2F31%2Fceturk-kibris-java-ve-kariyer-gunu%2F&amp;linkname=CETURK%20K%C4%B1br%C4%B1s%20Java%20ve%20Kariyer%20G%C3%BCn%C3%BC"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2010/03/31/ceturk-kibris-java-ve-kariyer-gunu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kurumsal Java Akademisi Seminerleri Başlıyor!</title>
		<link>http://www.kurumsaljava.com/2010/03/17/kurumsal-java-akademisi-seminerleri-basliyor/</link>
		<comments>http://www.kurumsaljava.com/2010/03/17/kurumsal-java-akademisi-seminerleri-basliyor/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 18:39:08 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[KurumsalJava Seminerleri]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=1120</guid>
		<description><![CDATA[<p><a href="http://www.kurumsaljavaakademisi.com/egitim/seminer-takvimi/" target=_blank>Detaylar için bakınız.</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kurumsaljavaakademisi.com/egitim/seminer-takvimi/" target=_blank>Detaylar için bakınız.</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2010%2F03%2F17%2Fkurumsal-java-akademisi-seminerleri-basliyor%2F&amp;linkname=Kurumsal%20Java%20Akademisi%20Seminerleri%20Ba%C5%9Fl%C4%B1yor%21"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2010/03/17/kurumsal-java-akademisi-seminerleri-basliyor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Türkiye&#8217;den İlk Java Champion Özcan Acar</title>
		<link>http://www.kurumsaljava.com/2009/12/23/turkiyeden-ilk-java-champion-ozcan-acar/</link>
		<comments>http://www.kurumsaljava.com/2009/12/23/turkiyeden-ilk-java-champion-ozcan-acar/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 23:20:01 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[Java Champion]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=1000</guid>
		<description><![CDATA[<p>Bugün Java Champion olarak seçildim. Benim için çok mutlu bir gün, çünkü bir Java yazılımcısının edinebileceği en yüksek ünvanlardan birisi Java Champion ünvanıdır. James Gosling, Bill Burke, David Flanagan ve Josh Bloch gibi tanınmış sahışların Java Champion ünvanına sahip olduklarını ve dünya çapında 100 civarında Java Champion ünvanına sahip yazılımcının olduğunu düşünürsek bu ünvanın ne kadar itibarlı ve kıymetli olduğunu görebiliriz.</p>
<p><span id="more-1000"></span></p>
<p>Bir Java Champion nedir? Bu konu hakkında detaylı bilgiyi  <a href="https://java-champions.dev.java.net/" target=_blank>Java Champion websayfasından</a> edinebilirsiniz. Java Champion Sun tarafından hayata geçirilmiş ve desteklenen bir proje. Java Championlar Sun tarafından seçilme<b>me</b>ktedir. Java Champion adayları, mevcut Java Championların kendi aralarında yaptıkları oylama sonucunda bu ünvanı kazanırlar. Java Championlar Sun firmasından bağımsız olarak çalışan, Java platformunun gelişmesine katkıda bulunan yazar, eğitmen, senior mimar ve yazılımcılardır.</p>
<p><center><a href="http://java-champions.dev.java.net" target=_blank><img border=1 src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_357"/></a><br /> Resim 1</center></p>
<p>Resim 1 de resmi <a href="http://java-champions.dev.java.net" target=_blank>Java Champion websayfasında</a> konu hakkındaki haber yer almaktadır.</p>
<p><a href="http://java-champions.dev.java.net/#newchampions" target=_blank>Yeni Java Championlar listesinde ismimi görebilirsiniz.</a></p>
<p>Özcan Acar<br />
Java Champion</p>
]]></description>
			<content:encoded><![CDATA[<p>Bugün Java Champion olarak seçildim. Benim için çok mutlu bir gün, çünkü bir Java yazılımcısının edinebileceği en yüksek ünvanlardan birisi Java Champion ünvanıdır. James Gosling, Bill Burke, David Flanagan ve Josh Bloch gibi tanınmış sahışların Java Champion ünvanına sahip olduklarını ve dünya çapında 100 civarında Java Champion ünvanına sahip yazılımcının olduğunu düşünürsek bu ünvanın ne kadar itibarlı ve kıymetli olduğunu görebiliriz.</p>
<p><span id="more-1000"></span></p>
<p>Bir Java Champion nedir? Bu konu hakkında detaylı bilgiyi  <a href="https://java-champions.dev.java.net/" target=_blank>Java Champion websayfasından</a> edinebilirsiniz. Java Champion Sun tarafından hayata geçirilmiş ve desteklenen bir proje. Java Championlar Sun tarafından seçilme<b>me</b>ktedir. Java Champion adayları, mevcut Java Championların kendi aralarında yaptıkları oylama sonucunda bu ünvanı kazanırlar. Java Championlar Sun firmasından bağımsız olarak çalışan, Java platformunun gelişmesine katkıda bulunan yazar, eğitmen, senior mimar ve yazılımcılardır.</p>
<p><center><a href="http://java-champions.dev.java.net" target=_blank><img border=1 src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_357"/></a><br /> Resim 1</center></p>
<p>Resim 1 de resmi <a href="http://java-champions.dev.java.net" target=_blank>Java Champion websayfasında</a> konu hakkındaki haber yer almaktadır.</p>
<p><a href="http://java-champions.dev.java.net/#newchampions" target=_blank>Yeni Java Championlar listesinde ismimi görebilirsiniz.</a></p>
<p>Özcan Acar<br />
Java Champion</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2009%2F12%2F23%2Fturkiyeden-ilk-java-champion-ozcan-acar%2F&amp;linkname=T%C3%BCrkiye%26%238217%3Bden%20%C4%B0lk%20Java%20Champion%20%C3%96zcan%20Acar"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2009/12/23/turkiyeden-ilk-java-champion-ozcan-acar/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Devoxx 2009 İzlenimleri</title>
		<link>http://www.kurumsaljava.com/2009/11/21/devoxx-2009-izlenimleri/</link>
		<comments>http://www.kurumsaljava.com/2009/11/21/devoxx-2009-izlenimleri/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 13:25:41 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[Devoxx]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=958</guid>
		<description><![CDATA[<p>Geçen hafta Belçika&#8217;da düzenlenen Devoxx konferansına katıldım. Java ile ilgilenenlerin mutlaka katılması gereken bir konferans. Bir hafta boyunca değişik konularda, konularında uzman şahısların sunum yaptıkları bu konferansta James Gosling, Robert C. Martin, Chris Richardson, Scott Ambler gibi ustaları dinleme ve onlarla sohbet etme fırsatı bulabiliyorsunuz.</p>
<p><span id="more-958"></span></p>
<p>Aşağıda yer alan fotografları Devoxx&#8217;da çektim.</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_336" alt="" /><br />
Resim 1</p>
<p>Resim 1 de <strong><a href="http://devoxx.com/display/DV09/Agile+Mythbusters" target="_blank">Agile Mythbuster</a></strong> konulu sunumu yapan <strong>Scott Ambler</strong> yer almakta. Çevik süreçlerde oluşan bazı efsaneleri tematize eden bu sunumda Scott Ambler bazı efsanelerin nasıl oluştuğunu ve nasıl çürütüldüğünü istatistikler üzerinde dinleyicilere aktardı. En çok hoşuma giden efsane ise, çevik süreçlerde sertifikasyonun çok önemli olduğu idi. Scott Ambler&#8217;e göre 3 sene doktora yapmış bir şahıs ile 2 günlük bir seminer ardından sertifika almış bir şahısı aynı kefeye koymak çok mantık dışı <img src='http://www.kurumsaljava.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ben de kendisiyle aynı fikri paylaşıyorum. Sertifika peşinde koşmaktansa, konuyu derinlemesine araştırıp, anlamak ve uygulamak çok daha faydalı olacaktır.</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_337" alt="" /><br />
Resim 2</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_338" alt="" /><br />
Resim 3</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_339" alt="" /><br />
Resim 4</p>
<p>Resim 4 de <strong><a href="http://devoxx.com/display/DV09/Amazon+Elastic+Compute+Cloud+%28EC2%29" target="_blank">Architecting Robust Applications for Amazon EC2</a></strong> konulu sunumu yapan <strong>Chris Richardson</strong> yer almakta. Chris Richardson <strong>POJO in Action</strong> konulu kitabın yazarı. Bu kitap yazılımcı kariyerimde beni en çok etkileyen kitaplardan birisidir. Chris Richardson ustayı Devoxx da dinleme firsatı bulmak benim için büyük bir şerefdi.</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_334" alt="" /><br />
Resim 5</p>
<p style="text-align: left;">Resim 5 de Java&#8217;nın babası James Gosling ve ben yer alıyorum.</p>
<p style="text-align: left;"> </p>
<p style="text-align: center;"><a href="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_340"><img class="alignnone" src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_340" alt="" width="600" height="450" /></a></p>
<p style="text-align: center;">Resim 6</p>
<p style="text-align: left;">Resim 6 da programcılar için hazırlanan anketlerden birisi yer almakta. Resim 6 da yer alan ankette, programcılara kullandıkları yapılandırma (build tool) aracı sorulmuş. Çoğunluğu maven ve ant yapılandırma aracı oluşturmakta. Benim son zamanlardaki favorim maven.</p>
<p style="text-align: center;"><a href="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_341"><img class="alignnone" src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_341" alt="" width="600" height="450" /></a></p>
<p style="text-align: center;">Resim 7</p>
<p style="text-align: left;">Resim 7 de değişik ülkelerde faaliyet gösteren JUG (Java User Group) liderlerinin katıldığı toplantıdan bir resim yer almakta. Bu toplantıda JUG liderleri Java hakkındaki sorularını Java&#8217;nın babası James Gosling&#8217;e yönelttiler. Bu toplantıda bir çok JUG lideri ile tanışma firsatı buldum. Türkiye&#8217;de de bir JUG kurmanın zamanı geldi. Kısa bir zaman sonra <a href="http://www.jugtr.org" target="_blank">JugTR.org</a> adresinde Türkiye&#8217;nin ilk resmi JUG&#8217;u faaliyete geçecek. Bu konudakı çalışmalarım devam etmekte.</p>
<p style="text-align: left;"> </p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_342" alt="" /><br />
Resim 8</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_343" alt="" /><br />
Resim 9</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_344" alt="" /><br />
Resim 10</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_345" alt="" /><br />
Resim 11</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_347" alt="" /><br />
Resim 12</p>
]]></description>
			<content:encoded><![CDATA[<p>Geçen hafta Belçika&#8217;da düzenlenen Devoxx konferansına katıldım. Java ile ilgilenenlerin mutlaka katılması gereken bir konferans. Bir hafta boyunca değişik konularda, konularında uzman şahısların sunum yaptıkları bu konferansta James Gosling, Robert C. Martin, Chris Richardson, Scott Ambler gibi ustaları dinleme ve onlarla sohbet etme fırsatı bulabiliyorsunuz.</p>
<p><span id="more-958"></span></p>
<p>Aşağıda yer alan fotografları Devoxx&#8217;da çektim.</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_336" alt="" /><br />
Resim 1</p>
<p>Resim 1 de <strong><a href="http://devoxx.com/display/DV09/Agile+Mythbusters" target="_blank">Agile Mythbuster</a></strong> konulu sunumu yapan <strong>Scott Ambler</strong> yer almakta. Çevik süreçlerde oluşan bazı efsaneleri tematize eden bu sunumda Scott Ambler bazı efsanelerin nasıl oluştuğunu ve nasıl çürütüldüğünü istatistikler üzerinde dinleyicilere aktardı. En çok hoşuma giden efsane ise, çevik süreçlerde sertifikasyonun çok önemli olduğu idi. Scott Ambler&#8217;e göre 3 sene doktora yapmış bir şahıs ile 2 günlük bir seminer ardından sertifika almış bir şahısı aynı kefeye koymak çok mantık dışı <img src='http://www.kurumsaljava.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ben de kendisiyle aynı fikri paylaşıyorum. Sertifika peşinde koşmaktansa, konuyu derinlemesine araştırıp, anlamak ve uygulamak çok daha faydalı olacaktır.</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_337" alt="" /><br />
Resim 2</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_338" alt="" /><br />
Resim 3</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_339" alt="" /><br />
Resim 4</p>
<p>Resim 4 de <strong><a href="http://devoxx.com/display/DV09/Amazon+Elastic+Compute+Cloud+%28EC2%29" target="_blank">Architecting Robust Applications for Amazon EC2</a></strong> konulu sunumu yapan <strong>Chris Richardson</strong> yer almakta. Chris Richardson <strong>POJO in Action</strong> konulu kitabın yazarı. Bu kitap yazılımcı kariyerimde beni en çok etkileyen kitaplardan birisidir. Chris Richardson ustayı Devoxx da dinleme firsatı bulmak benim için büyük bir şerefdi.</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_334" alt="" /><br />
Resim 5</p>
<p style="text-align: left;">Resim 5 de Java&#8217;nın babası James Gosling ve ben yer alıyorum.</p>
<p style="text-align: left;"> </p>
<p style="text-align: center;"><a href="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_340"><img class="alignnone" src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_340" alt="" width="600" height="450" /></a></p>
<p style="text-align: center;">Resim 6</p>
<p style="text-align: left;">Resim 6 da programcılar için hazırlanan anketlerden birisi yer almakta. Resim 6 da yer alan ankette, programcılara kullandıkları yapılandırma (build tool) aracı sorulmuş. Çoğunluğu maven ve ant yapılandırma aracı oluşturmakta. Benim son zamanlardaki favorim maven.</p>
<p style="text-align: center;"><a href="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_341"><img class="alignnone" src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_341" alt="" width="600" height="450" /></a></p>
<p style="text-align: center;">Resim 7</p>
<p style="text-align: left;">Resim 7 de değişik ülkelerde faaliyet gösteren JUG (Java User Group) liderlerinin katıldığı toplantıdan bir resim yer almakta. Bu toplantıda JUG liderleri Java hakkındaki sorularını Java&#8217;nın babası James Gosling&#8217;e yönelttiler. Bu toplantıda bir çok JUG lideri ile tanışma firsatı buldum. Türkiye&#8217;de de bir JUG kurmanın zamanı geldi. Kısa bir zaman sonra <a href="http://www.jugtr.org" target="_blank">JugTR.org</a> adresinde Türkiye&#8217;nin ilk resmi JUG&#8217;u faaliyete geçecek. Bu konudakı çalışmalarım devam etmekte.</p>
<p style="text-align: left;"> </p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_342" alt="" /><br />
Resim 8</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_343" alt="" /><br />
Resim 9</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_344" alt="" /><br />
Resim 10</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_345" alt="" /><br />
Resim 11</p>
<p style="text-align: center;"><img src="http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&amp;d=prod&amp;k=kurumsaljava_347" alt="" /><br />
Resim 12</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2009%2F11%2F21%2Fdevoxx-2009-izlenimleri%2F&amp;linkname=Devoxx%202009%20%C4%B0zlenimleri"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2009/11/21/devoxx-2009-izlenimleri/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Test Güdümlü Yazılımın Tasarım Üzerindeki Etkileri</title>
		<link>http://www.kurumsaljava.com/2009/11/17/test-gudumlu-yazilimin-tasarim-uzerindeki-etkileri/</link>
		<comments>http://www.kurumsaljava.com/2009/11/17/test-gudumlu-yazilimin-tasarim-uzerindeki-etkileri/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 08:37:35 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Extreme Programming]]></category>
		<category><![CDATA[Haberler]]></category>
		<category><![CDATA[Yazılım Testleri]]></category>
		<category><![CDATA[Tasarım]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=925</guid>
		<description><![CDATA[<p>Yazılımcı olarak çalıştığım projelerde geleneksel  ve çevik yazılım süreçleri  hakkında tecrübe edinme firsatı buldum. En son kitabım bir çevik süreç olan Extreme Programming  hakkındadır. Edindiğim tecrübeler doğrultusunda çevik süreçlerin, klasik yazılım süreçlerine nazaran bakımı ve geliştirilmesi daha kolay yazılım sistemlerinin oluşturulmasında daha avantajlı olduğunu söyleyebilirim. </p>
<p><span id="more-925"></span></p>
<p>Bu yazımda sizelere test güdümlü yazılım sürecinin, yazılım tasarımı üzerindeki etkilerini bir örnek üzerinde aktarmak istiyorum. TDD  ile birlikte oluşan tasarım, kendiliğinden oluşan birşey değildir. Testler şekil aldıkça, oluşturmak istediğimiz tasarımın modeli de gözümüzde canlanmaya başlar. Oluşturduğumuz testler, programın gelecekteki  kullanıcılarını (client) simule ettiği için, programın nasıl kullanılacağını testler bünyesinde gözlemlemek kolaylaşmaktadır. Bu süreç, sınıfların ve metotların kullanıcı gözüyle (client) tasarlanmasını sağlar. Bu sayede basit ve kullanışlı API (Application Programming Interface)’ler oluşur. Test güdümlü yazılım tasarımı devamlı zorlar ve yetersiz kaldığı yerlerde refactoring yöntemleriyle yenilenmesini sağlar. Bu süreç sayesinde kendisini devamlı yenileyen ve yeni gereksinimlere cevap veren bir tasarım oluşur.</p>
<p><span lang="TR">Bu yazıyı PDF olarak edinebilirsiniz.</span></p>
<p><i><br />
EOF (End of Fun)<br />
Özcan Acar<br />
</i></p>
]]></description>
			<content:encoded><![CDATA[<p>Yazılımcı olarak çalıştığım projelerde geleneksel  ve çevik yazılım süreçleri  hakkında tecrübe edinme firsatı buldum. En son kitabım bir çevik süreç olan Extreme Programming  hakkındadır. Edindiğim tecrübeler doğrultusunda çevik süreçlerin, klasik yazılım süreçlerine nazaran bakımı ve geliştirilmesi daha kolay yazılım sistemlerinin oluşturulmasında daha avantajlı olduğunu söyleyebilirim. </p>
<p><span id="more-925"></span></p>
<p>Bu yazımda sizelere test güdümlü yazılım sürecinin, yazılım tasarımı üzerindeki etkilerini bir örnek üzerinde aktarmak istiyorum. TDD  ile birlikte oluşan tasarım, kendiliğinden oluşan birşey değildir. Testler şekil aldıkça, oluşturmak istediğimiz tasarımın modeli de gözümüzde canlanmaya başlar. Oluşturduğumuz testler, programın gelecekteki  kullanıcılarını (client) simule ettiği için, programın nasıl kullanılacağını testler bünyesinde gözlemlemek kolaylaşmaktadır. Bu süreç, sınıfların ve metotların kullanıcı gözüyle (client) tasarlanmasını sağlar. Bu sayede basit ve kullanışlı API (Application Programming Interface)’ler oluşur. Test güdümlü yazılım tasarımı devamlı zorlar ve yetersiz kaldığı yerlerde refactoring yöntemleriyle yenilenmesini sağlar. Bu süreç sayesinde kendisini devamlı yenileyen ve yeni gereksinimlere cevap veren bir tasarım oluşur.</p>
<p><span lang="TR">Bu yazıyı PDF olarak edinebilirsiniz.</span></p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p><i><br />
EOF (End of Fun)<br />
Özcan Acar<br />
</i></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2009%2F11%2F17%2Ftest-gudumlu-yazilimin-tasarim-uzerindeki-etkileri%2F&amp;linkname=Test%20G%C3%BCd%C3%BCml%C3%BC%20Yaz%C4%B1l%C4%B1m%C4%B1n%20Tasar%C4%B1m%20%C3%9Czerindeki%20Etkileri"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2009/11/17/test-gudumlu-yazilimin-tasarim-uzerindeki-etkileri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ata&#8217;mızı Saygıyla Anıyoruz</title>
		<link>http://www.kurumsaljava.com/2009/11/11/atamizi-saygiyla-aniyoruz/</link>
		<comments>http://www.kurumsaljava.com/2009/11/11/atamizi-saygiyla-aniyoruz/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 13:05:07 +0000</pubDate>
		<dc:creator>Özcan Acar</dc:creator>
				<category><![CDATA[Haberler]]></category>

		<guid isPermaLink="false">http://www.kurumsaljava.com/?p=916</guid>
		<description><![CDATA[<p>Ata&#8217;mızı ölüm yıl dönümünde saygı ve minnetle anıyoruz. Türk gençliği olarak vatanımıza ve içinde yaşadığımız topluma sahip çıkalım. Yaptığımız her şeyin her zaman karşılığını beklemeyelim. Güzel bir gelecek için hep beraber el ele verip, karşılık beklemeden çalışmamız gerekiyor. Ata&#8217;mızı kendimize örnek alalım ve vatanımız ve insanlarımız için fadakar olalım.</p>
<p><span id="more-916"></span></p>
<p>
<center> <img src= http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_328></center></p>
]]></description>
			<content:encoded><![CDATA[<p>Ata&#8217;mızı ölüm yıl dönümünde saygı ve minnetle anıyoruz. Türk gençliği olarak vatanımıza ve içinde yaşadığımız topluma sahip çıkalım. Yaptığımız her şeyin her zaman karşılığını beklemeyelim. Güzel bir gelecek için hep beraber el ele verip, karşılık beklemeden çalışmamız gerekiyor. Ata&#8217;mızı kendimize örnek alalım ve vatanımız ve insanlarımız için fadakar olalım.</p>
<p><span id="more-916"></span></p>
<p>
<center> <img src= http://image.kurumsaljava.com/storage/image.jsp?ct=image/jpg&#038;d=prod&#038;k=kurumsaljava_328></center></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.kurumsaljava.com%2F2009%2F11%2F11%2Fatamizi-saygiyla-aniyoruz%2F&amp;linkname=Ata%26%238217%3Bm%C4%B1z%C4%B1%20Sayg%C4%B1yla%20An%C4%B1yoruz"><img src="http://www.kurumsaljava.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.kurumsaljava.com/2009/11/11/atamizi-saygiyla-aniyoruz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

