経緯
Clean Architecture について簡素にまとまっていたので、記事を読んで自分の中で考えを巡らせてたので、そのアウトプットとして書くに至る。
内容
原文翻訳
翻訳内容。Deeplにお世話になった。
なお、翻訳内容には、意訳も入っているので、気になる人は原文をあたって。
- フレームワークに依存しない
- テストしやすい
- UI、データベース、Webサーバー、その他の外部サービスなしでテストできるようにする
- UIに依存しない
- システムに影響されてはいけない
- UIが変わっても、ビジネスルールに影響が出てはいけない
- データベースに依存しない
- DBの交換可能な状態にする
- データベースの種類にビジネスルールが影響されてはいけない
- 外部サービスに依存しない
- 外部サービスからビジネスルールへの影響をなくす
- 外部サービスは、あなたのビジネスルールを知らないことを理解する
所感
- フレームワークに依存しない
- テストしやすい
- モック化して、テストしたいところだけテストできるようにしておけってことだね。
- あとは、テストデータがメンテしやすいとかも関わってきそうな気がする。
- UIに依存しない
- 最近のFormベースじゃなく、APIベースの開発をしろってことだな。
- もしくは、Formとのやり取りをビジネスルールを書く場所に書くなよってことかな?
- データベースに依存しない
- ORマッパーないと実現は厳しい
- 特に、NoSQL系とRDBMS系のDBの付け替え可能にするのは、無理がある気がする。
- 技術の進歩でどうにかなるか?
- 外部サービスに依存しない
- 外部サービス呼ぶ際は、何かでラッピングして、影響をなくせってことかな?
- デザインパターンの構造関連のパターンの適用を考えろってことか
やはり、難点は環境周りへの影響の排除。
DB、外部サービス、フレームワークへの影響は厳しい。
これだ!っていう解決策が思いつかないのが現状。
やはり、ラッピングして影響をコントロールできるようにするくらいしかないんだが、他にいい方法あるのだろうか?
chatGPTさんと会話して、他に方法ないか模索したけど、思いつかんかった。
依存させないってなると、完全フルスクラッチになるので、生産性と相談だねって結論になった。