気ままに気ままのエンジニアブログ

定期的に得た知見を気ままに発信中

書籍"リーダブルコード" 第2部のまとめ

こんにちは。

ここ数日暑すぎてもう辛い。
でも夏は好きです。

f:id:hachimaki37:20200606083345j:plain
どんな感情なん。

どうもハチマキです。

はじめに

業務で課題と感じる部分を解決するため、かの有名な「リーダブルコード」を読みました。
アウトプットとして、第2部のまとめを書いていきます。

1部では、コードの読みやすさを1行ずつ改善する方法、
2部ではより深いところに進み、コードを理解しやすくするコツが書かれております。

では、早速行きましょう。

本日の概要 : リーダブルコード第2部のまとめ

  • こんな方におすすめ(書籍"リーダブルコード"第1部まとめをご覧ください)
  • 第2部 ループとロジックの単純化
    • 制御フローを読みやすくする
    • 巨大な式を分割する
    • 変数と読みやすさ
  • 一言

第2部 ループとロジックの単純化

制御フローを読みやすくする

鍵となる考え
  • 条件やループなどの制御フローはできるだけ、「自然」にする。コードの読み手が立ち止まったり読み返したりしないように書く
    • ex) if(length >= 10), while(bytes_receive < bytes_expected) →左辺:「調査対象」の式。右辺→「比較対象」の式
  • 行数を短くするよりも、他の人が理解するのにかかる時間を短くする
    • ex) 基本的にはif/elseを使い、三項演算子はそれによって簡潔になるときだけに使う
  • 変更するときにはコードを新鮮な目で見る。一歩下がって全体を見る
まとめ
  • 比較を書くときは、変化する値を左に、より安定した値を右に配置する
  • if/else文のブロックは肯定型・単純・目立つ物を先に処理する並びに替える
  • 三項演算子・do/whileループ・gotoなどプログラミング構成要素を使うとコードが読みにくくなるため、代替えを模索する
  • 深いネストは避け、直線的なコードを選択する

巨大な式を分割する

鍵となる考え
  • 巨大な式は飲み込みやすい大きさに分割する(コードの式が大きくなれば、それだけ理解が難しくなる)
    • ex) 式を簡単に分割するには、式を表す変数を使う
  • 「頭がいい」コードに気をつける。あとで他の人がコードを読むときにわかりにくくなる
    • ex) 複雑なロジックコードになってしまったら、とにかくいつもと反対のことをやってみる
まとめ
  • 巨大な式を分割して、読み手が1つずつ読み込めるようにするためには「説明変数」を導入する
    • 巨大な式を分割できる
    • 簡潔な名前で式を説明することで、コードを文書化できる
    • コードの主要な概念を読み手が認識しやすくなる
  • 複雑なロジックを見たら、積極的に分割する(問題を否定したり、反対のことを考えてみたりする)

変数と読みやすさ

鍵となる考え
  • 変数のことが見えるコード行数をできるだけ減らす
  • 変数を操作する場所が増えると、現在値の判断が難しくなる
まとめ
  • 変数はできるだけ減らし、軽量にすることでコードは読みやすくなる
  • 邪魔な変数を削除する
  • 変数のスコープをできるだけ小さくする
  • 一度だけ書き込む変数を使う

一言

今回は、リーダブルコードの第2部についてまとめてみました。
主にコードを動かすための制御フロー・論理式・変数などのことが説明されております。

今月に入り、エンジニアになって半年が経ちます。
この半年間は目の前に必死な半年でしたが、次の半年はコードの読みやすさも意識できるような取り組みをしていきたいと思います。

                                            • -

次回は、リーダブルコードの第3部をまとめていきます。
以上、ハチマキでした。