読書会でまとめたものになります

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"を使う。直線的なコードを選択する。
 
##その他
 以下の構成要素を使っていると読みにくくなることがあるので、注意する。
 ・スレッド
 ・シグナル/割り込みハンドラ
 ・例外
 ・関数ポインタと無名関数
 ・仮想メソッド
 
担当:らうみー