リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
Webエンジニアに転職して半年が経過し、社内でコードを書く機会も増えていたので、ようやく手を出した本書。
プログラマの必読書とは聞いていましたが、思っていた以上にチーム全体で共有すべき内容でまさに義務教育でした(義務教育ではないよ)。
『達人プログラマー』『プリンシプル オブ プログラミング』『世界一流エンジニアの思考法』などはエンジニアのあるべき姿や精神面の内容が多く抽象的だけど、本書は読みやすいコードの具体例が豊富に書かれており、すぐに会社で使いたくなるような実践的な内容。
コードではない文章も読みやすく、ユーモアたっぷりで面白い。
実際に現場で働き出して、人にコードを読む・読んでもらう機会が増えてから手に取ったほうが身に沁みるからいいかも。自分の今書いてるJSのコードが、本書で紹介されてるまさに悪例でグサグサ刺さった。
ここに書かれてるコードが「当たり前」と思える状態を目指して、たびたび見返しては改善を繰り返していこうと思います。
読書ノート
- 読みやすいコードとは、他の人が最短時間で理解できるコードのこと。
- 理解できるとは、変更を加えたりバグを見つけたり、他の箇所のコードと連携する方法もすぐにわかるということ。
- 半年後の自分自身はコードを理解して説明できるだろうか?
- コードは短いほうがいい。しかし、理解できることのほうがずっと大事。そのためのコメントも必要だ。
- tmpのような汎用的な名前を避けて、エンティティの値や目的を明確に表す名前を付けよう(例:tmp_file)。
- 時間や単位数のように計測できるものであれば、変数に単位をいれるとわかりやすい(例:start_ms)
- スコープ(その変数が目に見える範囲)が小さければ名前は短くてもいい。
- HTMLとCSSの変数名について、idはアンダースコアを、classはハイフンを区切り文字として使う。
- 誤解されない(複数の意味に解釈されない)名前を使おう。限界値を含める時はminとmaxを使い、範囲を指定するときはfirstとlastを使い、包括的/排他的範囲を示す時はbiginとendを使う。
- 美しいコードは、読み手が慣れているコードや一貫性のあるコード、似ているコードは似ているように見せること、関連するコードをまとめてブロックにすることなどで整う。
- コメントも文書の始まりを合わせるなど整列させよう。
- 空行を使って大きなブロックを論理的な段落に分ける。