はじめに
本記事は、こちらの書籍でクリーンアーキテクチャを学んだうえでわかったことをまとめます。
書籍を読んだうえで大事だと思った点を中心にまとめます。
クリーンアーキテクチャの概要
アプリケーションにとって重要なルールとDBやフレームワークなどの詳細な重要でない構成要素を境界で明確に分類して、重要でない構成要素がアプリケーション全体に与える影響を最小限に抑えるためのアーキテクチャです。
一般的には以下のような図で表現されます。
円の中心にあるものほど、変化する可能性が低く、外側に行くほど頻繁に変化する可能性があります。
円の外側から内側の方向にしか依存してはいけないというルールがあるため、頻繁に変化する外側の構成要素(永続化の仕組みなど)の変更があった場合にも、アプリケーション全体に与える影響を抑えることが可能となります。
大事な点
個人的に感じたクリーンアーキテクチャにおいて大事な点は以下だと思います。
- 変化する可能性が低いものを円の中心に、最も頻繁に変化するものを円の最も外側に配置する。
- 円の外側から内側の方向のみに依存をさせる。内側から外側の仕組みを利用しないといけない場合は、内側にインターフェースのみのを定義して、外側が内側のインターフェースを実装する。内側から外側の仕組みを使わないというわけでないので、注意が必要。
クリーンアーキテクチャ自体が、変更されやすい構成要素が変更された際の影響を抑えることを目的としているので、その目的を常に忘れずにどのようなアーキテクチャにすべきかを考えるのが重要だと思います。
まとめ
クリーンアーキテクチャの目的を理解することで、誤った活用法はしなくなるのではと思います。
どんな設計技法でもそうですが、その技法の目的を把握したうえで設計技法を活用するのが大事なんだなと改めて思いました。