架构师训练营第一周总结
1.架构师的主要职责
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
进行技术选型,解决技术应用中的问题
优化系统性能
模块分解与微服务架构重构
保障系统安全与高可用
大数据应用
技术创新
沟通管理
2.架构师主要能力
编程能力
基础技术掌握能力
常用技术产品的理解与应用能力
性能优化与分析故障的能力
常用架构模式和框架的理解与应用能力建模以及设计文档的方法和能力
业务理解与功能模块及非功能模块拆解能力快速学习能力
沟通与领导能力
3.什么是软件架构
每个系统都有一个架构
架构是关于架构元素(服务器、模块、组件、类等)和元素间关系的一个描述(服务器直接的调用关系、类与类直接的关联关系等,可分为动态 关系和静态关系)
如何描述需要写入架构文档
元素间关系是通过架构视图描述的
架构文档是由架构视图组成的
架构视图反映相关方的关注点
架构是给相关方做的(不是给自己做的),要满足相关方的诉求
3.1 4+1 视图
3.1.1逻辑视图
相关方:客户,用户,开发组织管理者。
视角:系统的功能元素,以及它们接口, 职责,交互。
主要元素:系统,子系统,功能模块,子功能模块,接口。
用途:开发组织划分,成本/进度的评估。
3.1.2 开发视图
相关者:开发相关人员,测试人员。
视角:系统如何开发实现。
主要元素:描述系统的层,分区,包,框架,系统通用服务,业务通用服务,类和接口,系统平台和相关基础框架。
用途:指导开发组织设计和开发实现。
3.1.3 物理视图
相关者:系统集成商,系统运维人员。
视角:系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置。
主要元素:物理节点以及节点的通信。
3.1.4 过程视图
相关者:性能优化,开发相关人员。
视角:系统运行时线程,进程的情况。
主要元素:系统进程,线程以及处理队列等。
3.1.5 场景视图
相关者:用户,设计和开发人员。
视角:概括了架构上最重要的场景(最典型或者最有风险)及其非功能性需求,通过这些场景的实现,阐明了架构的广度或众多架构元素运行的方式。
4.模型
模型是一个系统的完整的抽象。
人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴涵在模型中。
通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领域问题到计算机系统的映射
软件建模就是软件设计
4.1 UML
4.1.1用例图
主要用在功能需求描述,什么样的人使用,功能之间的关系是什么
4.1.2类图
主要用在开发阶段(详细设计)
4.1.3组件图
4.1.4部署图
架构师第一张图,就是部署图
4.1.5序列图
动态交互关系
4.1.6活动图
描述流程
4.1.7状态图
5.软件文档编写
6.方法论
架构师输出产物是文档,架构是为相关方做的,不同的人关注点不一样,输出的文档不一样
架构师要做的事情是 还没开发之前,对整个系统有一个完成的抽象
最难的是抽象的能力,要理解业务,设计的系统要与现实的世界一致,通过画图,建模的方式表现出来
版权声明: 本文为 InfoQ 作者【涛】的原创文章。
原文链接:【http://xie.infoq.cn/article/54143dbcea8e67ff946f9b0df】。文章转载请联系作者。
评论