架构师 0 期 | 架构师大作业(架构师技术图谱)
架构师训练营所有技术知识点
用一张思维导图画出所有训练营知识点。
提交xmind格式的思维导图文件或思维导图导出的图片文件。
知识点细节程度不低于以下示例:
XMind格式
架构师训练营技术相关的内容已全部结束,现对本课程中全部知识点进行了总结。
一来做一个整体回顾,二来作为日后架构的一个参考手册查阅。
具体内容如下,请查阅:
Markdown格式
架构师技能栈
1. 架构方法
架构师如何做架构?
如何成为架构师?
架构师的主要职责
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
技术选型,解决技术问题
优化系统性能
模块分解、微服务架构重构
保障系统的安全、高可用
大数据应用
技术创新
沟通管理
架构师的主要能力
编程
基础技术掌握
常用技术产品的理解与应用
性能优化、分析故障
常用架构模式、框架的理解和应用
建模、设计文档的方法
业务理解、功能模块和非功能模块拆解
快速学习
沟通、领导力
架构师的特点
一定要关注场景
训练的是思维
构建知识体系
是一顶帽子、不是椅子
是一个角色、不是职位
是做架构设计、对系统架构负责的那个人
4+1 架构视图
逻辑视图
过程视图
物理视图
开发视图
场景视图
UML 统一建模语言
静态图
动态图
模型元素
关系(也是模型元素)
康威定律
第一定律:组织沟通方式决定系统设计
第二定律:时间再多一件事也不可能做的完美,但总有时间做完一件事
第三定律:线型系统和线型组织架构有潜在的异质同态特性
第四定律:大的系统总比小的系统更倾向于分解
架构师层次划分
只关注功能
还关注非功能
关注团队和管理
关注产品运营
关注产品和团队未来
2. 软件设计原则
历史
莱布尼兹 1700年
Ada
图灵
冯诺依曼
编程语言
汇编语言
Basic语言
结构化的Basic
Perl 脚本语言
C语言(结构化语言)
C++(兼容C,提供面向对象机制)
Java(完全面向对象)
抽象种类
对机器抽象
对处理逻辑抽象
对问题领域抽象
直接表达问题空间内的元素
面向对象三要素
封装
继承
多态
面向对象编程
目的
原则
设计模式
创建模式
行为模式
结构模式
框架
对某一类架构方案的可复用的设计和实现
工具 VS 框架
框架调用应用代码
工具被应用调用
架构师用框架保证架构落地
用工具提高开发效率
OOD原则
OCP 开闭原则 Open/Closed Principle
DIP 依赖倒置原则 Dependency Inversion Principle
LSP 里式替换原则
SRP 单一职责原则 Single Responsibility Pinciple
ISP 接口分离原则 Interface Segregation Principle
3. 设计模式
创建模式
工厂模式
单例模式
适配器模式
结构模式
组合模式
装饰器模式
行为模式
模板方法模式
策略模式
4. 系统架构
高并发
垂直伸缩
水平伸缩
高可用
海量数据
分布广泛、网络复杂
安全环境恶劣
需求快速变更、发布频繁
渐进发展
架构演化
0:最简单
1:应用数据分离
2:使用缓存
3:应用服务器集群
4:数据库读写分离
5:反向代理、CDN加速
6:分布式 文件系统、数据库系统
7:NoSQL、搜索引擎
8:业务拆分
9:微服务、中台化
10:大数据、智能化
架构模式
分层
分割
分布式
集群
缓存
异步
冗余
自动化
安全
子主题 10
核心要素
高可用
高性能
可伸缩
可扩展
安全
前端架构
App、web技术
浏览器、HTTP优化
CDN
动静分离
图片服务
反向代理
DNS
网关机应用层架构
网关架构
负载均衡
动态页面静态化
业务拆分
服务层架构
微服务框架
分布式消息队列
分布式缓存
分布式一致性(锁)服务
存储层架构
分布式文件
分布式关系数据库
NoSQL数据库
后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
运维与安全
数据采集、展示
数据监控、报警
攻击、防护
数据加密、解密
5. 技术选型
缓存
缓存类型
关键指标(缓存命中率)
消息队列、异步架构
构成
模型(方案)
好处
主要产品
负载均衡
架构
算法
应用服务器集群的Session管理
分布式数据库
MySQL复制
数据分片
NoSQL
CAP原理
最终一致性
最终一致性写冲突
Hbase 架构
ZooKeeper
搜索引擎
倒排索引
网页排序
PageRank算法(网页排名算法)
ElasticSearch 架构
Doris 案例讲解(真实案例)
6. 性能优化
性能测试
指标
种类
全链路压测的挑战
软件优化的2个基本原则
不能优化一个没有测试的软件
不能优化一个你不了解的软件
性能优化的一般方法
性能测试、获得性能指标
指标分析、发现瓶颈点
架构、代码分析、找到瓶颈关键所在
架构、代码优化、优化关键点、平衡资源利用
性能测试、闭环
性能优化的分层思想
机房、骨干网络
服务器、硬件
操作系统
虚拟机
基础组件
软件架构
软件代码
性能优化三把斧
缓存
异步
集群
操作系统
锁
锁原语CAS(V,E,N)
种类
文件、硬盘
硬盘
RAIID 独立硬盘冗余阵列
数据结构、算法
时间复杂度
空间复杂度
NP问题
数组
链表
Hash表
栈
队列
树
跳表
递归算法
贪心算法
动态规划
遗传算法
7. Java 虚拟机JVM
JVM
堆
Java栈
方法区
程序计数寄存器
JVM垃圾回收
JVM性能诊断工具
JPS
JSTAT
JMAP
JSTACK
JAVA代码优化
合理谨慎使用多线程
竞态条件、临界区
线程安全
内存泄露
计算机任何问题都可以通过增加 中间层 解决
面向接口编程
7层网络协议
JVM
编程框架
一致性Hash算法的虚拟化实现
8. 秒杀
设计原则
静态化
并发控制、防秒杀器
简化流程
前端优化
9. 微服务
框架要满足的需求
服务的注册和发现、基本的服务调用
失效转移
负载均衡
高效的远程通信
对应用最少侵入
版本管理
Dubbo 框架
服务注册中心 服务器
服务消费者 服务器
服务提供者 服务器
落地
命令与查询职责隔离(CQRS)
事件溯源
断路由
服务重试和调用超时
最重要的是需求
Needs
Values
Principles
Practices
Tools
微服务网关
网关作用
网关管道技术
10. DDD
领域驱动设计
战略设计
战术设计
组件设计原则
组件内聚原则
组件解耦原则
11. 系统安全与高可用
安全架构
XSS 攻击
SQL注入攻击
CSRF 攻击
其他
高可用
指标
引起故障的原因
高可用架构
高可用系统的运维
12. 大数据
发展史
Google三驾马车
大数据应用发展史
应用领域
医学影像智能识别
病例大数据智能诊疗
AI外语老师
智能解题
舆情监控和分析
大数据风控
新零售
无人驾驶
技术
HDFS
MapReduce
Yarn
Hive
Spark
Hadoop
Storm
Flink
HiBench
大数据可视化
大数据算法、机器学习
大数据平台
13. 区块链
比特币
工作量证明
旷工
以太坊
Facebook 发布的 LIbra
稳定币
许可型区块链
联盟链技术
HyperLedger
Tairuem
14. 如何成为专家
技术等级
行业开创者
领域开创者
关键开创者
全球影响者
公司影响者
团队影响者
德雷福斯模型
专家
精通者
胜任者
高级新手
新手
彼得定律
一个优秀的员工会晋升
会持续晋升,到不能胜任为止
推论:所有职位都是不能够胜任的人承担着
软件开发第一性原理
这个技术的核心关键点是什么? 要解决的问题是什么?
过往有没有类似的技术? 核心设计是否相通?
这些问题应该用何种模式解决?
第一性原理实践
5分钟阅读一个 HelloWord级的文档、demo
30分钟做一个 Hello Word 体验一下
2小时阅读关键设计文档和代码
如果我来开发、将如何设计、关键技术的如何处理
架构师的三板斧
设计文档
设计模式
架构模式
发现问题的真正所在
推荐书籍:你的灯亮着吗?
问题发现模式
问题提出模式
问题解决模式
技术领导者的7种武器
交际
情景
目标
资源
评估
导师
赞美
### 架构师之道
XMind - Trial Version
版权声明: 本文为 InfoQ 作者【刁架构】的原创文章。
原文链接:【http://xie.infoq.cn/article/6ca9544eef55e427e6ee132af】。文章转载请联系作者。
评论