クリーン・アーキテクチャ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>依存性反転原則]]
*目次 [#l88da091]
#contents
*概要 [#z3bf9209]
[[最小構成の依存性反転原則>依存性反転原則#ecda4880]]を多...
*詳細 [#r787552c]
コア・ロジックは外部I/Oインターフェイス(UI、DB等)を使用...
-インターフェイス経由で利用することで、コンパチ可能に実装...
-[[DI>依存性反転原則#g8343c51]]により、インターフェイスを...
**メリット・デメリット [#i3942654]
***メリット [#zbf80ba5]
これにより、
-コア・ロジックは
-外部I/Oインターフェイス(UI、DB等)に
依存しないようにできる。
***デメリット [#gc0a10ca]
-[[依存性反転原則]]の注意事項にあった
--なんでもかんでも抽象化するとコードが 複雑化し、混沌となる
--抽象度を上げる時は、必ず必要最小限にすること
>などを超えている感があるのと、
-ホントにコンパチのシナリオはあり得るのか?
--疑問と言えば疑問。
--ただし、コンパチ・シナリオの可能性は増えつつある。
---RDB、NoSQL、WebAPI
---エンジニアリングの[[配管工化>https://www.google.com/se...
-MVC系の例が多いが、DesktopやFrontend系では、また別途検討...
***利用シーン [#g2119f30]
以下のようなユースケースでハマりそう。
-EAI/ETL系のデータフロー・オーケストレーションを実行する~
プロダクト([[Apache NiFi]]のような)ではなく、フレームワ...
-デファクトのフレームワークに~
御呪いを書くと繋がる系(ASP.NET の Startup.cs)
-以下の段階があり、どの段階が適合するか、よく検討する必要...
--ラッパー
--[[DI + IoC>依存性反転原則#w42dcdfc]]
--[[依存性反転原則]]
--クリーン・アーキテクチャ
**構成要素 [#r19a19fe]
***Controller [#m1c9b02b]
外部I/Oインターフェイス(UI)
-MVCのController
-ユーザの入力を解釈し、[[UseCase>#a0aa4dfe]]にそれを伝え...
***UseCase + Interactor [#a0aa4dfe]
コア・ロジック
-MVCでServiceManagerとも呼ばれる。
-UseCaseがインターフェイスで、Interactorが実装。
-[[DI>依存性反転原則#g8343c51]]により、[[Controller>#bc3f...
-コア・ロジックであるInteractorは、
--[[Repository>#y2e4ef36]]
--[[Presenter>#k0ebeaab]]
>などの外部I/Oインターフェイスを呼び出す。
***Repository [#y2e4ef36]
外部I/Oインターフェイス(DB)
-Storeとも呼ばれ、データ・アクセスをする。
-[[同様>#a0aa4dfe]]にインターフェイスと実装に分かれる。
-[[DI>依存性反転原則#g8343c51]]により、[[Interactor>#a0aa...
***Presenter [#k0ebeaab]
外部I/Oインターフェイス(UI⇔DB)間の情報伝達を行う。
-MVCのViewModelを生成する。
-[[同様>#a0aa4dfe]]にインターフェイスと実装に分かれる。
-[[DI>依存性反転原則#g8343c51]]により、[[Interactor>#a0aa...
**ドメイン駆動設計(DDD) [#h6ae72f7]
正直、微妙(実践が難しい)かなと。
***概要 [#v78536e5]
高位の概念と実践について多数述べられている。
-複雑なドメインの設計は、モデルベースで行うべき
-大半のソフトウェアプロジェクトでは、
--システムを実装するための特定の技術ではなく、
--ドメインそのものとドメインのロジックに焦点を置くべき。
***参考 [#vf91d6c3]
-ドメイン駆動設計 - Wikipedia~
https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A1%E3%82%A4...
*参考 [#j9329152]
-世界一わかりやすいClean Architecture - nuits.jp blog~
https://www.nuits.jp/entry/easiest-clean-architecture-201...
**Qiita [#nc8f6a2f]
-実装クリーンアーキテクチャ~
https://qiita.com/nrslib/items/a5f902c4defc83bd46b8
-フロントエンドでClean Architectureを適用してみる(+サンプ...
https://qiita.com/ttiger55/items/50d88e9dbf3039d7ab66
**OSSコンソーシアム [#tec78158]
***開発基盤部会 Blog [#o740357a]
-DDDに関して思った事(難し過ぎるとOOADの二の舞になるよ。...
https://www.osscons.jp/jok7exzd5-537/
>https://twitter.com/openhishopjpo/status/123754856969698...
-色々考え、汎用認証サイトのクリーン・アーキテクチャを放棄...
https://www.osscons.jp/jobvap48p-537/
>https://twitter.com/openhishopjpo/status/128410788134475...
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>依存性反転原則]]
*目次 [#l88da091]
#contents
*概要 [#z3bf9209]
[[最小構成の依存性反転原則>依存性反転原則#ecda4880]]を多...
*詳細 [#r787552c]
コア・ロジックは外部I/Oインターフェイス(UI、DB等)を使用...
-インターフェイス経由で利用することで、コンパチ可能に実装...
-[[DI>依存性反転原則#g8343c51]]により、インターフェイスを...
**メリット・デメリット [#i3942654]
***メリット [#zbf80ba5]
これにより、
-コア・ロジックは
-外部I/Oインターフェイス(UI、DB等)に
依存しないようにできる。
***デメリット [#gc0a10ca]
-[[依存性反転原則]]の注意事項にあった
--なんでもかんでも抽象化するとコードが 複雑化し、混沌となる
--抽象度を上げる時は、必ず必要最小限にすること
>などを超えている感があるのと、
-ホントにコンパチのシナリオはあり得るのか?
--疑問と言えば疑問。
--ただし、コンパチ・シナリオの可能性は増えつつある。
---RDB、NoSQL、WebAPI
---エンジニアリングの[[配管工化>https://www.google.com/se...
-MVC系の例が多いが、DesktopやFrontend系では、また別途検討...
***利用シーン [#g2119f30]
以下のようなユースケースでハマりそう。
-EAI/ETL系のデータフロー・オーケストレーションを実行する~
プロダクト([[Apache NiFi]]のような)ではなく、フレームワ...
-デファクトのフレームワークに~
御呪いを書くと繋がる系(ASP.NET の Startup.cs)
-以下の段階があり、どの段階が適合するか、よく検討する必要...
--ラッパー
--[[DI + IoC>依存性反転原則#w42dcdfc]]
--[[依存性反転原則]]
--クリーン・アーキテクチャ
**構成要素 [#r19a19fe]
***Controller [#m1c9b02b]
外部I/Oインターフェイス(UI)
-MVCのController
-ユーザの入力を解釈し、[[UseCase>#a0aa4dfe]]にそれを伝え...
***UseCase + Interactor [#a0aa4dfe]
コア・ロジック
-MVCでServiceManagerとも呼ばれる。
-UseCaseがインターフェイスで、Interactorが実装。
-[[DI>依存性反転原則#g8343c51]]により、[[Controller>#bc3f...
-コア・ロジックであるInteractorは、
--[[Repository>#y2e4ef36]]
--[[Presenter>#k0ebeaab]]
>などの外部I/Oインターフェイスを呼び出す。
***Repository [#y2e4ef36]
外部I/Oインターフェイス(DB)
-Storeとも呼ばれ、データ・アクセスをする。
-[[同様>#a0aa4dfe]]にインターフェイスと実装に分かれる。
-[[DI>依存性反転原則#g8343c51]]により、[[Interactor>#a0aa...
***Presenter [#k0ebeaab]
外部I/Oインターフェイス(UI⇔DB)間の情報伝達を行う。
-MVCのViewModelを生成する。
-[[同様>#a0aa4dfe]]にインターフェイスと実装に分かれる。
-[[DI>依存性反転原則#g8343c51]]により、[[Interactor>#a0aa...
**ドメイン駆動設計(DDD) [#h6ae72f7]
正直、微妙(実践が難しい)かなと。
***概要 [#v78536e5]
高位の概念と実践について多数述べられている。
-複雑なドメインの設計は、モデルベースで行うべき
-大半のソフトウェアプロジェクトでは、
--システムを実装するための特定の技術ではなく、
--ドメインそのものとドメインのロジックに焦点を置くべき。
***参考 [#vf91d6c3]
-ドメイン駆動設計 - Wikipedia~
https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A1%E3%82%A4...
*参考 [#j9329152]
-世界一わかりやすいClean Architecture - nuits.jp blog~
https://www.nuits.jp/entry/easiest-clean-architecture-201...
**Qiita [#nc8f6a2f]
-実装クリーンアーキテクチャ~
https://qiita.com/nrslib/items/a5f902c4defc83bd46b8
-フロントエンドでClean Architectureを適用してみる(+サンプ...
https://qiita.com/ttiger55/items/50d88e9dbf3039d7ab66
**OSSコンソーシアム [#tec78158]
***開発基盤部会 Blog [#o740357a]
-DDDに関して思った事(難し過ぎるとOOADの二の舞になるよ。...
https://www.osscons.jp/jok7exzd5-537/
>https://twitter.com/openhishopjpo/status/123754856969698...
-色々考え、汎用認証サイトのクリーン・アーキテクチャを放棄...
https://www.osscons.jp/jobvap48p-537/
>https://twitter.com/openhishopjpo/status/128410788134475...
ページ名: