architecture - 干净的独立架构
问题描述
我在鲍勃叔叔的书clean architecture
第 21 章中读到,一个好的架构必须独立于它将在其中运行的交付系统,无论是 Web 应用程序、控制台应用程序还是胖客户端应用程序。
现在假设我想用 c# 开发我的软件的核心,我怎么可能将它作为 Web 客户端应用程序交付?反之亦然,如果我选择 Typescript 作为我的语言选择,我如何将我的应用程序作为桌面应用程序交付?
我的问题是天气我是否误解了书中指出的概念,或者我是否可以用一种语言编写通用软件而不依赖于某些框架?
解决方案
如果您使用 C# 编写应用程序的核心,则有多种选择可以将其作为 Web 应用程序交付:ASP.net、Web api 和其他框架。这个想法是应用程序的内层(用例、实体等)独立于该交付机制。
如果你在 Typescript 中做同样的事情,如果你想使用像Electron这样的东西重新部署它,你当然可以。再一次,它将是架构的内层,而不是外部位(服务和模型)。
如果你在你的内层依赖你的 UI 框架,那么你没有使用干净的架构。它应该是独立的并且与它隔离(如果没有别的,只是为了测试)。
推荐阅读
- kentico - 如何安排电子邮件通讯
- android - 应用程序 UI 未从高速套接字接收所有数据
- vue.js - 使用 Vuelidate 从父组件验证子组件中的表单输入字段
- php - php-amqplib/rabbitmq-bundle 消费者不要关闭
- android - 如何计算firebase实时数据库中子节点内的值的总和?
- perl - 在 /root/perl5/lib/perl5/Parallel/ForkManager.pm 第 73 行的模式匹配 (m//) 中使用未初始化的值 $args[0]
- jmeter - 无法定位元素:{"method":"xpath","selector":"//button[contains(text(),'New patient')]"}
- python - Pandas: Plot a histogram of times in intervals of 10 minutes
- javascript - img 嵌入式 SVG 在将其转换为内联 SVG 后不会改变颜色
- dojo - Dojo 1.8.1 的支持级别