成为架构师 - 架构师训练营第 01 周
习惯了拿到一个需求就开始编程,这个习惯不是一个好习惯!
这个礼拜开始了架构师的训练营,很多时候我自己觉得自己很懂,也做了很久的程序员,有学过AS400, 全栈,html5, javascript , vue, react , PHP , go , Java等等等等。然后,最近这段时间要写一些关于架构的文档发觉到自己也不知道从何入手,所以,感觉做了那么多年的程序员,有点满身刀没有一把利。
购买了这个训练营的课程,感觉看的好像有点懂,但是啊,真正操作的时候还是有点懵。
比如话,在开始的老师技能题、例子时候,这个部署图不知道怎么样去把这个组件,然后序列图应该怎么定角色?然后消息应该怎么传递; 这个用例图,也不知道怎么样使用才叫做好,画这个组件图就也有点懵,是怎么样去定义这个组件,怎么去找到接口?
我自己感觉嘛,嗯,有点意思,好像是找到了自己很多的不知道,这个也算是未来进步的过程吧,继续努力。
本周学习了课程的概要:
架构师的主要职责
编写架构设计文档(week1)
开发编程框架(week2)
重构软件代码(week3)
设计系统架构(week4)
进行技术选型,解决技术应用中的问题(week5-6)
优化系统性能(week7-9)
模块分解与微服务架构重构(week10)
保障系统安全与高可用(week11)
大数据应用(week12-13)
技术创新(week14)
沟通管理(week15)
架构师主要能力
编程能力
基础技术掌握能力
常用技术产品的理解与应用能力
性能优化与分析故障的能力
常用架构模式和框架的理解与应用能力
建模以及设计文档的方法和能力
业务理解与功能模块及非功能模块拆解能力
快速学习能力
沟通与领导能力
什么是软件架构?
软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 - 维基百科
什么是架构师?
架构师是做架构设计、对系统架构负责的那个人。
架构师是一顶帽子,而不是一把椅子;架构师是一个角色而不是一个职位。
如何通过训练营提高自己
架构师训练营而不是架构训练营
• 架构方法、架构模式、关键知识点可以训练,但是架构一定要实践,一定要关注场景
课程中所有的技术都只是例子,通过学习例子训练架构思维,构建知识体系
• 通过例子,总结模式,通过模式,构建知识体系
4+1 架构视图
软件架构 = {元素,形式,关系/约束}
单一的视图无法完整的表达架构,因此需要具备完整的视图集
逻辑视图(Logical View),设计的对象模型
过程视图(Process View),捕捉设计的并发和同步特征。
物理视图(Physical View),描述了软件到硬件的映射,反映了部署特性。
开发视图(Development View),描述了在开发环境中软件的静态组织结构。
场景视图(scenarios),描述用例场景
软件建模语言
如何使用 UML 进行软件架构设计与建模?
什么是模型?
模型是一个系统的完整的抽象。人们对某个领域特定问题的求解及解决方案,对它们的
理解和认识都蕴涵在模型中。
通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领
域问题到计算机系统的映射。
为什么要建造模型?
建造传统模型的目的
为了证明某件事物能否工作
前提:建造模型的成本远远低于建造实物的成本
造飞机
造高楼
建造软件模型的目的
为了与他人沟通
为了保存软件设计的最终成果
前提:除非模型比代码更说问题
何时、何处画图?
何时画图?
讨论、交流时
最终设计文档
只是保留少量的、重要的图
避免涉及过多内容和实现细节
何处画图?
• 白板
• 绘图工具,如:Visio、Astah
• draw.io
UML 简介
什么是 UML
• Unified Modeling Language,或统一建模语言
• 以图形方式描述软件的概念
UML 可用来描述:
• 某个问题领域
• 构思中的软件设计
• 描述已经完成的软件实现
没有设计文档就没有软件设计
没有软件设计就没有技术进步
评论 (1 条评论)