All entries by this author

Refactoring Oturumu (Video)

Eki 20th, 2011 | By Özcan Acar | Category: Eğitim Videoları, Refactoring

Bu refactoring oturumu bünyesinde mevcut sınıfı aşağıda yer alan refactoring metotlarını kullanarak yeniden yapılandırdım:



Geçici Değişkenlerin Sorguya Dönüştürülmesi (Replace Temp with Query)

Eki 19th, 2011 | By Özcan Acar | Category: Refactoring

Bir metot bünyesinde bir işlemin sonucu geçici bir değişkende saklanabilir. Aşağıda yer alan kod örneğinde basePrice geçici bir değişkendir ve ihtiva ettiği değer fiyat * adet şeklinde hesaplanmaktadır. Replace Temp with Query refactoring metodunu kullanılarak geçici değişkenin değerini elde etmek için kullanılan yapı yeni bir metot bünyesinde taşınır. Geçici değişkenin kullanıldığı diğer alanlar metot ismiyle değiştirilir. Bu şekilde yapılan işlemin başka metotlar bünyesinde kullanılması sağlanır.



Parametrele Değer Atamasının Kaldırılması (Remove Assignments to Parameters)

Eki 16th, 2011 | By Özcan Acar | Category: Refactoring

Metot imzasında yer alan parametrelere metot bünyesinde değer atanmamalıdır. Bu gibi atamalar istenmeyen sonuçlar doğurabilir. Remove Assignments to Parameters refactoring metodu kullanılarak bu tür parametre değer atamaları geçici degişkenlere yapılmalıdır.



Yeni Metot Oluşturma (Extract Method)

Eki 16th, 2011 | By Özcan Acar | Category: Refactoring

Uzun metotları daha okunabilir ve kompak hale getirmek için Extract Method refactoring metodunu kullanabiliriz.


private Double calculatePrice(double price, String locale) {
		Double result;
		double taxRate = 0;
		if (isCountryGermany(locale)) {
			taxRate = TAX_RAT_GERMANY;
		} else if (isCountryTurkishRepublic(locale)) {
			taxRate = TAX_RAT_TURKISH_REPUBLIC;
		}
		Double tax = Double.valueOf( (price / 100) * taxRate);
		result = Double.valueOf(tax.doubleValue() + price);
		return result;
	}


Koşulları Parçalarına Ayırma (Reverse Conditional)

Eki 15th, 2011 | By Özcan Acar | Category: Refactoring

TaxCalculator sınıfı, uygulamanın kullanıldığı ülkeye bağlı olarak katma değer vergisini ihtiva eden fiyatı hesaplamak için kullanılmaktadır.

[source language='java']
package com.kurumsaljava.refactoring.reverseconditional;



AgileMentor.com

Eyl 2nd, 2011 | By Özcan Acar | Category: Genel

AgileMentor.com ismini verdiğim ve çevik süreçlerle ilgili danışmanlık ve koçluk hizmetleri sunduğum yeni bir websayfası hazırladım. Beğeninize sunuyorum.

Link: http://www.agilementor.com



IDL Compiler

May 9th, 2011 | By Özcan Acar | Category: Püf Noktası

Bu aralar bir Corba projesinde çalışıyorum. Corba teknolojisinde interface tanımlama dili olarak IDL kullanılıyor. Eğer bir Corba servisine erişimi sağlamak için size bir IDL verildi ise, bu IDL´i kullanarak client sınıflarını oluşturabilirsiniz. Bu işlem için aşağidaki sınıfı oluşturdum.



Tek Kelimeyle Harika!

May 6th, 2011 | By Özcan Acar | Category: Genel

Bugün Amazon.com’dan sipariş ettiğim Kindle DX geldi. Tek klime ile harika. Daha önce uzunca bir zaman Irex Iliad kullandım. Ama Kindle DX onu arattırmayacak sanırım :)



Subclipse Şifresi

Nis 28th, 2011 | By Özcan Acar | Category: Püf Noktası

Elipse altında Subversion pluginini kullanıyorsanız, bir Subversion repositorisine bağlanmak için kullandığınız şifreyi nasıl değiştirebileceğinizi merak etmiş olabilirsiniz. Eclipse altında bu şifreyi değiştirmek mümkün değil, çünkü plugin şifreyi %APPDATA%\Subversion\auth (Linux altında ~/.subversion/auth) altında saklıyor. Bu dizini sildiğiniz taktirde, tekrar şifreyi girme panelini görebilirsiniz.



Yazılım Maketleri

Nis 25th, 2011 | By Özcan Acar | Category: Genel, Yazılım Mimarisi

Dün kızıma lego parçalarından oluşan bir set aldım. Bu sabah beraber lego parçalarından kaleler yaparken birşeyin farkına vardım. Yazılım mühendisleri olarak çok soyut şeylerle ugraşıyoruz. Artık soyutluk seviyesi öyle bir hal almış ki, geçenlerde kendimi CPU içide yer alan registerlerin Assembler kullanılarak programlanmasından bahseden bir programcı hakkında “bu kadar low level işlerle uğraşılır mı ya” gibisinden düşünürken yakaladım. Her defasında soyutluk çıtasını bir kademe daha yukarıya çekmeye alışmış ben, somut olan ve ele alınıp, bir mikroskop altında görülebilecek olan CPU registerlerine ne kadar yabancılaşmışım! Bu verebileceğim örneklerden sadece bir tanesi.