アプリケーションの特定のディレクトリ構造に関するフィードバックを探しています。私はこれが "正しい答え"のようなものがある古典的なスタックオーバーフローフォーマットには従わないが、それでも面白いと思うが、意味のあるフィードバックを提供するには、最初にいくつかの文脈を理解する必要がありますので、私にご負担ください。ディレクトリ構造内でコンテキストを明示的にする
-
私の2人の同僚と私はClean Architectureを使用するアプリケーションを作成しました。ルートへのHTTPリクエストは、リクエストモデルに変換され、ユースケースに渡され、プレゼンターに渡されるレスポンスモデルが吐き出されます。
コードは完全にオープンソースで、on GitHubがあります。メインディレクトリの内容についてはsome docsも記載しています。
私たちはコードを再編成することを考えており、私たちがこれまでに思い付いたことについてフィードバックを得たいと考えています。主にこの再編の理由の中で、次のとおりです。
今私たちは、ドメインの一部ではないものを入れるのに良い場所を持っていない、まだ何とかそれに特異的に結合します。例えば、寄付IDについて知っている認可コード(寄付IDは、認可がコアドメインの一部ではない)。
結束性のあるものをまとめてグループ化するとよいです。私たちの寄付コードは結束しており、メンバーシップアプリケーションコードは結束していますが、お互いに依存しません。これは、ドメイン駆動型設計における束縛されたコンテキストの概念と密接に関連しています。現在のところ、これらのコンテキストはコードでは明示的には表示されないため、特にドメインに精通していない場合は、それらを互いに依存させるのは簡単です。
これらはこれまでに特定したコンテキストです。これは暫定的なリストであり、あなたにアイデアを提供するだけであり、フィードバックが必要な部分ではありません。
- 寄付
- 会員
- フォームのサポートスタッフ(電子メールの検証、IBANの世代、など)
私は上のフィードバックをしたい部分は、私たちがへの切り替えを考えるディレクトリ構造であります:
src/
Context_1/
DataAccess/
Domain/
Model/
Repositories/
UseCases/
Validation/
Presentation/
Authorization/
Context_2/
Factories/
Infrastructure/
tests/
Context_1/
Unit/
Integration/
EdgeToEdge/
System/
TestDoubles/
Context_2/
Authorization/
フォルダは、コンテキストのすぐ内側にあります現在インフラストラクチャに奇妙に配置された認証コード。私たちのドメインに属していない他のコードは、それにバインドされていてもコンテクストフォルダに直接行くことができ、承認のような密接な/関連する束があれば独自のフォルダを取得します。
有用なフィードバックを提供するために必要な追加情報を提供しています。
あなたは、ユースケースで承認を行うべきではなく、代わりにあなたが特定のユースケースを呼び出すものを何と呼んでもよいと言っていますか? –
通常、アプリケーションサービスはユースケースを実装します。だからあなたのユースケースが "寄付をする"ことだったら、これを処理するためのアプリケーションサービス(あるいはもっと可能性の高いコマンドハンドラ)が必要です。この中に、その人が寄付をする権限を持っているかどうかを確認できます。 – tomliversidge
https://github.com/gregoryyoung/m-r/blob/master/SimpleCQRS/CommandHandlers.csはコマンドハンドラの例です。ここでは、コンストラクタに承認を行うことも渡すことができます。より良いアプローチは、コマンドハンドラクラス自体にデコレータパターンを使用することです。私は[ここ](https://youtu.be/whCk1Q87_ZI?t=4227)で参照されているビデオのこの点を参照してください。 – tomliversidge