目的
「リファクタリング」を理解するためにサンプルコードを PHP で書き換えてみました。
今回は「説明用変数の導入」について書きます。
「説明用変数の導入」 について
その式の結果または部分的な結果をその目的を説明する名前をつけた一時変数に代入する
「メソッドの抽出(110)」が適用できるときは、そっちの方を選びます
例
変更前
$platform = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0';
$browser = 'IE';
$resize = 1;
function wasInitialized()
{
return true;
}
if ((strpos(strtoupper($platform), 'MAC') > -1) &&
(strpos(strtoupper($browser), 'IE') > -1) &&
wasInitialized() && $resize > 0) {
// 略
echo '変更前' . "\n";
}
変更後
$platform = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0';
$browser = 'IE';
$resize = 1;
function wasInitialized()
{
return true;
}
$isMacOs = strpos(strtoupper($platform), 'MAC') > -1;
$isIEBrowser = strpos(strtoupper($browser), 'IE') > -1;
$wasResized = $resize > 0;
if ($isMacOs && $isIEBrowser && wasInitialized() && $wasResized) {
// 略
echo '変更後' . "\n";
}