roman_日积跬步-终至千里

roman_日积跬步-终至千里

本文关键字

一. 架构定义与架构的作用

要想准确地理解架构的定义,关键就在于把三组容易混淆的概念梳理清楚:系统与子系统、模块与组件、框架与架构。

1. 系统与子系统

 

2. 模块与组件

 

3. 框架与架构

框架是一整套开发规范,架构是某一套开发规范下的具体落地方案,包括各个模块之间的组合关系以及它们协同起来完成功能的运作规则。

 

4. 重新定义架构:4R 架构

重新定义为:软件架构指软件系统的顶层(Rank)结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。
【架构方法论(一)】架构的定义与架构要解决的问题-LMLPHP

 

第一个 R,Rank。

第二个 R,Role。

第三个 R,Relation。

第四个 R,Rule。

 

二、架构设计的真正目的-别掉入架构设计的误区

1. 是为了解决软件复杂度

架构设计的主要目的是为了解决软件系统复杂度带来的问题。

 

如果明确了“架构设计是为了解决软件复杂度”原则后,下面的问题就很好回答。

 

其次,遵循这条准则能够让“老鸟”架构师有的放矢,而不是贪大求全。

如下误区:

实际上

 

2. 简单的复杂度分析案例

假设我们需要设计一个大学的学生管理系统,其基本功能包括登录、注册、成绩管理、课程管理等。当我们对这样一个系统进行架构设计的时候,首先应识别其复杂度到底体现在哪里。

通过上面的分析,可以看到这个方案的主要复杂性体现在存储可靠性上,需要保证异常的时候,不要丢失所有数据即可(丢失几个或者几十个学生的信息问题不大),对应的架构如下:
【架构方法论(一)】架构的定义与架构要解决的问题-LMLPHP

 
 

三. 案例思考

找到核心的复杂点
【架构方法论(一)】架构的定义与架构要解决的问题-LMLPHP
 

不要为了架构而架构
【架构方法论(一)】架构的定义与架构要解决的问题-LMLPHP

 
识别架构复杂程度与具体化
【架构方法论(一)】架构的定义与架构要解决的问题-LMLPHP

 
 
参考:李运华-《从零开始学架构》

04-21 21:27