《架构整洁之道》之尖叫的软件架构

一、架构设计的主题

架构设计不是与框架相关的,这件事不应该是基于框架来完成的。对于我们来说,框架只是一个可用的工具和手段,而不是一个架构所规范的内容。如果我们的架构是基于框架来设计,它就不能基于我们的用例来设计了。

二、架构设计的核心目标

一个良好的架构设计应该围绕着用例来展开,这样的架构设计可以在脱离框架、工具以及使用环境的情况下完整地描述用例。这就好像一个住宅建筑设计的首要目标应该是满足住宅的使用需求,而不是确保一定要用砖来构建这个房子。架构师应该花费很多精力来确保该架构的设计在满足用例需要的情况下,尽可能地允许用户能自由地选择建筑材料(砖头、石料或者木材)。

三、那Web呢?

Web不是一种架构,只是一种交付的手段。一种IO设备,这就是它在应用程序的架构设计中的角色。换句话说,应用程序采用Web方式来交付只是一个实现细节,这不应该主导整个项目的结构设计。事实上,关于应该应用程序是否应该以Web形式来交付这件事,它本身就应该是一个被推迟和延后的决策。一个系统应该尽量保持它与交付方式之间的无关性。

四、框架是工具而不是生活信条

我们一定要带着怀疑的态度审视每一个框架。是的,采用框架可能会很有帮助,但采用它们的成本呢?我们一定要懂得权衡如何使用一个框架,如何保护自己。无论如何,我们需要仔细考虑如何保持对系统用例的关注,避免让框架主导我们的架构设计。

五、可测试的架构设计

如果系统架构的所有设计都是围绕着用例来展开的,并且在使用框架的问题上保持谨慎的态度,那么我们就应该可以在不依赖任何框架的情况下针对这些用例进行单元测试。另外,我们在运行测试的时候不应该运行Web服务,也不应该需要连接数据库。我们测试的应该只是一个简单的业务实体对象,没有任何与框架、数据库相关的依赖关系。总而言之,我们应该通过用例对象来调度业务实体对象,确保所有的测试都不需要依赖框架。

文章目录
  1. 一、架构设计的主题
  2. 二、架构设计的核心目标
  3. 三、那Web呢?
  4. 四、框架是工具而不是生活信条
  5. 五、可测试的架构设计