手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発(Tom Hombergs 著) - ブックレビュー

評価サマリ

詳細は後述

  • 🌟: 1
  • ⭐: 0.5
  • ❗: 条件付きまたはごく一部に問題あり
項目 評価
得られること ソフトウェアアーキテクチャを考えるときの考え方や観点
推奨読者 ソフトウェアアーキテクチャを考えることになった中堅以降
推奨読者レベル 中堅以降
非推奨読者レベル ジュニアまたはRails Wayにそった開発しかしたことがない人。中堅以降のサポートがあれば読めるかも
推奨度 🌟🌟🌟🌟🌟
わかりやすさ 🌟🌟🌟🌟🌟
正しさ 🌟🌟🌟🌟⭐(❗)
役立ち度 🌟🌟🌟🌟🌟
必要な前提知識 SOLID原則、Javaまたはそれ相当の言語知識(interface、クラスの可視性)、クリーンアーキテクチャとヘキサゴナルアーキテクチャの概要、DDDの一部の用語についての概要

概要

Amazon: 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発

   
発売日 2024/7/19
ページ数 288
サイズ A5判
著者 Tom Hombergs 著/須田 智之 訳
ISBN 9784295019787
定価(税込) 3,300円

目次

  • 第1章 保守容易性
  • 第2章 従来の多層アーキテクチャの何が問題なのか?
  • 第3章 依存関係の逆転
  • 第4章 パッケージ構成に関する戦略
  • 第5章 ユースケースの実装
  • 第6章 Webアダプタの実装
  • 第7章 永続化アダプタの実装
  • 第8章 アーキテクチャの構成要素に対するテスト
  • 第9章 境界を超える際のモデルの変換
  • 第10章 アプリケーションの組み立て
  • 第11章 短絡的な実装への意図した選択
  • 第12章 アーキテクチャ内の境界の維持
  • 第13章 複数の境界づけられたコンテキストの管理
  • 第14章 コンポーネント基盤のアプローチ
  • 第15章 アーキテクチャの決定

評価

得られること

この本を読むことで得られることのうち、一番重要なのはクリーンアーキテクチャやヘキサゴナルアーキテクチャがわかるということではありません。一番重要なのはソフトウェアアーキテクチャを考えるときの考え方や観点です。

多くの人が犯す間違いとしてあるのが「この世界のどこかに正解のアーキテクチャが存在し、それを学び、その通りに順守すればうまくいく」という考えに囚われることです。そんな「マニュアル」があってその通りにやれば良いような代物なら、アーキテクチャを考えることは誰にでもできるカンタンな仕事ということになります。
現実はそうではありません。現実に相対しているドメイン、ビジネスとしてのフェーズ、システムの複雑度、使っている言語やフレームワーク、チームメンバーのレベルそういったものを加味して、今必要なアーキテクチャがどのようなものなのか、それを考えるのがアーキテクトの仕事です。

この本は正道を示しつつも、あくまで選択肢の一つであり、いくつかある選択肢の中から選ぶのは読者であるというスタンスをとっています。
私は「本に書かれているのは、その著者が考える状況で良いと判断したことだけだ。自分たちのチームにはマーチン・ファウラーもロバート・マーチンもいない。自分たちの状況をみて書かれたわけではない。自分たちにとって最適なものは自分たちで考えなければいけない。」とよく言っているのですが、この本はこの点を先んじて書いているというわけです。

また、「決めたアーキテクチャは全部に適用しなければならない。アーキテクチャは均一出なければならない。」という間違った考えに囚われることも多くあります。この点についてもそうではないことが書かれています。

推奨読者

「得られること」の通り犯しがちな間違いに言及されているので、ソフトウェアアーキテクチャを考える必要性に迫られている中堅以降の人にはおすすめです。

推奨読者レベル、非推奨読者レベル

ジュニアレベルだと往々にして「本には正解が書かれている」と思っていがちです。著者がわざわざ言及していても思い込みの強さでそれを跳ね除けて「この本のコード例の通りにやれば良い」と思いかねません。
そのため、ジュニアレベルの人が一人でこの本を読むことは推奨しません。

また、後述しますが必要な前提知識を備えていない可能性が高い、Rails Wayにそった開発しかしたことがない人も推奨しません。おそらく理解ができません。

十分に経験を積んだ中堅以降かつJavaなどの他言語の経験のある人であれば推奨されます。ジュニアレベルの人やRails Wayにそった開発しかしたことがない人でも中堅以降の人のサポートがあれば理解できるかもしれません。

推奨度、わかりやすさ、正しさ、役立ち度

項目 評価
推奨度 🌟🌟🌟🌟🌟
わかりやすさ 🌟🌟🌟🌟🌟
正しさ 🌟🌟🌟🌟⭐(❗)
役立ち度 🌟🌟🌟🌟🌟

個人的には、「ソフトウェアアーキテクチャを考える必要があるので何か1冊おすすめを教えてほしい」と言われたら、この本を上げるほどには推奨できる本です。

ソフトウェアアーキテクチャを考えるという場面でも、ソフトウェアアーキテクチャを理解するという場面でも役に立つでしょう。

ただ一点、単一責任の原則についてはロバート・マーチンのClean Architecture 達人に学ぶソフトウェアの構造と設計 (アスキードワンゴ) と違う説明がなされていたため、正しさは減点としました。

必要な前提知識

単一責任の原則と依存関係逆転の原則については説明されていますが、SOLID原則全体について知識があった方が良いでしょう。

言語機能の知識として、interfaceを理解し、クラスの可視性について「そういう可視性の制御もある」と知っているか理解できる必要があります。

メイントピックのクリーンアーキテクチャとヘキサゴナルアーキテクチャについて「第3章 依存関係の逆転」で説明はありますが、事前知識はあった方が良いでしょう。

DDDについては一部の用語が出てくるので理解しているか、適宜調べられる能力があった方が良いです。

まとめ

この本を読んでおけば、ソフトウェアアーキテクチャを構築する際に犯す典型的な間違いは避けて通れるはずです。

Amazon: 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発