Я читав Рефакторинг Мартіна Фаулера . Це, як правило, чудово, але, схоже, одна з рекомендацій Фоулера викликає невеликі проблеми.
Фоулер рекомендує замінити тимчасові змінні на запит, тож замість цього:
double getPrice() {
final int basePrice = _quantity * _itemPrice;
final double discountFactor;
if (basePrice > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice * discountFactor;
}
ви використовуєте хелперний метод:
double basePrice() {
return _quantity * _itemPrice;
}
double getPrice() {
final double discountFactor;
if (basePrice() > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice() * discountFactor;
}
Загалом я згоден, за винятком того, що я використовую тимчасові змінні, коли рядок занадто довгий. Наприклад:
$host = 'https://api.twilio.com';
$uri = "$host/2010-04-01/Accounts/$accountSid/Usage/Records/AllTime";
$response = Api::makeRequest($uri);
Якби я спробував це вкласти, рядок тривав би більше 80 символів.
По черзі я закінчую ланцюжками коду, які самі по собі не так просто читати:
$params = MustacheOptions::build(self::flattenParams($bagcheck->getParams()));
Які стратегії поєднання двох?
$host
і $uri
приклад надуманий - якщо хост не читався з налаштувань чи іншого вводу, я вважаю за краще, щоб вони знаходилися на одній лінії, навіть якщо він завертається або йде з краю.