读源码学架构(系统架构师思维训练之道)
- ISBN:9787115590558
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:222
- 出版时间:2022-06-01
- 条形码:9787115590558 ; 978-7-115-59055-8
本书特色
书《Spring源码深度解析》作者新作品 每位软件开发人员都希望成长为一名合格甚至优秀的软件架构师,因为这意味着他们具有更强的能力、更大的责任、更多的信任、更高的收入,而且这个职级还可以给他们带来满足感。然而,真正能成为软件架构师的人却少之又少。 作为一名合格的架构师,其水平的高低取决于架构能力。该能力体现为抽象能力、整体规划能力以及设计能力。架构能力决定了所开发项目的落地时间、稳定性、灵活性与可维护性。 本书以架构师的能力培养为切入点,将作者在过去十多年的工作中遇到的问题进行抽象,并作为示例呈现给读者。本书以设计原则为基础,但是不强调对设计模式进行死记硬背,而是偏重于对设计原则的理解以及运用,并尽可能地接近实战,帮助读者迅速掌握灵活运用设计原则来处理各种问题的能力。 本书主要内容 基础篇 基本设计原则 主流程设计篇 轻松应对后续的变化 优雅地暴露内部属性 复杂逻辑的拆解与协同 组件篇 复用的人性化设计 对外篇 屏蔽外部依赖的防火墙设计 事件的分散性与协议化封装 基于Reactor模式的系统优化 代码边界的延伸——善用SDK
内容简介
本书以软件架构师的能力培养为切入点,结合作者在过去10多年的工作中积累的经验,介绍了一名合格甚至很好的架构师应该具备的能力。 本书分为4篇,总计9章,基本涵盖了大部分生产环境下的系统设计原则以及方案。本书主要内容有基本设计原则、轻松应对后续的变化、优雅地暴露内部属性、复杂逻辑的拆解与协同、复用的人性化设计、屏蔽外部依赖的防火墙设计、事件的分散性与协议化封装、基于Reactor模式的系统优化、代码边界的延伸——善用SDK。 本书尽管内容篇幅短小,但是信息量相当密集。本书适合具有一定编程经验,在业务上仍然有追求,希望能晋升为软件架构师的软件开发人员阅读。同时,对设计模式感兴趣的初级开发人员,可以通过本书掌握与架构设计相关的知识。
目录
1.1 单一职责原则 2
1.1.1 简述 2
1.1.2 示例 3
1.1.3 小结 8
1.2 开闭原则 8
1.2.1 简述 8
1.2.2 示例 10
1.2.3 小结 13
1.3 依赖倒置原则 14
1.3.1 简述 14
1.3.2 示例 15
1.3.3 小结 17
1.4 里氏替换原则 17
1.4.1 简述 17
1.4.2 示例 18
1.4.3 小结 20
1.5 迪米特法则 20
1.5.1 简述 20
1.5.2 示例 21
1.5.3 小结 22
1.6 接口隔离原则 22
1.7 总结 24
第 2章 轻松应对后续的变化 27
2.1 抛出问题 27
2.2 问题分析 32
2.3 Spring中的PostProcessor机制 33
2.3.1 示例 33
2.3.2 思路抽象 38
2.4 设计优化 40
2.4.1 需求分析与设计 40
2.4.2 代码实现 41
2.5 总结 49
第3章 优雅地暴露内部属性 51
3.1 抛出问题 51
3.2 问题分析 58
3.2.1 违背设计原则 58
3.2.2 设计看似优雅,实则不然 59
3.3 Spring中的Aware机制 61
3.3.1 Aware概述 64
3.3.2 ApplicationContextAware的实现逻辑 65
3.3.3 思路抽象 67
3.3.4 优势分析 68
3.4 问题优化 71
3.5 总结 75
第4章 复杂逻辑的拆解与协同 77
4.1 抛出问题 77
4.2 问题分析 81
4.2.1 PostProcessor模式的错误选型 82
4.2.2 模板方法模式的错误选型 83
4.3 Tomcat中的PipeLine机制 87
4.3.1 Tomcat容器结构与协同处理 88
4.3.2 思路抽象 91
4.4 问题优化 93
4.4.1 设计优化 93
4.4.2 关键代码 94
4.4.3 链表与for循环的区别 101
4.5 总结 104
第5章 复用的人性化设计 105
5.1 抛出问题 105
5.2 问题分析 112
5.2.1 大量冗余代码 112
5.2.2 AOP切割原子逻辑 114
5.3 Spring中事务的封装与复用 118
5.3.1 Spring的事务处理 118
5.3.2 思路抽象 123
5.4 问题优化 125
5.4.1 注解设计 128
5.4.2 定义切面逻辑 129
5.4.3 定义拦截器 134
5.5 总结 137
第6章 屏蔽外部依赖的防火墙设计 139
6.1 抛出问题 139
6.2 问题分析 140
6.2.1 服务雪崩 140
6.2.2 逻辑入侵 146
6.3 思路抽象 149
6.4 问题优化 151
6.4.1 优化对接层 151
6.4.2 构建防腐层 152
6.5 总结 154
第7章 事件的分散性与协议化封装 157
7.1 抛出问题 157
7.2 问题分析 160
7.2.1 扩展类爆炸 160
7.2.2 扩展机制与监听机制的错用 161
7.3 WebSocket事件的封装与协议化 164
7.3.1 WebSocket 164
7.3.2 通信设计 166
7.3.3 思路抽象 171
7.4 问题优化 174
7.4.1 生产者视角 174
7.4.2 消费者视角 178
7.5 总结 182
第8章 基于Reactor模式的系统优化 185
8.1 抛出问题 185
8.2 问题分析 187
8.2.1 加机器 187
8.2.2 串行调用改为并发调用 187
8.2.3 预处理 188
8.3 Netty中的Reactor模式 188
8.3.1 Netty概述 188
8.3.2 BIO与NIO 189
8.3.3 Reactor编程模型 192
8.3.4 思路抽象 197
8.4 问题优化 199
8.4.1 方案设计 199
8.4.2 代码优化 201
8.5 总结 216
第9章 代码边界的延伸——善用SDK 217
9.1 抛出问题 217
9.2 问题分析与优化 217
9.2.1 SDK与API的区别 218
9.2.2 SDK可以解决的问题 219
9.2.3 SDK缺点与解决 221
作者简介
郝佳,前阿里巴巴高级架构师,现硕磐智能首席架构师,一直专注于中间件领域与数据服务领域的研究和开发;擅长系统的性能优化、系统设计与大数据服务处理,热衷于研究各种优秀的开源框架,尤其对Spring、MyBatis、JMS、Tomcat等源码有深刻的理解和认识;拥有4项技术专利,写作出版的书《Spring源码深度解析》深受读者好评。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0