极客时间第 0 期架构师训练营第一周总结

用户头像
2流程序员
关注
发布于: 2020 年 06 月 10 日

客套和前言就省略了,看标题就知道。

首先要吐槽下!

这周课程的主要内容是UML图的介绍和使用。

UML作为一种软件设计的表达方式和展示工具,使用起来并不难,老师也说,难的不是怎么画图,而是怎么把业务进行抽象。

我以为,老师会在讲具体UML的时候重点讲解如何做业务抽象,结果只是说一些干巴巴的理论,例子也举得很少。听得有些乏味了。

希望以后能多举实例,而不是纯讲理论。

虽说,学系统架构需要悟性。能否照顾下我这样悟性不高的学生呢?

另外,就是互动问答时间很少,也希望后续能跟老师有更多的互动。

言归正传。以下是我这周的学习总结。

关于架构师

架构师的职责

  1. 编写架构设计文档

  2. 开发编程框架

  3. 重构软件代码

  4. 技术选型并解决应用中的问题

  5. 优化系统性能

  6. 模块分解与微服务架构重构

  7. 保证系统安全与高可用

  8. 大数据应用

  9. 技术创新

  10. 沟通管理

架构师的主要能力

  1. 编程能力:好的架构师必须要是好的程序员

  2. 基础技术掌控能力:好的架构师必须有扎实的计算机基础知识

  3. 常用技术产品的理解与应用能力:对各种市面上流行的技术和产品,理解它们的优缺点以及适用范围

  4. 性能优化与分析故障的能力:要能主动发现系统的瓶颈和故障并提出有效的解决方案。

  5. 常用架构模式和框架的理解与应用能力:与第3点类似,应用千变万化,不变的是套路

  6. 建模以及设计文档的方法和能力:把抽象的业务转变为可沟通的表达方式和可落地执行的代码

  7. 业务理解与功能模块以及非功能模块拆解能力:拆解是为了更好的扩展性

  8. 快速学习能力:最基本的技能

  9. 沟通与领导力:适配大规模系统下多人协作的要求

谁是架构师

架构师是做架构设计和对系统架构负责的那个人。他只是一个头衔或角色,并不是一个具体的职位。

在无人做架构的项目中,你把架构设计出来,无论刚开始设计的是好是坏,只要大家对你的设计做出评价(无论评价是好是坏)就已经承认你架构师的地位。

什么是软件架构



如上图:

  1. 系统有一个架构

  2. 架构是由架构元素和元素之间的关系组成

  3. 架构元素包括:节点、模块、类等

  4. 元素之间的关系有两种:静态关系和动态关系

  5. 静态关系包括:依赖、继承、实现、组合、聚合、关联

  6. 元素之间的交互则体现为动态关系

  7. 架构可以由架构文档来描述

  8. 不同的相关方(比如:开发、测试、产品经理)对系统的关注点不一样

  9. 架构文档应为不同的相关方呈现不同的架构视图

UML

UML全称为Unified Modeling Language(统一建模语言)

它可以用来描述:

  • 某个问题领域

  • 构思中的软件设计

  • 描述已完成的软件实现

最重要的作用有两个:

  1. 提供了一套统一的语言来描述软件设计,减少沟通中的信息不对称。

  2. 加深对系统的理解和思考。



要注意的是,UML是有”方言“的,并没有强制一定要用什么样的方式表达某一件事。

UML图的分类

  1. 静态图

  • 用例图:一般在需求分析阶段用于描述需求

  • 对象图(不常用)

  • 类图:用于详细设计阶段,描述类

  • 组件图:一般用于概要设计阶段和详细设计阶段,描述软件各功能模块

  • 包图(不常用)

  • 部署图:一般用于概要设计阶段和详细设计阶段,描述系统物理上的部署

2.动态图

  • 协作图(不常用)

  • 序列图(又称时序图):适用于各个阶段,对业务流程的详细描述或软件的运行方式

  • 活动图:适用于各个阶段,对业务流程的详细描述或软件的运行方式

  • 状态图:对业务对象的状态变化描述

何时使用

  • 需求分析阶段:用例图、活动图、时序图、状态图

  • 概要设计阶段:部署图、时序图、活动图、组件图

  • 详细设计阶段:类图、时序图、状态图、活动图

模型元素

静态关系

  • 依赖:较弱的关系。在编码中一般体现为一个方法中的局部变量。如:呼吸的方法依赖空气

  • 继承:继承父类

  • 实现:对接口的实现

  • 关联:关联是一种更强的依赖。在编码中一般体现为成员变量。

  • 聚合:比关联更强的关系。多表示整体与部分的关系。

  • 组合:比聚合更强的关系,一般组合起来的对象拥有同样的生命周期。

结语

以上!

用户头像

2流程序员

关注

还未添加个人签名 2020.03.18 加入

还未添加个人简介

评论

发布
暂无评论
极客时间第0期架构师训练营第一周总结