Ich habe Martin Fowlers Refactoring gelesen . Es ist im Allgemeinen ausgezeichnet, aber eine von Fowlers Empfehlungen scheint ein wenig Ärger zu verursachen.
Fowler empfiehlt, temporäre Variablen durch eine Abfrage zu ersetzen. Stattdessen:
double getPrice() {
final int basePrice = _quantity * _itemPrice;
final double discountFactor;
if (basePrice > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice * discountFactor;
}
Sie ziehen sich in eine Hilfsmethode zurück:
double basePrice() {
return _quantity * _itemPrice;
}
double getPrice() {
final double discountFactor;
if (basePrice() > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice() * discountFactor;
}
Im Allgemeinen stimme ich zu, außer dass ein Grund, warum ich temporäre Variablen verwende, darin besteht, dass eine Zeile zu lang ist. Zum Beispiel:
$host = 'https://api.twilio.com';
$uri = "$host/2010-04-01/Accounts/$accountSid/Usage/Records/AllTime";
$response = Api::makeRequest($uri);
Wenn ich das einfügen würde, würde die Zeile länger als 80 Zeichen sein.
Alternativ habe ich Codeketten, die selbst nicht viel einfacher zu lesen sind:
$params = MustacheOptions::build(self::flattenParams($bagcheck->getParams()));
Welche Strategien gibt es, um die beiden in Einklang zu bringen?
$host
und Ihr $uri
Beispiel ist jedoch irgendwie erfunden - es sei denn, der Host wurde aus einer Einstellung oder einer anderen Eingabe gelesen, ich würde es vorziehen, wenn sie sich in derselben Zeile befinden, selbst wenn sie umbrochen werden oder vom Rand abweichen.