Martin Fowlerのリファクタリングを読んでいます。それは一般的に優れていますが、ファウラーの推奨の1つが少し問題を引き起こしているようです。
Fowlerは、一時変数をクエリに置き換えることを推奨しているため、これの代わりに:
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;
}
一般的に私は同意しますが、一時変数を使用する理由の1つは、行が長すぎる場合です。例えば:
$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()));
2つを調整するためのいくつかの戦略は何ですか?
$host
と$uri
ホストが設定または他の入力から読み込まれていない限り、私はそれがラップをしていても、それらが同じ行にあることを好むか、エッジをオフに行くだろう-ものの例は、一種工夫のです。