架构师训练营 - 学习总结 - 第一周

用户头像
ashuai1106
关注
发布于: 2020 年 06 月 10 日
架构师训练营-学习总结-第一周

前言

本人也是一个架构师,虽然做着架构师的工作,但一些地方有时还是不那么完善,就想找个前辈看看,人家的经历和工作方法论,通过向他人的学习,来丰富自己的认知,让自己的架构做的更好,从而让生活变的更好。看到李智慧老师的经历,而且这么多的直播课,面面俱到,深入浅出,讲了很多原理的原理,第一节我听了三遍。从简历、学习时代等实际问题出发,阐述了为什么讲架构,什么是架构,怎么做架构?通过方法、例子,总结套路,不断丰富自己的认知,构建好自己的知识技术体系,做一个以深度为基础,有广度的架构师。



参加架构师训练营,主要解决我们的什么问题——

用什么样的思维方式去面对架构问题,领悟到问题背后的本质,解决问题的思路是什么?思路和方法的关系是什么?

软件架构解决的问题是什么?用的方法是什么?如何做是最重要的。从不懂到懂,是怎么思考,怎么形成的?难点和痛点在哪?最终达到心有灵犀,灵活自如,浑如天然地使用它。所以架构心法是架构走多久,做多高的决定性因素。



一、架构方法

什么是软件架构?

软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

架构的构成有哪些?



架构有架构元素和元素之间的关系构成,架构本身包含各个系统,对外体现的是架构文档——相关方,内容有架构视图,体现了架构的关注点。

架构的详细程度,是根据架构的目的来衡量的,针对的是相关方,也就是人。人搞清楚了,那架构就算完成了。

  • 架构师需要协调、满足各方的(客户、老板、开发、测试、运维等)诉求

  • 架构师要面对不同的受众,用不同的方式,展现系统不同的侧面

什么是架构师?

架构师是做架构设计、对系统架构负责的那个人。

架构师是一个帽子不是一把椅子;架构师是一个角色而不是一个职位。



架构师的主要职责?(也就是参加训练营的内容)

  • 编写架构设计文档

  • 开发编程框架

  • 重构软件代码

  • 设计系统架构

  • 进行技术选型,解决应用中的问题

  • 优化系统性能

  • 模块分解与微服务架构

  • 保障系统安全与高可用

  • 大数据应用

  • 技术创新

  • 沟通管理



优秀架构师的评判标准?

  • 夸夸其谈能帮你带来掌声。

  • 解决棘手问题能帮你带来名声。

  • 奠定架构师地位的,是让别人依赖你写的代码-核心的代码



优秀架构师必须是软件开发的全才

1、卓越的编程能力

2、解决棘手问题的能力

3、广阔的知识面

4、洞悉技术背后的本质和规律

5、沟通和打动人心的能力



如何成为架构师?

  • 跳槽、晋升、靠关系。。。

  • 如果一个项目或系统没人去做架构,你主动去做架构设计、去做解决方案,形成设计文档,然后给大家做评审,得到大家的认可,就成为一个架构师了。不要怕意见和批评,当别人有评论在指三道四的时候,你就是架构师了,真挚朴素的语言,阐述了一个架构师的成长历程,不是等来的,是主动争取的。

  • 体现了一个主观能动性,不是为了工作而工作,只要做架构的事就是架构师。



二、架构文档

软件的生命周期

软件的生命周期:问题定义——需求分析——软件设计——程序编码——软件测试——运行维护

架构是给人做的,满足相关方的诉求。

架构文档的体现也就是架构生命周期的体现。从这个角度来看,架构的生命周期也就是软件的生命周期,贯穿整个软件生命周期的始终。

架构文档,最重要的一项便是画图,没有任何语言比图更能给人视觉的冲击,让人更加直观形象的表达设计的意图,一图胜千言。当然图文并茂更好。



架构的视图模型

4+1,逻辑视图、开发视图、过程视图、物理视图,围绕着场景视图进行展开。

这个也是一个问题解决的过程,由领域问题——概念模型——系统需求——解决方案。



构建传统模型的目的—— 为了证明某件事物能否工作 ,前提模型的成本远远低于构建实物的成本

构建软件模型的目的—— 前提:除非模型比代码更说问题

  • 为了和他人沟通

  • 为了保存软件设计的最终成果



何时画图?

  • 讨论、交流时

  • 最终设计文档

  • 少量,重要的图

  • 避免涉及过多的内容和实现细节



何处画图?

  • 白板

  • 绘图工具:viso、Astash

  • draw.io



UML简介



UML是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,软件设计(解决问题)的过程就是一个持续建模的过程,把问题反映出来的过程,在不同的设计阶段,画不同的uml视图,达成设计意图,

图画出来了,设计文档也就出来了。

uml本身画图不难,难的是要表达清楚作者的意图,让相关方容易明白。

UML 分类:静态图、动态图。

静态图:通过类、对象和数据结构以及它们存在的关系,来描述软件要素不变的逻辑结构。包含用例图、对象图、类图、组件图、包图、部署图。

动态图:时序图、活动图、状态图、合作图(可由时序图产生)



使用场景

  • 需求分析:用例图,部署图,时序图,活动图,状态图

  • 概要设计:框架图,部署图,组件图,时序图,活动图

  • 详细设计:类图,时序图,活动图,状态图

画图达到的程度-标准:

面向相关方,相关方看懂的程度也就是画图细化到的程度。



对象之间的关系:依赖、关联、聚合、组合、继承和依赖6种关系。

实线和实体的东西都表示生命周期绑定状态有更高的一致性。

推荐书籍





用户头像

ashuai1106

关注

还未添加个人签名 2017.10.20 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-学习总结-第一周