新書推薦:
《
不被大风吹倒
》
售價:HK$
65.9
《
人生解忧:佛学入门四十讲
》
售價:HK$
107.8
《
东野圭吾:分身(东野圭吾无法再现的双女主之作 奇绝瑰丽、残忍又温情)
》
售價:HK$
64.9
《
浪潮将至
》
售價:HK$
86.9
《
在虚无时代:与马克斯·韦伯共同思考
》
售價:HK$
57.2
《
斯大林格勒:为了正义的事业(格罗斯曼“战争二部曲”的第一部,《生活与命运》前传)
》
售價:HK$
184.8
《
日内交易与波段交易的资金风险管理
》
售價:HK$
85.8
《
自然信息图:一目了然的万物奇观
》
售價:HK$
140.8
|
編輯推薦: |
书《Spring源码深度解析》作者新作品每位软件开发人员都希望成长为一名合格甚至优秀的软件架构师,因为这意味着他们具有更强的能力、更大的责任、更多的信任、更高的收入,而且这个职级还可以给他们带来满足感。然而,真正能成为软件架构师的人却少之又少。作为一名合格的架构师,其水平的高低取决于架构能力。该能力体现为抽象能力、整体规划能力以及设计能力。架构能力决定了所开发项目的落地时间、稳定性、灵活性与可维护性。本书以架构师的能力培养为切入点,将作者在过去十多年的工作中遇到的问题进行抽象,并作为示例呈现给读者。本书以设计原则为基础,但是不强调对设计模式进行死记硬背,而是偏重于对设计原则的理解以及运用,并尽可能地接近实战,帮助读者迅速掌握灵活运用设计原则来处理各种问题的能力。本书主要内容基础篇基本设计原则主流程设计篇轻松应对后续的变化优雅地暴露内部属性复杂逻辑的拆解与协同组件篇复用的人性化设计对外篇屏蔽外部依赖的防火墙设计事件的分散性与协议化封装基于Reactor模式的系统优化代码边界的延伸——善用SDK
|
內容簡介: |
《读源码学架构:系统架构师思维训练之道》以软件架构师的能力培养为切入点,结合作者在过去10多年的工作中积累的经验,介绍了一名合格甚至优秀的架构师应该具备的能力。《读源码学架构:系统架构师思维训练之道》分为4篇,总计9章,基本涵盖了大部分生产环境下的系统设计原则以及方案。本书主要内容有基本设计原则、轻松应对后续的变化、优雅地暴露内部属性、复杂逻辑的拆解与协同、复用的人性化设计、屏蔽外部依赖的防火墙设计、事件的分散性与协议化封装、基于Reactor模式的系统优化、代码边界的延伸——善用SDK。《读源码学架构:系统架构师思维训练之道》尽管内容篇幅短小,但是信息量相当密集。本书适合具有一定编程经验,在业务上仍然有追求,希望能晋升为软件架构师的软件开发人员阅读。同时,对设计模式感兴趣的初级开发人员,可以通过本书掌握与架构设计相关的知识。
|
關於作者: |
郝佳,前阿里巴巴高级架构师,现硕磐智能首席架构师,一直专注于中间件领域与数据服务领域的研究和开发;擅长系统的性能优化、系统设计与大数据服务处理,热衷于研究各种优秀的开源框架,尤其对Spring、MyBatis、JMS、Tomcat等源码有深刻的理解和认识;拥有4项技术专利,写作出版的书《Spring源码深度解析》深受读者好评。
|
目錄:
|
第 1章 基本设计原则11.1 单一职责原则21.1.1 简述21.1.2 示例31.1.3 小结81.2 开闭原则81.2.1 简述81.2.2 示例101.2.3 小结131.3 依赖倒置原则141.3.1 简述141.3.2 示例151.3.3 小结171.4 里氏替换原则171.4.1 简述171.4.2 示例181.4.3 小结201.5 迪米特法则201.5.1 简述201.5.2 示例211.5.3 小结221.6 接口隔离原则221.7 总结24第 2章 轻松应对后续的变化272.1 抛出问题272.2 问题分析322.3 Spring中的PostProcessor机制332.3.1 示例332.3.2 思路抽象382.4 设计优化402.4.1 需求分析与设计402.4.2 代码实现412.5 总结49第3章 优雅地暴露内部属性513.1 抛出问题513.2 问题分析583.2.1 违背设计原则583.2.2 设计看似优雅,实则不然593.3 Spring中的Aware机制613.3.1 Aware概述643.3.2 ApplicationContextAware的实现逻辑653.3.3 思路抽象673.3.4 优势分析683.4 问题优化713.5 总结75第4章 复杂逻辑的拆解与协同774.1 抛出问题774.2 问题分析814.2.1 PostProcessor模式的错误选型824.2.2 模板方法模式的错误选型834.3 Tomcat中的PipeLine机制874.3.1 Tomcat容器结构与协同处理884.3.2 思路抽象914.4 问题优化934.4.1 设计优化934.4.2 关键代码944.4.3 链表与for循环的区别1014.5 总结104第5章 复用的人性化设计1055.1 抛出问题1055.2 问题分析1125.2.1 大量冗余代码1125.2.2 AOP切割原子逻辑1145.3 Spring中事务的封装与复用1185.3.1 Spring的事务处理1185.3.2 思路抽象1235.4 问题优化1255.4.1 注解设计1285.4.2 定义切面逻辑1295.4.3 定义拦截器1345.5 总结137第6章 屏蔽外部依赖的防火墙设计1396.1 抛出问题1396.2 问题分析1406.2.1 服务雪崩1406.2.2 逻辑入侵1466.3 思路抽象1496.4 问题优化1516.4.1 优化对接层1516.4.2 构建防腐层1526.5 总结154第7章 事件的分散性与协议化封装1577.1 抛出问题1577.2 问题分析1607.2.1 扩展类爆炸1607.2.2 扩展机制与监听机制的错用1617.3 WebSocket事件的封装与协议化1647.3.1 WebSocket1647.3.2 通信设计1667.3.3 思路抽象1717.4 问题优化1747.4.1 生产者视角1747.4.2 消费者视角1787.5 总结182第8章 基于Reactor模式的系统优化1858.1 抛出问题1858.2 问题分析1878.2.1 加机器1878.2.2 串行调用改为并发调用1878.2.3 预处理1888.3 Netty中的Reactor模式1888.3.1 Netty概述1888.3.2 BIO与NIO1898.3.3 Reactor编程模型1928.3.4 思路抽象1978.4 问题优化1998.4.1 方案设计1998.4.2 代码优化2018.5 总结216第9章 代码边界的延伸——善用SDK2179.1 抛出问题2179.2 问题分析与优化2179.2.1 SDK与API的区别2189.2.2 SDK可以解决的问题2199.2.3 SDK缺点与解决221
|
|