干净的独立架构

时间:2018-10-23 20:38:04

标签: architecture software-design software-distribution

我在鲍伯叔叔的书def ordinal_with_if(i): sig_digits = i % 100 if 3 < sig_digits < 21: return str(i) + 'th' elif sig_digits % 10 == 1: return str(i) + 'st' elif sig_digits % 10 == 2: return str(i) + 'nd' elif sig_digits % 10 == 3: return str(i) + 'rd' else: return str(i) + 'th' 的第21章中已经读到,好的架构必须独立于将要运行的交付系统,无论是Web应用程序,控制台应用程序还是胖客户端应用程序。

现在应该是我想用c#开发软件的核心,我怎么可能将其作为Web客户端应用程序交付?反之亦然,如果我选择Typescript作为我的语言,那么我该如何将我的应用程序作为桌面应用程序交付?

我的问题是天气是我误解了书中指出的概念,还是我可以不用某种框架就可以用一种语言编写通用软件?

1 个答案:

答案 0 :(得分:2)

如果您使用C#编写应用程序的核心,则可以选择将其作为Web应用程序交付:ASP.net,Web api和其他框架。想法是,应用程序的内部层(用例,实体等)独立于该交付机制。

就像您在Typescript中进行操作一样,如果您想使用process substitution之类的方式重新部署它,当然可以。再一次,它将是架构的内部层,而不是外部部分(服务和模型)。

如果您依靠内部层中的UI框架,则说明您未使用干净的体系结构。它应该是独立的并且与之隔离(如果没有其他要求,仅用于测试)。