系统的架构设计用来定义应用程序的基本特征和行为。
架构驱动
的软件开发是构建复杂系统的最有效方法,架构驱动的方法优于需求驱动,文档驱动和方法论(抽象推理的能力)驱动。虽然方法论(抽象推理的能力)能够帮助咱们取得项目的成功,可是它并非决定性的因素。 全部架构的核心:关注点分离
(分离角色和职能,分离以后的结果是对具体功能的高度抽象)。前端
架构设计的过程其实也是在梳理需求的过程当中不断标识
、封装
和操纵
关注点。
根据迪米特法则
和开闭原则
,分离以后的职责对象应该高度独立
和封闭
(优势是不须要关系它们内部的具体实现,只关心输入和输出便可)。架构
更容易构造有效的(职责)角色
和强力的模型
,变的更好开发,测试,管理和维护。性能
一、抽象职责(功能模块)
之间的相互做用
二、抽象职责
和数据流
之间的关系
测试
一、扩展性架构设计
二、弹性(伸缩性)设计
三、灵活性code
四、稳定性对象
一、灵活性
响应外部环境变化的能力,架构中是否便捷作一些改变,功能模块间的紧耦合是下降灵活性的关键。开发
二、易于部署文档
三、易于开发
四、可测试性
职责和数据流的划分,便于分块测试。
五、伸缩性
系统是否利于扩展,紧耦合与职责划分不清晰是下降伸缩性的关键。
六、性能
任何架构的本质是在处理数据流,因此数据流的流转效率决定了该架构的性能。
本文提出的这些观点实际上也是属于架构设计的方法论
。在掌握并熟练运用了这些方法论以后并实践到项目中,慢慢的才会搭建出更好的架构。
ps:因为本人比较懒,因此没有针对一些名词作具体讲解和示例。