Saya telah membaca Refactoring Martin Fowler . Ini umumnya sangat baik tetapi salah satu rekomendasi Fowler tampaknya menyebabkan sedikit masalah.
Fowler menyarankan Anda mengganti variabel sementara dengan kueri, jadi alih-alih ini:
double getPrice() {
final int basePrice = _quantity * _itemPrice;
final double discountFactor;
if (basePrice > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice * discountFactor;
}
Anda menarik ke dalam metode pembantu:
double basePrice() {
return _quantity * _itemPrice;
}
double getPrice() {
final double discountFactor;
if (basePrice() > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice() * discountFactor;
}
Secara umum saya setuju kecuali bahwa salah satu alasan saya menggunakan variabel sementara adalah ketika sebuah garis terlalu panjang. Sebagai contoh:
$host = 'https://api.twilio.com';
$uri = "$host/2010-04-01/Accounts/$accountSid/Usage/Records/AllTime";
$response = Api::makeRequest($uri);
Jika saya mencoba menguraikan itu, garis akan lebih panjang dari 80 karakter.
Bergantian saya berakhir dengan rantai kode, yang sendiri tidak begitu mudah dibaca:
$params = MustacheOptions::build(self::flattenParams($bagcheck->getParams()));
Apa sajakah strategi untuk mendamaikan keduanya?
$host
dan $uri
contoh dibuat-buat - kecuali tuan rumah sedang dibaca dari pengaturan atau input lain, saya lebih suka mereka berada di baris yang sama, bahkan jika itu membungkus atau pergi dari tepi.