TL;DR

  • Robert C. Martin が提唱したクリーンアーキテクチャの考え方に沿って、Web アプリケーションをどう作るかを実装コードとともに解説する本である。
  • 副題は「ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発」。原題は「Get Your Hands Dirty on Clean Architecture: Build ‘clean’ applications with code examples in Java」。

対象読者

ソフトウェア設計に興味がある開発者や、クリーンアーキテクチャとその実装方法を知りたい開発者に向けた本である。

サンプルコードは buckpal で公開されている。言語は Java(一部 Kotlin)、フレームワークは Spring Boot だが、オブジェクト指向の言語であれば考え方はそのまま使える。

読むときの注意として、翻訳者によると、本書のサンプルコードではドメイン駆動設計でいうアプリケーションサービスがドメインサービスに取り込まれている。本書は「クリーンなアーキテクチャをどう実現するか」に主眼を置いており、アプリケーションのコアの中の境界(ドメイン層とアプリケーション層)はそこまで厳格に区別していない。そのため、ドメインサービスが受信ポートを実装し、内部で送信ポートを扱う。これは「ドメイン層はアプリケーション層に依存してはならない」というルールを守っていないが、サンプルコード程度の規模では区別するコストのほうが大きいため、あえて区別していない。

目次

  1. 保守容易性
  2. 従来の多層アーキテクチャの何が問題なのか?
  3. 依存関係の逆転
  4. パッケージ構成に関する戦略
  5. ユースケースの実装

感想

Spring Boot は、メジャーなフレームワークの中で自分が触ったことのない数少ないものの 1 つである。そこで、エッセンスはそのまま学びつつ、サンプルコードを Go に置き換えながら読むことにした。

関連