成为架构师(训练营 week1)
知识总结
什么是软件架构?
软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
关于软件架构的架构图:
每一个系统都有一个架构,架构由架构元素(子系统、服务器、模块、组件、类)、元素间关系(动态、静态)组成。一个架构关联一个架构文档,架构文档由架构视图(多个视图立体呈现)组成。
不同的系统相关方(老板、需求方、工程师、测试、运维),对系统有不同的关注点。不同的关注点关联不同的架构视图,最终呈现的架构文档也不相同。
什么是架构师?
架构师是做架构设计、对系统架构负责的人。不是架构师也可以做架构设计。
软件建模与架构设计文档
4+1视图模型
逻辑视图、开发视图、物理视图、过程视图+场景视图(不同的关注点,不同维度立体呈现软件设计)
软件建模
什么是模型?
一个系统的完整的抽象。深入理解业务问题,抽象出业务模型。模型可以验证系统是否可行,可以作为有效沟通的工具。
UML
以图形的方式描述软件的概念,一种统一的沟通方式。
用例图(需求分析)
类图(核心类及调用关系,详细设计)
时序图(某个场景下子系统、服务器、组件、类之间消息传递,需求分析、概要设计、详细设计)
活动图(流程处理、泳道,需求分析、概要设计、详细设计)
状态图(状态动态变化,需求分析、详细设计)
组件图(模块的边界、关系,概要设计)
部署图(物理节点部署关系,概要设计)
荐书:《UML精粹》
悟性感知
从不懂到懂的经历,如何get到那个点,如何捅破那层窗户纸。
理解架构师与架构
架构师是一个角色,而不是一个职位。任何一个系统、软件、项目都需要架构。不是架构师也可以做架构设计。职位不重要,“做架构”这件事本身更重要。
如果你公司的一个系统没有架构师去做架构设计,你去做了,把架构方案、设计文档做出来给其他人看,别人或批评、或认可了,你就是架构师了。
不要把工作只当做工作,想一下工作是给谁做。相关人的关注点是什么。怎么把工作做好让相关人看的懂,接收你的工作成果。架构师需要从不同角色的不同维度、立体的去思考问题。
理解知识的深度与广度
没有深度就没有广度。沉下心来钻研深度,曾经做过高手,才能触类旁通。架构的广度是建立在技术的深度之上的。
另外,怎么获取知识比知识本身更重要,挖掘底层的思维逻辑。
评论