第7章:制御フローを読みやすくする
概要
本章では、条件やループなどのループなどが無いコードは読みやすいと言うことを前提に、コードの制御フローを読みやすくすることについて説明している。
まとめ
「if文で比較をする際、変化する値は左側に、より安定した値は右側に書く。」「if/elseはブロックを適切に並び変える。一般的には、肯定文・単純・目立つものを先に処理する。」「三項演算子・do/whileループ・gotoなどはあまり使わないようにする。」「ネストは浅くする。」「関数は早めに返す。」これらが本章では大事であると解説していた。
学んだ点
・条件やループなどの制御フローはできるだけ「自然」にして、読み手が立ち止まったり読み返したりしなくていいように記述する。
・条件式(if文等)は左側に「調査対象」の式で変化するものを右側に「比較対象」の式を記述する。
・条件には、否定形よりも肯定形を使うようにして、単純な条件を先に記述する。ifとelseが同じ画面で見られるようにする。
・関心を引く条件や目立つ条件を先に書く。
・関数の中でreturnを使ってできる限り関数の処理から早く返すようにする。
・C言語等?では、gotoは使わないようにする。
・ネストの深いコードは読みにくいので、できる限りネストは浅くして理解しやすいコードにする。
・変更するときには、コードを新鮮な目で見て、一歩下がって全体を読む。
・関数を早めに返すことで、ネストを削除したりコードをクリーンにしたりできる。特に「ガード節」(関数の上部で単純な条件を先に処理できる)が便利である。
感想と振り返り
制御フローのレビューを出した際に、if elseで条件を増やして文章を増やすのか「!=」で条件文を短くするかで少し議論になった覚えがあります。こちらに関しても、プロジェクトやその文が書かれている状況によって書き方があると思うので、レビューをしていただく方と審議する必要があると思います!
自分的には、この審議するということで他の方のコードの書き方や癖であったり、どの書き方が一番ベターかなども勉強することができたのでコードを書く際の考え方の幅が広くなる良い機会になりました!