写点什么

学习总结—第一周

用户头像
于江水
关注
发布于: 2020 年 06 月 10 日

架构是什么?

架构是一种系统化解决问题的思维模式,每个人都应该具备一定的架构思维和能力。

面对不同的问题,应该选用什么样的组件、工具、模式去解决?面对不同的相关方,应该用什么样的文档、图去交流和解决?都属于架构的范畴,属于架构师的工作。

广义的架构可以延伸到日常生活的方方面面,如何解决问题?用什么策略?如何选取方案?

架构师主要职责?

  • 编写架构设计文档

  • 开发变成框架

  • 重构软件代码

  • 设计系统架构

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

  • 优化系统性能

  • 模块分解与微服务架构重构

  • 保障系统安全与高可用

  • 大数据应用

  • 技术创新

  • 沟通管理

架构师主要能力?

  • 编程能力

  • 基础技术掌握能力

  • 常用技术产品的理解和应用能力

  • 性能优化和分析故障的能力

  • 常用架构模式和框架的理解与应用能力

  • 建模以及设计文档的方法和能力

  • 业务理解和功能模块以及非功能模块拆解能力

  • 快速学习能力

  • 沟通和领导能力

4 + 1 视图模型

4 + 1 的理念就是不同人和相关方的关注点是不同的,在做设计的时候需要针对相关方进行设计。你不能通过一种视图完成架构设计,每一种视图关注点是不一样的。当你给老板做架构的时候,要用一种视图,介绍相关服务器资源等。当分配给你团队等,要求你在两个月开发出来,这时候你需要为工程师再提供另一种视图,让他们完全明白然后进行开发。



UML

在表达视图的时候,我们通常使用 UML 来进行绘图。

通过建造模型,可以低成本的进行验证、梳理思路,同时遵循同样的标准方便跟他人进行交流,减少沟通成本。

几种重要的图

静态图(描述类、对象、数据结构等之间的关系):

  • 用例图:大概介绍用户的需求功能点

  • 部署图:物理硬件和资源以及更大力度的系统分布划分

  • 组件图:大概的组件划分和之间的交互

  • 类图:详细的类设计

动态图(描述运行时的一些流程和状态变化过程):

  • 序列图:时序图等,包括组件的生命周期和调用顺序、流程

  • 活动图:泳道图等,包括组件的具体实现流程和交互过程

  • 状态图:类似状态机,描述核心组件的不同状态的变化和转移

架构设计画图顺序

  • 需求分析(通常是产品经理设计)

1. 用例图,功能场景

2. 活动图,关键流程

3. 状态图,关键状态转换关系

4. 时序图,内部和外部的依赖关系

  • 概要设计(组件级)

1. 部署图,有个整体的感觉,从高往下,看到一些子系统等关系

2. 时序图,核心子系统的系统序列图,时序图

3. 活动图

  • 详细设计(类级别)

1. 活动图,组件图和组件依赖关系

2. 时序图,细节组件的序列图

3. 类图,具体 API 设计

4. 状态图

画到什么为止?

画到相关方都能明白为止。比如:给大老板汇报颗粒度高,给高级程序员精确到组件级,给初级程序员精确到类。



发布于: 2020 年 06 月 10 日阅读数: 47
用户头像

于江水

关注

还未添加个人签名 2018.07.08 加入

还未添加个人简介

评论

发布
暂无评论
学习总结—第一周