【发布时间】:2016-10-27 02:32:18
【问题描述】:
我正在寻找有关应用程序特定目录结构的反馈。我意识到这不遵循经典的堆栈溢出格式,其中有“正确答案”之类的东西,尽管它认为它很有趣。为了提供有意义的反馈,首先需要了解一些上下文,所以请多多包涵。
--
我和我的两个同事创建了一个使用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/ 文件夹将为我们目前在基础设施中奇怪放置的授权代码提供一个主页。其他不属于我们域的代码,但绑定到它,可以直接进入上下文文件夹,如果其中有一组内聚/相关的东西,例如授权,则可以获取自己的文件夹。
我很高兴为您提供提供有用反馈所需的其他信息。
【问题讨论】:
标签: namespaces package domain-driven-design bounded-contexts