Facebook x

ジャンル

書評「リーダブルコード」

Dustin Boswell, Trevor Foucher (著) 角 征典 (翻訳) , 発行所:オライリー・ジャパン, 発売元:オーム社

設計・開発

概要

本書はコーディングをよりよく書くために必要な考え方や原則、そしてその裏にある考え方について記されている。本書では、タイトルにもある通り、リーダブル、つまり読みやすい、理解しやすいコードこそが美しい、優れたコードであるという原則をもとにしている。その原則に従った形で、変数の命名規則や制御フローの書き方、またはコメントの作法に至るまで、コーディングについての汎用的な手法について網羅されている。すべてのプログラマーに必須の考え方がぎっしりと詰まっている。さらに付け加えるとするならば、本書自体も例示やジョークなどを交えながら、非常に読みやすい(リーダブルな)構成になっていることも名著たるゆえんであろう。

本書の使い方

本書の「はじめに」にも記載されているが、本書の目的は読者の書くソースコードをよりよくすることである。全体を読むことで、優れたコードに通底するシンプルな原則を身に着けてほしい。ただし、章構成はそれぞれ独立しているため、今悩んでいたり、考えたりしていることがあれば、その部分をまずは読んでみてほしい。

何を学べるか

第1章 理解しやすいコード
本章では、タイトルにもなっている「理解しやすいコード」「読みやすいコード」とは何かを解説している。

第2章 名前に情報を詰め込む
変数や関数の名前を付ける場合のポイントについて押さえている。曖昧な単語を避け、明確な単語を選んだり、多少長くなったとしても情報を名前に追加すべき理由が書かれている。また「tmp」などの汎用的な名前を避けるべき場合や使っていい場合なども明記されている。

第3章 誤解されない名前
引き続き名前について、意図を正しくできる名前をつけることのメリットを述べている。たとえば範囲を示す単語をどう選択するかについて整理されている。

第4章 美しさ
ソースコードの配置やインデント、ブロックなどでの読みやすさについて、そうするべき理由が解説されている。一貫性と意味のあるやり方で整列することでソースコードが読みやすくなる。

第5章 コメントすべきことを知る
コメントすべきで「ない」ことと、記載するべき自分の考え、そして読み手の立場になって考えるべきことを通して、コメントについてのポイントを紹介している。

第6章 コメントは正確で簡潔に
引き続きコメントについて、この章ではコメントの書き方について、できる限り情報を詰め込むよう、正確で簡潔な記法を心がけることについて説明している。

第7章 制御フローを読みやすくする
if/elseやループ文についての注意事項を整理している。たとえばネストを深くしないことや、使うべきでない構文などを紹介している。

第8章 巨大な式を分割する
コードのかたまりが大きくなりすぎないように、読みやすく分割する方法について述べられている。説明変数や要約変数を使用して分割する例などが記載されている。

第9章 変数と読みやすさ
変数が増えすぎるとコードの意図が追いにくくなるという点について、どのように変数を減らしていくか、あるいはスコープを減らしていくかといった点について解説している。

第10章 無関係の下位問題を抽出する
ソースコードの中で関数として抽出できる部分を見つけ、分離していく手法について述べている。

第11章 一度に1つのことを
ここでは、処理の記述順について解説している。複数の処理を交互に実施するのではなく、一つの処理をまとめて実施することの利点を紹介している。

第12章 コードに思いを込める
ソースコードで処理したいことについて、言葉で説明することによってより簡潔な実装にすることができることについて、具体例とともに解説している。

第13章 短いコードを書く
ここでは、不必要な機能を削除したり、標準APIを使いこなすことによって、なるべくコードを書かない工夫をするべき点について説明している。

第14章 テストと読みやすさ
テストコードについては、プロダクトコードとは違った視点での読みやすさが必要となる。この章ではその点について解説している。

第15章 「分/時間カウンタ」を設計・実装する
この章は具体的な実装例とともに、どのようにソースコードが改善されていくか、その過程でどのような思考プロセスをたどっているのかを詳細に説明している。