22 Eylül 2012 Cumartesi

Hudson ve Sonar (Continuous Integration Softwares)

http://yazilimsozluk.com/Default.aspx?KonuId=1579 da bir soruya cevap olarak benim tarafımdan yazılmıştır.


•Bir senaryo üzerinden açıklamaya çalışayım.
Hudson ile başlayayım. Mesela ortada bir tane web projesi var. Büyük bir proje yaklaşık 9 kişi gerçekliyor olsun. Proje elemanları arasındaki hiyerarşik düzen de 1 üst yönetici, 1 takım lideri, onun altında 2 tane tecrübeli eleman, bunun altında da 5 tane junior çalışan olsun. Bunlardan 3 ü client side ta 2 si de server side da çalışıyor olsun. Proje için bir ant task hazırlanmış olsun ve herkes kendi serverına ayrı ayrı deploy ederek çalıştırıyor olsun. Bir tane de test server ı olsun ara ara projenin son halinin buraya deploy edilmesi şart olsun. Şimdi hudson dediğimiz amcaya bir ant task vasıtasıyla bu projenin kurulumunu yaparsın. Projede çalışan elemanları tanıtırsın. Hudson amcam senin belirlediğin zamanlarda(svn e her committe,günlük,haftalık,aylık istediğin periodlarda) bu projeyi svn den çeker, kullandığın ant task ı çalıştırır, projeyi derler, testleri çalıştırır, war haline getirir,server a deploy eder ve kodları sonar a atar(sonar ı aşağıda açıklayacağım). Böylece kodun istediğin zamanlarda en güncel hali server da bulunmuş olur. Diyelim ki birisinin commit tinden sonra kod düzgün çalışmamaya başladı, server a deploy edilemedi ya da testlerden biri patladı. Hudson amcam gider bu developer arkadaşa mail atar. Der ki bak senin şu commmit tinden sonra şu kodlar patladı ya da şu test patladı diye. Ne olur başka birinin ruhu bile duymadan developer o hatayı düzeltebilir. Hatta bir ws aracılığıyla cep telefonuna mesaj bile attırtabilirsin(Henüz denemedim). Ayrıca durumdan yöneticiyi takım liderini ya da her kimi istiyorsan onları da haberdar edebilir. Herşey configurasyona kalmış. Bence yazılım geliştirmede inanılmaz faydalar sağlayan bir amcamızdır.

Gelelim sonar a. Yukarıda bir bölümde dedik ki hudson herşeyi yapar kodları sonar a paslar. Sonar ne yapar? Sonar da alır bu kodları analiz eder. Der ki arkadaş bak senin projende 60000 satır kod var bu kodun şu kadarında comment var, bu kadarında yalnış yazımlar var ,şuralarda türkçe karakter kullanmışsın, buralarda treadsafe olmayan bir operasyon var , bak şu metodunun complexity si fazla bak bu metodda çok fazla satır var, bak arkadaş sen if açmışsın ama içini doldurmamışsın bunu niye açtın, bak burda bir for var boşu boşuna dönüyor bu nedir, arkadaş şu metoda niye bu kadar az comment yazdın ve daha sayamıycağım bir çok noktada developerları uyarıyor ve kod kalitesini inanılmaz ölçüde arttırıyor.
Yani bu 2 yazılımı kullanarak verdiği uyarıları kulak arkası yapmayıp uygun şekilde şekillenirse proje, ileriki zamanlarda bakım işleri de çok kolaylaşıyor ve sağlam bir proje olmak için bir adam öne çıkıyor.

Elimden geldiğince anlatmaya çalıştım. Herkese kolay gelsin..

Hiç yorum yok:

Yorum Gönder