clean架构核心是依赖管理


许多开发者将Clean架构的图示直接转化为项目结构,但作者指出,Clean 架构实际上不是关于文件夹的,而是关于依赖关系的管理。

传统的基于技术分层的代码组织方式会导致相关组件分散在多个项目中,违反了共同封闭原则,隐藏了依赖关系,缺乏业务意图,并且使得维护变得更加困难。

两种更好的代码组织方式:

  • 按功能打包(Package by Feature):将每个功能组织在独立的命名空间中,包含实现该功能所需的一切。
  • 按组件打包(Package by Component):将相关功能组织在一个组件内,只有组件的接口是公开的,其他都是内部实现。

文章通过一个保险政策系统的例子,展示了如何将传统的分层应用转化为一个干净的、基于组件的结构。
文章还讨论了在.NET中实施Clean 架构时的实际限制,包括封装的限制和折中方案。

结论:
Clean 架构不是关于项目、文件夹或完美封装的,而是关于围绕业务能力组织代码、有效管理依赖关系、保持相关代码在一起以及明确界限。

Clean 架构构建具有适当边界、清晰依赖和业务聚焦组件的可维护应用程序。

文章强调了Clean Architecture的核心在于依赖管理,而不是追求完美的封装。作者建议从单一项目开始,使用组件,使接口公开,实现内部化,并在需要时添加架构测试。