收藏 | 架构设计的基础认知

发布于 2022-4-29 13:28
浏览
0收藏

收藏 | 架构设计的基础认知-开源基础软件社区

1.1 架构的定义


软件架构指软件系统的顶层结构。

 

1.2 架构、框架、组件、模块、系统的本质


 •  架构是顶层设计; 


 •  框架是面向编程或配置的半成品; 


 •  组件是从技术维度上的复用; 


 •  模块是从业务维度上职责的划分; 


 •  系统是相互协同可运行的实体。


1.3 架构与框架的区别?


1.软件架构:软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。 


2.软件框架:为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。

 

架构关注的是“结构”,框架关注的是“规范”。

收藏 | 架构设计的基础认知-开源基础软件社区2.1 背景探寻


只有规模较大的软件系统才面临软件架构相关的问题。 
例如: 
1)系统规模庞大、内部耦合严重,开发效率低; 
2)系统耦合严重,牵一发动全身,后续修改和扩展困难; 
3)系统逻辑复杂,容易出问题,出问题后很难排查和修复。

 

2.2 设计的重要性


 •  布鲁克斯发表《人月神话》三十年后,又写了《设计原本》。他认为一个成功的软件项目的最重要的因素就是设计。 

 

 •  架构师、设计师需要在业务需求和IT技术中寻找一个平衡点。而对这个平衡点的把握,就是架构设计中的取舍问题。 

 

 •  这种取舍的决策大部分是靠技术(新工具、方法论、管理模式的提升),但一定程度上也依赖于架构师的“艺术”(无法量化,需要权衡)。
收藏 | 架构设计的基础认知-开源基础软件社区3.1 架构设计的主要目的


为了解决软件系统功能复杂度带来的问题。

 

3.2 架构设计的认知


1.认知1:需求驱动架构。 
通过熟悉和理解需求,识别系统复杂性所在的地方,然后针对这些复杂点进行架构设计。

 

2.认知2:架构设计并不是要面面俱到。 
不需要每个架构都具备高性能、高可用、高扩展性等特点,而是要识别出复杂点,然后有针对的解决问题。

 

3.认知3:架构是为了应对软件复杂度而提出的解决方案。 
理解每个架构方案背后所需要解决的复杂点,才能对比自己业务复杂点,参考复杂点相似的方案。

 

架构即(重要)决策,是在一个有约束的盒子里去求解出或接近求解出最合适的解。 
有约束的盒子=团队经验、成本、资源、进度、业务所处的阶段等编织、掺杂在一起的综合体(人,财,物,时间)。

 

架构无优劣,但是存在恰当的架构用在合适的软件系统中,而这些都是决策的结果。

 
收藏 | 架构设计的基础认知-开源基础软件社区
 •  最大收获:认清了架构设计的主要目的是——为了解决软件系统功能复杂度带来的问题。 


 •  反过来说,如果要对一个新产品、项目开发进行架构设计,先需要结合需求、排出软件系统功能复杂度, 

 

 •  针对软件系统功能复杂度最高的部分进行架构选型、设计。

收藏
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐