【書籍】良いコード/悪いコードで学ぶ設計入門

久しぶりの書籍紹介。

この本はITエンジニア本屋大賞取った本なのでずっと読みたいなーと思っていたけれど、なかなかタイミングがなく読めていなかった本。

たまたま一緒に働いている後輩が持っていたので、週末に借りて一気読みした。後輩はまだ読んでいなかったらしいが、借りて先に読んでしまった。(自分で買えよ。。)

結論、すごい良い本だった。
若手もベテランも、現役でコード書いてるエンジニアの方は読んで損はない書籍だなと思った。(確かにこれは大賞とるな、と思える内容でした。)
内容はタイトルの通りコード設計に関する本ですが、一言でまとめるとオブジェクト指向言語におけるコード設計の集大成本、という感じ。

コードの書き方に関する書籍には、

  • オブジェクト指向における設計の本(デザインパターン系とか)

  • 読みやすいコードを書くための本(リーダブルコードとか)

  • コードを書くときの考え方に関する本

  • リファクタリングに関する本

  • ドメイン駆動設計に関する本

などなどありますが、それぞれの分野における定番本からエッセンスを抽出して体系的にまとめあげ、その中に著者の経験を踏まえたコーディングに対する考え方をプラスアルファで組み込んだ内容となっている。
この書籍1冊で最近主流となっているメンテナンスしやすいコーディングスタイルのノウハウを効率よく体系的に学べると思う。

正直なところ、私個人としては目から鱗の新しい発見、と呼べる知見はそれほど多くはなかった。
だだし、それは内容が薄いという意味ではないので誤解なさらず。
私自身、これまでにオブジェクト指向やコードの書き方に関する書籍を色々と読んだ経験があるので、知識としては既に知っている内容も多かった。
なので、個人的な感想としては、「新しい知見を得た」というよりは「これまでのコード設計に関する知見が改めて体系的に整理された」という感じ。
その中で設計をサポートするためのツールが結構あることを知れたのは学びの一つ。また、技術的負債に対しての向き合い方を見直すきっかけになったなと思う。

特に印象に残っているのは第15章「設計の意義と設計への向き合い方」と第16章「設計を妨げる開発プロセスとの戦い」の部分。書籍の中では最後の部分になりますが、著者の設計に対する強い思いが印象深く残っている。
自分の身近で技術的負債を抱えているプロダクトがあるのを知っており、自分に何かできることがあれば、と思う一方で具体的な行動に移せていなかったりする。
決められた納期までにユーザーに価値を届けることは大事だが、スピードを重視するあまり設計がおざなりになってしまうと、技術的負債が溜まって長期的には価値を提供できないプロダクトになってします。
そんなことは多くの人が頭では分かっていることだと思う。
分かっていながら、設計を見直すきっかけがないままずるずると開発を続けて負債をためてしまうのが、開発現場のあるあるのように思う。

そんなあるあるをなくしていくために、若手やリーダーのエンジニアが読んで設計に対する意識を強めてほしいし、私自身、身近な技術的負債をなくせるようにできるこをやっていきたい。


サポートいただくとめちゃくちゃ喜びます。素敵なコンテンツを発信できるように使わせていただきます。