ちょうぜつソフトウェア設計入門
が前から気になっており、先日こちらの本を読み終えました。
今回はこちらの本の感想を簡単にまとめようと思います。
パッケージ設計の原則と SOLID 原則については別途 Zenn に自分の備忘録としてまとめました。
「中級者」になるための知識が網羅的にまとめられている
エンジニアとしてコードを書いていくうえで、「中級者」になるための知識が網羅的にまとめられている、という印象です。
- パッケージ設計の原則
- オブジェクト指向の原則 (SOLID)
- クリーンアーキテクチャ
- テスト駆動開発
- デザインパターン
上記を含むオブジェクト指向によるソフトウェア設計の知識がわかりやすく、そして広く記載されています。
本で扱われているこれら各項目はそれぞれ単体で 300 ページ以上を超える専門書が数多く発行されるほど、非常に深い内容であり、かつ専門的にしようと思えばいくらでも難しくできる内容となっています。
それらをできるだけわかりやすく、かつ網羅的に扱っており、入り口としての本として非常に良いなと感じました。
一方で、網羅的にしようとしたぶん、各項目が薄めになっており、ある程度知らないと理解が難しいかもなと感じました。
特に、クリーンアーキテクチャが第一章としていきなり出てきており、知らない人にとってはここでおいていかれる可能性が高そうです。
(その後、 2章以降を読みすすめることでクリーンアーキテクチャの意義がわかっていく。)
そう考えると、最後の章「まとめ」を追加して、これまでの知識を使った全体的な設計の仕方ならびにクリーンアーキテクチャのうれしさが第二版で追加されるとうれしいです。
かわいい
著者 田中ひさてる さんのイラストがとてもかわいくついつい先を読んでしまう構成になっていました。(めもりーちゃん、かわいい。)
また、イラストで扱われている内容が「現場あるある」に近い内容であり「クライアント要望の設計はよく変わるよね〜」と自分も共感しながら読んでいました。
こちらの画像は Gihyo で公開されている画像から引用させていただいております。
どんな人に向いているか?
自分と同じく、新社会人エンジニアとして 1 年経験をつみ、新たにソフトウェア工学の知識を増やしていきたい人に向いていると思います。
クリーンアーキテクチャや SOLID 原則、テスト駆動開発はそれぞれで専門書が発行されており、とっつきづらく理解しづらいものになっています。
これら専門書に入る前に、本書を読んで、網羅的に薄く全体を理解しておく。
そのような入り口として本書は非常に向いているなと感じました。
一方で、すでにクリーンアーキテクチャやテスト駆動開発を業務で利用しており、知識がすでにある程度身についている人にとっては、最初から単体の専門書を読むのが良いかなと思います。
最後に
しばらくは、本書で学んだことを「実践」として個人開発をどんどん進めていこうと思います。
ずっと本を読んでいるだけでは身につきませんからね。
ウェブアプリやゲームなど「ポートフォリオ」「作品」が完成したら、エヴァンス本や TDD 本の専門書を読んでいこうと思います。