第一周笔记

用户头像
Arthur云剑
关注
发布于: 2020 年 09 月 20 日

1.1 大厂Offer 解读 

JD分析

架构师职责

  1. 架构设计:架构设计如何做,架构设计文档

  2. 技术难点:哪些技术难点,判断和解决方案

  3. 性能优化:如何评价系统性能,如何提高、评价

  4. 沟通协调:跨部门沟通协调,满足各方利益诉求

架构师能力

  1. 海量数据和大规模分布式系统经验

  2. 设计和实现对齐一流产品

  3. 组织、沟通、写作能力

  4. 数据库、中间件、基础架构组件

  5. 领域驱动设计、微服务

  6. 开发框架的理解,通过框架约束开发过程



架构师的主要职责

  1. 编写架构设计文档

  2. 开发变成框架

  3. 重构软件代码(设计模式)

  4. 设计系统架构(高性能、高并发、高可用架构)

  5. 进行技术选型,解决技术应用中的问题(缓存、消息队列、分布式数据库、NoSQL)

  6. 优化系统性能(性能评估、测试、优化)

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

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

  9. 大数据应用

  10. 技术创新(区块链、聊天机器人)

  11. 沟通管理



1.2 架构师面试题解读

架构师主要能力

  1. 编程能力

  2. 基础技术掌握

  3. 常见技术产品的理解应用

  4. 性能优化分析故障

  5. 常用架构模式和框架

  6. 建模及设计文档

  7. 业务理解和模块拆解

  8. 快速学习

  9. 沟通领导



什么是架构师

  • 架构师是实际做架构设计的、对系统架构落地负责的人

  • 架构师是一个角色,而不是职位



架构师如何成长:主动实践,有机会就做架构设计



架构师与全栈工程师的没有太多关系



技术深度和广度:

  1. 架构师的角色要求有技术广度

  2. 但是,没有深度就没有广度。技术广度依赖于技术深度。

什么是软件架构



1.3 4+1视图

什么是模型

  1. 模型是系统的完整抽象。体现了对领域问题的理解和解决方案。

  2. 计算机中,模型是从领域问题到计算机系统的映射

  3. 领域问题 - 领域模型/设计模型 - 解决方案

为什么要模型

  1. 验证可行性、降低发现问题成本

  2. 与他人沟通、保存设计成果



4+1视图

  1. 单一视图无法完整地表现架构,因此需要具备完整的视图集,多维度表达

  2. 逻辑视图:描述系统功能,指导开发组织划分,进度评估

  3. 开发视图:系统如何开发实现,指导设计和开发(类图)

  4. 物理视图:物理节点及通讯关系,指导系统运维(部署图)

  5. 过程视图:系统运行时线程进程情况,指导性能优化

  6. 场景视图:系统最重要的场景及非功能需求(用例图)



1.4 UML

UML

  • 静态图:用例图、类图、组件图、部署图、对象图、包图

  • 动态图:时序图、状态图、活动图、协作图

用例图

  1. 需求分析阶段的主要模型图

  2. 元素:执行者、用例、边界

  3. 执行者可以是人,也可以是系统

  4. 用例都是动宾短语

  5. 用例可以逐层扩展

类图

  1. 详细设计阶段,用于指导开发实现

时序图

  1. 描述对象之间动态交互的模型图

  2. 元素:对象

  3. 对象是广义的对象,可以描述不同粒度,不同维度的对象交互。比如可以是类、组件、服务器、系统...

活动图

组件图

系统组件之间的依赖关系

部署图

概要设计阶段,架构师设计的第一张图。最终的部署架构。

总结



用户头像

Arthur云剑

关注

还未添加个人签名 2017.11.17 加入

还未添加个人简介

评论

发布
暂无评论
第一周笔记