我正在寻找有关应用程序的某个目录结构的反馈。我意识到这并不遵循经典的堆栈溢出格式,其中存在“正确答案”之类的东西,尽管认为它仍然很有趣。为了提供有意义的反馈,首先需要了解一些上下文,所以请多多包涵。
--
我和我的两个同事创建了一个使用Clean Architecture的应用程序。对路由的 HTTP 请求被转换为请求模型,该模型被交给用例,然后吐出一个响应模型,该响应模型被交给演示者。
该代码是完全开源的,可以在 GitHub 上找到。我们还有一些文档描述了主目录的内容。
我们正在考虑重新组织我们的代码,并希望获得有关我们迄今为止提出的反馈。此次重组的主要原因包括:
现在我们没有一个好地方来放置不属于我们域的东西,但以某种方式绑定到它。例如授权代码,它知道捐赠 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/
文件夹将为我们当前在基础设施中奇怪放置的授权代码提供一个主页。其他不属于我们域的代码,但绑定到它,可以直接进入上下文文件夹,如果其中有一堆内聚/相关的东西,例如授权,则可以获取自己的文件夹。
我很高兴提供您需要提供有用反馈的其他信息。