[架构实战] 学习笔记
什么是架构
系统
泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体,它的意思是“总体”、“整体”或“联盟”
子系统
由一群有关联的个体所组成的系统,多半会是更大系统中的一部分
模块
由一套一致而相互有紧密关联的软件组织。它分别包含了程序和数据结构两部分。现代软件开发往往利用模块作为合成的单位。模块的借口表达了由该模块提供的功能和调用它所需的元素。模块是可能分开被编写的单位。这使它们可再用和允许人员同时协作、编写及研究不同的模块。
组件
自包含的、可编程的、可重用的、与语言无关的软件单元,软件组成可以很容易被用于组装应用程序中
软件框架
通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
软件架构
软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述
4R 架构 - Rank+ Role+ Releation + Rule
分层架构:是一种可扩展架构模式
架构分层:架构自顶向下,逐步细化
4+1 架构试图
逻辑视图: 系统提供给用户的功能,对应 UML 的 class 和 state diagrams .
处理视图:系统的处理过程,对应 UML 的 sequence 和 activity diagrams.
开发视图:程序员角度看系统的逻辑组成,对应 UML 的 package diagrams .
物理试图:系统工程角度看系统的物理组成,对应 uml 的 deployment diagrams .
场景试图:用户角度看系统需要实现的需求,对应 UML 的 use case diagrams .
面向复杂度的架构设计
架构设计的三原则
一、合适原则
合适优于业界领先
软件设计要考虑: 资源、时间、业务
团队的技术水平
方案的成本
开发周期
二、简单原则
简单优于复杂
奥卡姆剃刀:若无必要,勿增实体
复杂度:内部复杂度、外部复杂度
系统越复杂越不可靠、越难扩展,越难处理
三、演讲原则
演化优于一步到位
架构设计原则的应用:
设计出来的架构要满足当时的业务需要,符合团队和技术的能力水平(合适原则)
先按照简单的方式来设计架构,然后不断地在实际应用过程中迭代优化(简单原则)
当业务发生变化是,架构要扩展、重构、甚至重写(演化原则)
评论