浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

説明や要約を行う変数、関数

 巨大なオブジェクトを扱う時、深い場所にいる子要素を扱うことがままあります。メソッドチェーンによる処理結果を扱う時は深い子要素よりも簡単に、元の意味からかけ離れた式を作れます。例えば、

if line.split(':')[0].strip() == "root":

Dustin Boswell; Trevor Foucher. リーダブルコード (Kindle の位置No.1520). 株式会社オライリー・ジャパン. Kindle 版. 
@if ($experiense->member_id == Auth::user()->id)

です。こういった式をそのまま扱うと、これから先に読み返す時、混乱のもとになります。これを意味の通る変数名にまとめるとコメントもなく、可読性が高まります。変換は例えば、

username = line.split(':')[0].strip()
if username = = "root":

Dustin Boswell; Trevor Foucher. リーダブルコード (Kindle の位置No.1522). 株式会社オライリー・ジャパン. Kindle 版. 
@if (Auth::user()->owns($experiense))
//ここから別のファイル
class User
{
    public function owns($experiense)
    {
        return $this->id === $experiense->member_id;
    }
}

の様にできます。後者の例は別のファイルにロジックを複数用意した方が良かったり、owns()が何度も使われたり、という時に特に役に立ちます。

  • この記事いいね! (0)