写点什么

架构师如何做架构(第一周总结)

用户头像
mh
关注
发布于: 2020 年 06 月 10 日
架构师如何做架构(第一周总结)

如何学好软件架构

  1. 理解软件架构解决的问题是什么,问题的本质是什么样子的,解决问题过程中遇到的困难是什么,解决方案背后的原理,优势是什么,劣势是什么,有没有更好的方案,为什么要选用这个方案。

  2. 了解关于架构的一些思维方式,解决问题的方式和思路,架构的知识体系。理解为什么做架构,理解问题的本质,如何去做架构。解决问题背后最本质的原理,关系。

  3. 学习架构更需要进行实践。学架构好比学习开车,没有真实开车上路前,再怎么学总是感觉比较难学会,当实际开车上路后会更容易得心应手。

如何成为架构师

  1. 面试架构师岗位,面试通过后获得架构师的岗位。

  2. 在实际工作中,有机会时主动承担架构师的角色,进行软件架构,锻炼培养自己的软件架构能力,从内部晋升为架构师。

JD中一般架构师岗位职责及岗位要求

  1. 软件架构设计,架构文档的能力。能够对不同的人群输出设计思路,理解设计出来的架构。

  2. 核心组件/服务的设计编码能力。

  3. 性能瓶颈定位,提高系统稳定性,性能优化。

  4. 跨部门协作,沟通的能力,对问题的边界,职责,诉求,利益达成一致;具备一定的组织领导能力;

  5. 熟悉主流技术,框架,中间件的实现原理和机制;

什么是软件架构?

软件系统架构是关于软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计;描述阶段,架构描述了架构的元素及元素之间的关系;实现阶段,架构元素被细化为具体的组件(类或对象);还包括系统需求和构成元素之间的对应关系,包括设计决策的基本方法和基本原则;核心要素:构建,模式,规划。

架构元素: 系统的组成部分(比如:服务器、组件、模块、子系统、类等等)

元素关系主要有两类:

静态关系

  1. 组合

  2. 聚合

  3. 关联

  4. 依赖

  5. 继承(泛化)

  6. 实现



动态关系

如何写一个架构设计文档,文档中应该包含哪些方面的内容?

  1. 软件设计概述,背景

  2. 软件功能性描述

  3. 软件非功能约束

  4. 系统部署图和整体设计

  5. 系统部署图

  6. 场景时序图

  7. 子系统设计

  8. 组件图

  9. 时序图

  10. 活动图

  11. 类图

  12. 状态图

等等,由抽象到具体,描述业务实体关系

架构师的主要职责

  1. 编写架构设计文档

  2. 开发编程框架

  3. 重构软件代码

  4. 设计系统架构

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

  6. 优化系统性能

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

  8. 保障系统安全与高可用

  9. 大数据应用

  10. 技术创新

  11. 沟通管理

架构师的主要能力

  1. 编程能力

  2. 基础技术掌握能力

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

  4. 性能优化与分析故障的能力

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

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

  7. 业务理解与功能模块及非功能模块拆解能力

  8. 快速学习能力

  9. 沟通与领导能力

4+1视图模型



UML软件架构设计与建模

难点:如何使用UML表达设计的意图

用户头像

mh

关注

还未添加个人签名 2018.05.23 加入

还未添加个人简介

评论

发布
暂无评论
架构师如何做架构(第一周总结)