Posted on: Written by: K-Sato

Table of Contents

達成する事

関心の分離

関心の分離により良い事

フレームワーク非依存

アーキテクチャは、機能満載のソフトウェアのライブラリに依存していない。これにより、システムをフレームワークの制約で縛るのではなく、フレームワークをツールとして使用できる。

テスト可能

ビジネスルールは、UI、データベース、ウェブサーバー、その他の外部要素がなくてもテストできる。

UI非依存

UIは、システムのほかの部分を変更することなく、簡単に変更できる。たとえば、ビジネ

スルールを変更することなく、ウェブUIをコンソールUIに置き換えることができる。

データベース非依存

OracleやSQL ServerをMongo、BigTable、CouchDBなどに置き換えることができる。ビジネスルールはデータベースに束縛されていない。

外部エージェント非依存

ビジネスルールは、外界のインターフェイスについて何も知らない。

概要

依存関係は内側一方向のみで、外側のルールを、内側に持ち込んではいけない

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28464/11d18689-9a99-5bc0-39dc-e48623f1d11c.jpeg

各レイヤーごとに解説

エンタープライズビジネスルール(Entities)

  • 企業全体の最重要ビジネスルールをカプセル化したもの

アプリケーションビジネスルール(Use Cases)

  • アプリケーション固有のビジネスルールを記述する
  • エンタープライズビジネスルールをいつ・どのように呼び出すかを規定したルール が含まれている

インターフェースアダプター(Controllers/Presenters/Gateways)

  • 外部からの情報を内側で使用できる形式にデータを変換するアダプター

フレームワークとドライバー(UI/Web/Devices/DB/External Interfaces)

  • フレームワークやツールで構成されている(DB, Webフレームワーク等)

参考

About the author

I am a web-developer based somewhere on earth. I primarily code in TypeScript, Go and Ruby at work. React, RoR and Gin are my go-to Frameworks.