架构师训练营 Week01 总结
自己不只道自己不知道的东西
对未知的东西,如果想知道,就需要去学习。所以报名了架构师训练营。课程介绍了什么是架构和机构师。
架构师的职责和能力、需要做什么工作,要懂什么知识。这些都是未曾了解的。学习过后大致知道是什么了。
对于以前对这些不曾了解不知如何走,如果想成为架构师,现在这课程给了一定的方向。
架构师和架构
什么是架构师
架构师是做架构设计、对系统架构负责的那个人。
架构师是一顶帽子,而不是一把椅子;架构师是一个角色而不是一个职位。
架构师的主要职责
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
进行技术选型,解决技术应用中的问题
优化系统性能
模块分解与微服务架构重构
保障系统安全与高可用
大数据应用
技术创新
沟通管理
架构师主要能力
编程能力
基础技术掌握能力
常用技术产品的理解与应用能力
性能优化与分析故障的能力
常用架构模式和框架的理解与应用能力
建模以及设计文档的方法和能力
业务理解与功能模块及非功能模块拆解能力
快速学习能力
沟通与领导能力
什么是软件架构
软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
- 维基百科
关于软件开发的几个事实
软件技术的进步使得程序员不需要了解技术细节和原理就能开发出能用的软件。
让程序员关注更少的事情有助于提高软件开发效率和质量。
如何做软件架构
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
进行技术选型,解决技术应用中的问题
优化系统性能
模块分解与微服务架构重构
保障系统安全与高可用
大数据应用
技术创新
沟通管理
如何进行软件架构设计
编写架构设计文档
软件架构的4+1视图模型
软件架构 = {元素,形式,关系/约束}
单一的视图无法完整的表达架构,因此需要具备完整的视图集
逻辑视图(Logical View),设计的对象模型
过程视图(Process View),捕捉设计的并发和同步特征。
物理视图(Physical View),描述了软件到硬件的映射,反映了部署特性。
开发视图(Development View),描述了在开发环境中软件的静态组织结构。
场景视图(scenarios),描述用例场景
逻辑视图
相关方:客户,用户,开发组织管理者。
视角:系统的功能元素,以及它们接口,职责,交互。
主要元素:系统,子系统,功能模块,子功能模块,接口。
用途:开发组织划分,成本/进度的评估。
开发视图
相关者:开发相关人员,测试人员
视角:系统如何开发实现
主要元素:描述系统的层,分区,包,框架,系统通用服务,业务通用服务,类和接口,
系统平台和相关基础框架。
用途:指导开发组织设计和开发实现
物理视图
相关者:系统集成商,系统运维人员。
视角:系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置。
主要元素:物理节点以及节点的通信。
过程视图
相关者:性能优化,开发相关人员。
视角:系统运行时线程,进程的情况。
主要元素:系统进程,线程以及处理队列等。
场景视图
相关者:用户,设计和开发人员。
视角:概括了架构上最重要的场景(最典型或者最有风险)及其非功能性需求,通过这些场景的实现,阐明了架构的广度或众多架构元素运行的方式。
UML建模的工具和方法
什么是模型?
模型是一个系统的完整的抽象。人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴涵在模型中。
通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领域问题到计算机系统的映射。
为什么要建造模型?
建造传统模型的目的
为了证明某件事物能否工作
前提:建造模型的成本远远低于建造实物的成本
造飞机
造高楼
建造软件模型的目的
•为了与它人沟通
为了保存软件设计的最终成果
前提:除非模型比代码更说问题
何时、何处画图?
何时画图?
讨论、交流时
最终设计文档
只保留少量的、重要的图
避免涉及过多内容和实现细节
何处画图?
白板
绘图工具,如:Visio、Astah
draw.io
静态建模
任何建模语言都以静态建模机制为基础,标准建模语言UML也不例外。所谓静态建模是指对象之间通过属性互相联系,而这些关系不随时间而转移。
类和对象的建模,是 UML 建模的基础。UML 的静态建模机制包括:
用例图(Use case diagram)
类图(Class diagram)
对象图(Object diagram )
包图(Package diagram)
组件图(Component diagram)
部署图(Deployment diagram)
动态建模
动态模型主要描述系统的动态行为和控制结构。动态行为包括系统中对象生存期内可能的状态以及事件发生时状态的转移,对象之间动态合作关系,显示对象之间的交互过程以及交互顺序,同时描述了为满足用例要求所进行的活动以及活动间的约束关系。
在动态模型中,对象间的交互是通过对象间消息的传递来完成的。对象通过相互间的通信(消息传递)进行合作,并在其生命周期中根据通信的结果不断改变自身的状态。
动态模型
动态模型主要描述系统的动态行为和控制结构。
包括四类图:状态图、活动图、时序图、合作图。
状态图(state diagram):状态图用来描述对象,子系统,系统的生命周期。
活动图(activity diagram):着重描述操作实现中完成的工作以及用例实例或对象中的活动,活动图是状态图的一个变种。
时序图(sequence diagram)):是一种交互图,主要描述对象之间的动态合作关系以及合作过程中的行为次序,常用来描述一个用例的行为。
合作图(collaboration diagram):用于描述相互合作的对象间的交互关系,它描述的交互关系是对象间的消息连接关系。
评论