编辑推荐
对于每一位软件研发从业人员,无论从事的是具体编码实现、架构设计,还是软件研发管理,《架构整洁之道》都是不可或缺的。
内容简介
本书是创造“Clean神话”的Bob大叔在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。
本书分为6部分,第1部分纲领性地提出软件架构设计的终极目标,描述软件架构设计的重点与模式;第2~4部分从软件开发中三个基础编程范式的定义和特征出发,进一步描述函数、组件、服务设计与实现的定律,以及它们是如何有效构建软件系统的整体架构的;第5部分从整洁架构的定义开始,详细阐述软件架构设计过程中涉及的方方面面,包括划分内部组件边界、应用常见设计模式、避开错误、降低成本、处理特殊情况等,并以实战案例将内容有机整合起来;第6部分讲述具体实现细节;附录则透过作者数十年的软件从业经历再次印证《架构整洁之道》的观点。
作者简介
作者Robert C. Martin,软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report前主编,被后辈程序员尊称为“Bob大叔”。20世纪7 0年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,到今已发表数百篇文章、论文和博客文章。除本书外,还著有《代码整洁之道》《敏捷软件开发:原则、模式和实践》《UML:Java程序员指南》等。他创办了cleancoders.com网站,专为软件开发人员提供教育视频。
章节目录
版权信息
内容简介
推荐序一
推荐序二 久远的教诲,古老的智慧
序言
前言
致谢
关于作者
关于技术审校者
第1部分 概述
第1章 设计与架构究竟是什么
目标是什么
案例分析
本章小结
第2章 两个价值维度
行为价值
架构价值
哪个价值维度更重要
艾森豪威尔矩阵
为好的软件架构而持续斗争
第2部分 从基础构件开始:编程范式
第3章 编程范式总览
结构化编程
面向对象编程
函数式编程
仅供思考
本章小结
第4章 结构化编程
可推导性
goto是有害的
功能性降解拆分
形式化证明没有发生
科学来救场
测试
本章小结
第5章 面向对象编程
封装
继承
多态
本章小结
第6章 函数式编程
整数平方
不可变性与软件架构
可变性的隔离
事件溯源
本章小结
第3部分 设计原则
第7章 SRP:单一职责原则
反面案例2:代码合并
解决方案
本章小结
第8章 OCP:开闭原则
思想实验
依赖方向的控制
信息隐藏
本章小结
第9章 LSP:里氏替换原则
继承的使用指导
正方形/长方形问题
LSP与软件架构
违反LSP的案例
本章小结
第10章 ISP:接口隔离原则
ISP与编程语言
ISP与软件架构
本章小结
第11章 DIP:依赖反转原则
稳定的抽象层
工厂模式
具体实现组件
本章小结
第4部分 组件构建原则
第12章 组件
组件发展史
重定位技术
链接器
本章小结
第13章 组件聚合
复用/发布等同原则
共同闭包原则
共同复用原则
组件聚合张力图
本章小结
第14章 组件耦合
无依赖环原则
自上而下的设计
稳定依赖原则
稳定抽象原则
本章小结
第5部分 软件架构
第15章 什么是软件架构
开发(Development)
部署(Deployment)
运行(Operation)
维护(Maintenance)
保持可选项
设备无关性
垃圾邮件
物理地址寻址
本章小结
第16章 独立性
用例
运行
开发
部署
保留可选项
按层解耦
用例的解耦
解耦的模式
开发的独立性
部署的独立性
重复
再谈解耦模式
本章小结
第17章 划分边界
几个悲伤的故事
FitNesse
应在何时、何处画这些线
输入和输出怎么办
插件式架构
插件式架构的好处
本章小结
第18章 边界剖析
跨边界调用
令人生畏的单体结构
部署层次的组件
线程
本地进程
服务
本章小结
第19章 策略与层次
层次(Level)
本章小结
第20章 业务逻辑
业务实体
用例
请求和响应模型
本章小结
第21章 尖叫的软件架构
架构设计的主题
架构设计的核心目标
那Web呢
框架是工具而不是生活信条
可测试的架构设计
本章小结
第22章 整洁架构
依赖关系规则
一个常见的应用场景
本章小结
第23章 展示器和谦卑对象
谦卑对象模式
展示器与视图
测试与架构
数据库网关
数据映射器
服务监听器
本章小结
第24章 不完全边界
省掉最后一步
单向边界
门户模式
本章小结
第25章 层次与边界
基于文本的冒险游戏:Hunt The Wumpus
可否采用整洁架构
交汇数据流
数据流的分割
本章小结
第26章 Main组件
最细节化的部分
本章小结
第27章 服务:宏观与微观
面向服务的架构
服务所带来的好处
运送猫咪的难题
对象化是救星
基于组件的服务
横跨型变更
本章小结
第28章 测试边界
测试也是一种系统组件
可测试性设计
测试专用API
本章小结
第29章 整洁的嵌入式架构
“程序适用测试”测试
目标硬件瓶颈
本章小结
第6部分 实现细节
第30章 数据库只是实现细节
关系型数据库
为什么数据库系统如此流行
假设磁盘不存在会怎样
实现细节
但性能怎么办呢
一段轶事
本章小结
第31章 Web是实现细节
无尽的钟摆
总结一下
本章小结
第32章 应用程序框架是实现细节
框架作者
单向婚姻
风险
解决方案
不得不接受的依赖
本章小结
第33章 案例分析:视频销售网站
产品
用例分析
组件架构
依赖关系管理
本章小结
第34章 拾遗
按层封装
按功能封装
端口和适配器
按组件封装
具体实现细节中的陷阱
组织形式与封装的区别
其他的解耦合模式
本章小结:本书拾遗
后序
附录A 架构设计考古
工会财务记账系统
激光切割
铝压铸监控
4-TEL
维护中心计算机(SAC)
C语言
BOSS
pCCU
DLU/DRU
VRS
电子前台
修理工派遣系统
Clear Communications公司
ROSE
系统架构师注册考试
小结
架构整洁之道是2018年由电子工业出版社出版,作者[美]RobertC.Martin。
得书感谢您对《架构整洁之道》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。