07章 制御フローを読みやすくする(P83)※制御フロー…if文、for文とか
#キーとなる考え
制御フローはできるだけ「自然」にする。
コードの読み手が立ち止まって読み返さないように書く。
##条件式の引数と並び順
■条件式は、以下に書くとよい
左側…「調査対象」の式(変化する)
右側…「比較対象」の式(あまり変化しない)
例:if(length >= 10)
##if/else ブロックの並び順
■条件は否定形よりの肯定形を使う。
■単純な条件を先に書く。
■関心を引く条件や引き立つ条件を先に書く。
##3項演算子(条件式 ? 式1 : 式2)
■行数を短くするよりも、他の人が理解するのにかかる時間を短くする。
→1行に長く書かないこと
■基本的には、if/elseを使う。3項演算子はそれによって簡潔になるときだけ使おう。
##do/whileループは避ける
■do/while文は、while文に書き直す。
理由:コードブロックを再実行する条件が下にあるため
##関数から早く返す
■関数を早く返すことはいいこと。
##悪名高き goto
→C言語なので飛ばす。
##ネストを浅くする
■ネストが深いコードは読みにくい。
深いだけで精神的な苦痛を強いれられる。
以下にネストを深くしない方法を記載する。
①ネストが増える仕組み
仕組み:最初は、単純なコードだったが、変更したとき、コードを挿入できる場所が限定されていたため
基本的な考え方:変更するときには、コードを新鮮な目で見る。1歩下がって全体を見る。
➁早めに返してネストを削除する
やり方:ネストを削除するには、「失敗のケース」をできるだけ早く返す(return)とよい
③ループ内部のネストを削除する
やり方:ループ内部で返すときは、"continue"を使う。直線的なコードを選択する。
##その他
以下の構成要素を使っていると読みにくくなることがあるので、注意する。
・スレッド
・シグナル/割り込みハンドラ
・例外
・関数ポインタと無名関数
・仮想メソッド
担当:らうみー