「架构师训练营」第 1 周学习总结
架构师如何做架构
任职要求
开篇第一课,首先通过从各大厂对架构师的招聘信息来了解对架构师的岗位职责,架构师应该具备哪些技术技能、专业支持以及其他能力。
我们了解到,各大厂对架构师的任职要求,架构师需要完成公司产品的整体架构设计,具备海量数据和大规模分布式系统的设计和开发经验,擅长运用消息中间件、分布式事务等应用架构,微服务架构,同时对常用的框架有较深的理解和运用。让我们对架构师的技术领域、专业技能有了一个印象。
除了技术领域和专业技能外,架构师还需要具备良好的沟通协作能力。
主要职责
架构师的主要职责,也是后面课程要讲的内容提纲。
什么是架构
软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。--维基百科
架构设计最重要的是,架构是给谁看的,要考虑到相关方的利益。老板,开发,测试,维护人员这些都是相关方,给每个不同的对象看,架构考虑的方面、展现的内容是不一样的。
如何做架构设计文档
架构是关于架构元素和元素间关系的描述,架构文档是一组架构视图组成的,架构视图反映了相关方的关注点。架构是给相关方做的,架构不是给自己做的。我做的架构文档,相关方能不能看得懂,看不懂我应该如何去做改进。
4+1视图模型
逻辑视图,开发视图,物理视图,过程视图 + 场景视图。
视图所对应的相关方是不同的,大家所关注的方面是不一样的,所以要通过4+1针对不同的相关方,展示不同的内容。
逻辑视图
相关方:客户、用户、开发组织管理者。
视角:系统的功能元素,以及他们的接口、职责、交互。
主要元素:系统、子系统、功能模块、子功能模块、接口。
用途:开发组织划分,成本/进度的评估。
开发视图
相关方:开发相关人员、测试人员。
视角:系统如何开发实现。
主要元素:描述系统的层、分区、包、框架、系统通用服务、业务通用服务、类和接口、系统平台和相关基础框架。
用途:指导开发组织设计和开发实现。
物理视图
相关方:系统集成商、系统运维人员。
视角:系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置。
主要元素:物理节点以及节点的通信。
过程视图
相关方:性能优化、开发相关人员。
视角:系统运行时线程、进程的情况。
主要元素:系统进程、线程以及处理队列等。
场景视图
相关方:用户、设计和开发人员。
视角:概括了架构上最重要的场景(最典型或者最有风险)及其非功能性需求,通过这些场景的实现,阐明了架构的广度或众多架构元素进行的方式。
统一建模语言(UML)
常用的7种图:
用例图(用来描述角色,动作,关系,边界)
类图(用来描述核心类之间的关系,类之间的调用一定是同步消息)
状态图(用来描述状态的变化关系)
时序图(用来描述动态交互关系,有时间顺序)
活动图(用来描述活动对象的处理过程和分支流程,表示一个活动)
组件图(用来描述系统内的组件组成部分,可以是一个子系统,模块,物理节点等)
部署图(用来描述系统的部署节点物理空间的逻辑关系)
评论