第一周 架构方法学习总结
一、内容梳理
架构
什么是架构(what)
软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计
如何做架构(how)
1.编写架构设计文档
2.开发编程框架
3.重构软件代码
4.设计系统架构
5.进行技术选型,选择技术应用中的问题
6.优化系统性能
7.模块分解与微服务架构重构
8.保障系统安全与高可用
9.大数据应用
10.技术创新
11.沟通管理
为什么要做架构(why)
1.指导大型系统各方面,比如开发、测试、运维
2.方便理解逻辑和沟通
3.提高软件开发效率和质量
4.减少重复代码
5.便于分工协作
架构师
什么是架构师(what)
架构师是做软件架构设计、对系统架构负责的那个人。架构师是一顶帽子,而不是一把椅子;架构师是一个角色而不是一个职位。
架构师要具备以下能力:
1.编程能力
2.基础技术掌握能力
3.常用技术产品的理解与应用能力
4.性能优化与分析故障的能力
5.常用架构模式和框架的理解与应用能力
6.建模以及设计文档的方法和能力
7.业务理解与功能模块及非功能模块拆解能力
8.快速学习能力
9.沟通与领导能力
怎样成为架构师(how)
1.持续Coding
2.先挖掘深度,然后去拓展广度
3.夯实基础技术和掌握技术背后的规律
4.深入理解公司的业务
5.在团队中积极主动承担更多任务,抱着对整个系统负责的态度
为什么通过上叙(怎样成为架构师)方式才能成为架构(why)
1.只有持续Coding,才能保持和精进自己的编程能力
2.只有学习和深入基础技术,才能提升自己的技术深度和掌握技术的背后规律,这个为对其他技术产品理解与应用、性能优化、故障分析、常用架构模式和框架理解与应用提供了基础支撑。
3.只有深入理解公司业务,才能做系统建模、写设计文档、进行功能和功能模块的拆解,不然做出的东西不满足业务需求
4.只有对系统负责,才能形成领导力
编写架构设计文档
4+1视图模型
什么是4+1视图模型(what)
一个完整的架构视图集,包括逻辑视图、过程视图、物理视图、开发视图、场景视图。
什么是模型(what)
模型是一个系统的完整抽象。人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴涵在模型中。
怎么样实现4+1视图(how)
一般通过UML建模的各种图可以实现4+1视图,UML建模常用图形如下图所示:
还有其他方式如C4架构图也可以实现4+1视图,C4架构图包括系统上下文、容器、组件、代码四种图,如下图所示:
为什么是4+1视图模型(why)
不能单一通过某个架构视图就能完整呈现系统架构,需要多维度去表达,4+1视图提供了一个比较完整的维度指导。
UML建模
什么是UML(what)
统一建模语言
如何进行UML建模(how)
在4+1视图的维度指导原则下通过UML工具(Visio、Aastah、draw.io)进行UML建模
为什么进行UML建模(why)
1.为了与他人沟通
2.保存设计成果
二、收获和体会
1.对架构师的职责和能力有了一个全面和系统的认识,架构学习注定是一个长期的过程,只有通过工作实践和日常的刻意练习才能不断完善和补缺自己的架构知识体系,课程对架构师的职责和能力梳理像一个行动指南,能够很好的指导以后架构学习的方向和目标,还有知道了一个学习小技巧,那就是先在某个领域深度学习,然后再去扩充自己的广度,当然这个过程是可以并行
2.对于什么是架构和架构师的有一个更加清晰的认知,能够更好理解架构的本质、架构工作的过程、架构工作输出的内容和对象
3.通过4+1视图、UML建模、 架构设计文档的写作掌握了做架构的方法和相关工具的使用
三、思考
通过这周课程的学习,自己总结了一条公式 “技术+架构+项目管理=产品”,技术为产品的形成提供实现,架构为产品建立了模型,项目管理为产品保驾护航(人员调配、成本控制、质量保障)
四、后续计划
1.阅读《UML精粹》
2.平时在学习一些框架、中间件时首先要弄清楚它们架构是怎么样的,它们是如何做架构,输出哪些文档,为什么要如此设计,通过不断刻意的思考和练习提高架构能力
评论