架构师如何做架构(训练营第一课)
什么是架构师
架构师是做架构设计、对系统架构负责的那个人
架构师是一顶帽子,而不是一把椅子;
架构师是一个角色,而不是一个职位
架构师主要职责 (如何做软件架构)
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
技术选型,解决技术应用中的问题
优化系统性能
模块分解与微服务架构重构
保障系统安全和高可用
大数据应用
技术创新
沟通管理
架构师主要能力
编程能力
基础技术掌握能力
常用技术产品的理解和应用能力
性能优化与分析故障的能力
常用架构模式和框架的理解与应用
建模以及设计文档的方法和能力
业务理解与功能模块及非功能模块拆解能力
快速学习能力
沟通与领导能力
再说架构师能力
只有好的代码是不够的 -> 要会推广并让人信任
夸夸其谈能帮你带来掌声
解决棘手问题能帮你带来名声
奠定架构师地位的,是让别人依赖你的代码
优秀的架构师必须是软件开发的全才
卓越的编程能力
解决棘手问题的能力
广阔的知识面
洞悉技术背后的本质和规律
沟通和打动人心的能力 (说服不懂技术的老板)
什么是架构设计
软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。(维基百科)
软件建模与设计文档
4+1 视图视图
软件架构 = {元素,形式,关系/约束}
单一的视图无法完整地表达架构,因此需要具备完整的视图集合。
逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。
过程视图(Process View),捕捉设计的并发和同步特征。
物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。
开发视图(Development View),描述了在开发环境中软件的静态组织结构。
场景视图(Scenario View),描述用例场景
软件建模
软件设计的 3 个阶段
需求分析 - 用例图(核心)、活动图(描述业务流程)、状态图(描述关键业务对象的变迁)、外部系统级的时序图(当前系统和外部系统的交互)
概要设计 - 部署图(顶层、子系统)、序列图(子系统)、活动图(子系统)、组件图(子系统)、序列图(组件)、活动图(组件、可选)
详细设计 - 类图(组件)、时序图(类)、状态图(类、状态枚举、转换条件bool)、活动图(类的方法)
评论