オライリー本『リーダブルコード』を読んで

はじめに

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック』を読んで学んだ内容を整理する。

本書について

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

リーダブルな(=読みやすい)コードを書くための基本的な考え方や実践方法が体系的に整理されている。

分かりやすい言葉で説明されており、また、各章ごとにユーモアある挿絵でその章のコンセプトが説明されているので、サクサク読み進めることができる。

本書の要点

リーダブルコードとは?

以下が「リーダブルコード」の基本的な定理である(本書より引用)。

コードは他の人が最短時間で理解できるようにかかなければならない。

ここでの「他の人」には、将来の自分自身も含む。

ポイント

「物理的な短さ」より「理解に要する時間の短さ」が重視されている。

名前に情報を詰め込む

メソッド名を考える時などは、可能な限り、「明確」かつ「具体的」な単語を選ぶことで、一目でそのメソッドがどのような目的を達成するものなのか分かるようにする。

例えば、「Stop」というメソッド名より、「Kill」や「Resume」、「Pause」など、より振る舞いが具体的にイメージできる単語を選ぶ方が良い。

また、変数名に「単位」を入力する場合などは、その変数名に「_secs」や「_mb」などを付記することで情報を追加する。

見た目の美しさを追求する

同じような処理をするコードは、同じような見た目になるように書く。

似たようなコードや要素のインデント・列を整える。

コードや要素の順番が、論理的な順序と整合するようにする。

複数行にまたがるコードは、そのブロックごとに段落わけする。

必要で簡潔なコメントを付す

必要なコメントのみを簡潔な形で付記するとよりリーダブルになる。

必要な場合とは、

  • 初見で理解しにくい部分
  • 意外な挙動をする部分
  • ファイルやクラスの全体像
  • ブロックごとの要点

名前やコード自体から読み取れるような重複する情報はコメントしない。

また、コメントを記載する場合、「それ」や「これ」などの代名詞を避け、具体的な表現を心がける。

リーダブルな式

条件式はなるべく肯定形で表現し、単純な条件を先に記載する。(ifとelseが同じ画面に表示されるため)

単純な条件式がない場合は、関心の高いメインの条件を先に記載する。

三項演算子は、簡潔に記載できる場合のみに用いる。

比較演算子は、左側に変化する「調査対象」、右側に変化しない「比較対象」を記載する。

なるべく早く結果を返すようにし、深いネストを避ける。

説明変数を活用し、コードを文書化する。

変数の整理

一時的に情報を保存するだけの変数は削除できる場合が多い。

変数のスコープは可能な限り小さくする。

定数を活用する。

コードの再構成

1つの関数では1つのタスクを実行するようにし、主目的に関係しない部分は、抽出して別メソッドとする。

汎用的なコードは特別なディレクトリに分けて簡単に共有できるようにする(例えば、 “util/” など)。

コード全体を簡単な言葉で説明できるかトライし、その説明フローとコードのフローが整合することを確かめる。

短いコードを追求する

不要な仕様やコードは削除する。

最もシンプルな実装を追求する。

標準ライブラリなどを活用できるように、定期的にドキュメントに目を通しておく。

所感

本書の内容について、個人的には、普段RubyやRuby on Railsの命名規則や諸先輩方のコードから自然に意識していたことが多く、特段目新しいものはなかった。

しかしながら、「リーダブルコード」であるための要点を改めて客観的に考えることができ、なんとなく意識していたことを体系的に整理することができた。

Source

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

兵庫県西宮市生まれのフリーランスRailsエンジニア。海外を拠点にデジタルノマド生活中。/ 前職・資格:公認会計士 / プログラミング言語:Ruby, JavaScript, HTML, CSS / 日本語・英語
コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です