Rust后端的清洁Clea架构源码项目


许多架构模式来设计 Web 应用程序。一个著名的是Robert C. Martin的“清洁Clean架构”:
该架构将项目分成不同的层,以生成符合以下要求的系统

  1. 独立于框架。该架构不依赖于某些功能丰富的软件库的存在。这使您可以将此类框架用作工具,而不必将系统塞入其有限的约束中。
  2. 可测试。可以在没有 UI、数据库、Web 服务器或任何其他外部元素的情况下测试业务规则。
  3. 独立于用户界面。UI 可以轻松更改,而无需更改系统的其余部分。例如,可以用控制台 UI 替换 Web UI,而无需更改业务规则。
  4. 独立于数据库。您可以将 Oracle 或 SQL Server 换成 Mongo、BigTable、CouchDB 或其他东西。您的业​​务规则未绑定到数据库。
  5. 独立于任何外部架构。事实上,您的业务规则根本不了解外部世界。

但是,在我看来,所谓的“干净架构”过于复杂,其行话只能与专业架构师产生共鸣,而且抽象层太多。它不适用于实际编写代码的人。
这就是为什么我提出另一种方法,同样灵活但更简单,可用于传统的服务器端呈现的 Web 应用程序和 JSON API。

据我所知,这个架构没有正式的名字,但我已经成功地将它用于 Rust、Go 和 Node.JS 中超过数万行代码的项目。
使用这种架构的优点是,如果将来修改需求或一个依赖项,则更改是本地的并且是孤立的。
源码点击标题
banq评:作者没有充分理解Clean架构核心思想,以自己方便舒适为第一设计原则,实则扭曲了设计宗旨,将业务逻辑放在服务之中,使得“服务员”做“厨师”的工作,小饭店是可以的。