技術書

【書評】リーダブルコード | プログラミングの魅力に出会える良書

プログラマーなら一度は聞いたことがあるであろう良書「リーダブルコード」を読みました。

リーダブルコードはエンジニアとして働いていたら、先輩や同僚から一度は勧められる本だと思います。プログラミングの教科書のような本だと言ってもいいのではないでしょうか。

僕はこの本は3年前に一度読んでいて、今回読んだのは2回目になります。2回目読んでみて、  以前読んだときとは違う感想や、学びを得た部分があり個人的に成長を感じました。

内容について

この本の題目は次のとおりです。

  • 1章 理解しやすいコード
  • 2章 名前に情報を詰め込む
  • 3章 誤解されない名前
  • 4章 美しさ
  • 5章 コメントすべきことを知る
  • 6章 コメントは正確で簡潔に
  • 7章 制御フローを読みやすくする
  • 8章 巨大な式を分割する
  • 9章 変数と読みやすさ
  • 10章 無関係な下位問題を抽出する
  • 11章 一度に1つのことを
  • 12章 コードに思いをこめる
  • 13章 テストと読みやすさ
  • 14章 「分/時間カウンタを実装する」

目次を見てわかる通り難しいテーマで書かれておらず、基本的な内容が書かれています。おそらくプログラミングを始めて1ヶ月くらいの人であっても、この目次を見て本の内容を推測できるのではないでしょうか。

基本的な内容ではありますが、ソースコードを書いていく上での作法、エンジニアとしての共通見解を述べています。

僕はこの本の内容はすごい重要だと思います。大体初心者向けの本に書かれているのはfor文やif文の使い方のような調べればわかるようなことが多いと思います。でもプログラミングを始めたてのとき「自分の書いたコードは世間のエンジニアと比較して頓珍漢なことをやっていないだろうか、、。確かにコンパイルしたら動くけど、、。」といった漠然とした不安を感じていました。

本書はそのソースコードを書く上での命名の仕方やコメントの作法などプログラマーの共通見解を示すことによりそのような不安を解決してくれるものだと思います。

2回目読んで改めて学んだこと、感じたこと

読みやすさの基本定理
コードは他の人が最短で読めるようにならなければならない

リーダブルコード

当たり前だけど忘れがちになってしまう。

最近ドメイン駆動設計(以下DDDと呼ぶ)を勉強したりしています。実装にあたってDDD特有のディレクトリ構造や用語を使ったりしますが、勉強していなければそれらの用語がわからないってどうなんだろうと少しモヤモヤしてました。
チームに入った段階でDDDのキャッチアップをすることを前提であればいいと思いますが、改めてこの一文を読んで専門用語をソースコード内の共通言語として書くのは微妙な気がしました。個人的にはDDDの根本的な思想をなぞって平易な言葉、設計で実装するのがいいのかなと思ったりします。

コメントの目的は、書き手の意図を読み手に知らせることがである

リーダブルコード

処理を説明する記述は名前に、コメントへの記載内容は処理の背景みたいな事項のを書くっていうはプログラマーのセンスを発揮する部分だと思います。すぐれたコメントの特徴として、「第三者がコードを読んだときにコードに対する驚きを軽減するものになっている」というのがあると思うのですが、独りよがりなソースコードになっていないのがいいコメントの特徴なのかなと考えたり。

終わりに

リーダブルコードを読んでいるとプログラミングしたくなってきます。
プログラミングをするのはただシステムを作るための手法ではなく、クリエイティブな活動であることを確認でき、本の内容を実践して試したくなってくる。

ではまた。(´∀`)ノシ