干净的独立架构
Clean independent architecture
我在 Bob 叔叔的书 clean architecture
第 21 章中读到,一个好的架构必须独立于它将 运行 进入的交付系统,无论是 Web 应用程序还是控制台应用程序或胖客户端应用程序。
现在我想用 c# 开发我的软件的核心,我怎么可能将它作为 Web 客户端应用程序交付?反之亦然,如果我选择 Typescript 作为语言,我该如何将我的应用程序作为桌面应用程序交付?
我的问题是我是否误解了书中指出的概念,或者我是否可以在不依赖某些框架的情况下用一种语言编写通用软件?
如果您使用 C# 编写应用程序的核心,则有多种选择可以将其作为 Web 应用程序交付:ASP.net、Web api 和其他框架。这个想法是应用程序的内层(用例、实体等)独立于该交付机制。
同样,如果你在 Typescript 中这样做,如果你想使用 Electron 之类的东西重新部署它,你当然可以。再一次,它将是您架构的内层,而不是外层(服务和模型)。
如果您在内层依赖 UI 框架,那么您没有使用干净的架构。应该是独立的,和它隔离的(如果不出意外,只是为了测试)。
我在 Bob 叔叔的书 clean architecture
第 21 章中读到,一个好的架构必须独立于它将 运行 进入的交付系统,无论是 Web 应用程序还是控制台应用程序或胖客户端应用程序。
现在我想用 c# 开发我的软件的核心,我怎么可能将它作为 Web 客户端应用程序交付?反之亦然,如果我选择 Typescript 作为语言,我该如何将我的应用程序作为桌面应用程序交付?
我的问题是我是否误解了书中指出的概念,或者我是否可以在不依赖某些框架的情况下用一种语言编写通用软件?
如果您使用 C# 编写应用程序的核心,则有多种选择可以将其作为 Web 应用程序交付:ASP.net、Web api 和其他框架。这个想法是应用程序的内层(用例、实体等)独立于该交付机制。
同样,如果你在 Typescript 中这样做,如果你想使用 Electron 之类的东西重新部署它,你当然可以。再一次,它将是您架构的内层,而不是外层(服务和模型)。
如果您在内层依赖 UI 框架,那么您没有使用干净的架构。应该是独立的,和它隔离的(如果不出意外,只是为了测试)。