Martin Fowler'in Refactoring'ini okuyorum . Genellikle mükemmeldir, ancak Fowler'in önerilerinden birinin biraz sorun yarattığı görülmektedir.
Fowler, bunun yerine geçici değişkenleri bir sorgu ile değiştirmenizi önerir:
double getPrice() {
final int basePrice = _quantity * _itemPrice;
final double discountFactor;
if (basePrice > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice * discountFactor;
}
bir yardımcı yönteme geçersiniz:
double basePrice() {
return _quantity * _itemPrice;
}
double getPrice() {
final double discountFactor;
if (basePrice() > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice() * discountFactor;
}
Genelde geçici değişkenler kullanmamın bir sebebinin bir çizginin çok uzun olması dışında katılıyorum. Örneğin:
$host = 'https://api.twilio.com';
$uri = "$host/2010-04-01/Accounts/$accountSid/Usage/Records/AllTime";
$response = Api::makeRequest($uri);
Bunu satır içine almayı denesem, satır 80 karakterden daha uzun olurdu.
Alternatif olarak, kendilerini okumak çok daha kolay olmayan kod zincirleriyle sonuçlanır:
$params = MustacheOptions::build(self::flattenParams($bagcheck->getParams()));
İkisini uzlaştırmak için bazı stratejiler nelerdir?
$host
ve $uri
örneğiniz bir tür uyuşuk olsa da - ana bilgisayar bir ayardan veya başka bir girdiden okunmadıkça, onları sarın veya kenardan çıksa bile aynı satırda olmalarını tercih ederim.