书籍详情

整洁架构之道

整洁架构之道

作者:[美]罗伯特·C.马丁(Robert C. Martin)

出版社:机械工业出版社

出版时间:2024-09-01

ISBN:9787111763987

定价:¥99.00

购买这本书可以去
内容简介
  这是一本关于如何设计更整洁、更高效的软件架构的全面、实用性指南,阐述了软件架构师的角色和目标,软件架构设计的核心原则,如何为Web、数据库、客户端、控制台和嵌入式应用程序设计最佳的高级结构。全书分为六部分,涵盖了设计和架构、编程范式(结构化编程、面向对象编程、函数式编程)、设计原则(单一职责原则、开闭原则、里氏替换原则、接口隔离原则)、组件原则(重定位技术、组件内聚、组件耦合)、架构(独立性、划分边界、边界剖析、分层和边界、整洁架构、整洁嵌入式架构),以及实现细节和案例研究。本书是软件架构师、系统分析师、系统设计师、软件经理以及执行他人设计的程序员的之作。
作者简介
  Robert C. Martin(Bob大叔) 世界著名编程大师,敏捷开发和设计模式先驱,从事软件开发相关工作超过50年。他是“SOLID五大原则”的奠基人、“敏捷宣言”联合签署人、“敏捷联盟”首任主席、C Report杂志前主编。他发表了大量有影响力的文章,并经常受邀在许多国际软件大会上发表演讲。他创立了Uncle Bob Consulting有限责任公司,并与儿子Micah Martin共同创立了Clean Coders有限责任公司。他还是Clean Code、The Clean Coder和Functional Design等多本畅销书籍的作者。
目录
推荐序
前言
作者简介
 
第一部分 概述
第1章 架构与设计 3
我们的目标是什么 4
案例学习 5
本章小结 10
 
第2章 两种价值维度 11
行为价值 12
架构价值 12
哪个价值维度更重要 13
艾森豪威尔矩阵 14
为架构而战 15
 
第二部分 从基础构件开始:编程范式
第3章 范式概述 19
结构化编程 20
面向对象编程 20
函数式编程 20
思想小插曲 21
本章小结 21
 
第4章 结构化编程 22
可推导性 23
有害的goto 25
功能性降解拆分 26
形式化证明没有发生 26
依靠科学来拯救 26
测试 27
本章小结 28
 
第5章 面向对象编程 29
什么是封装 30
什么是继承 33
什么是多态 35
本章小结 40
第6章 函数式编程 41
整数的平方 42
不可变性与软件架构 43
可变性的隔离 44
事件溯源 45
本章小结 46
 
第三部分 设计原则
第7章 SRP:单一职责原则 49
反例1:意外的复用 50
反例2:代码合并 52
解决方案 52
本章小结 54
 
第8章 OCP:开闭原则 55
思想实验 56
依赖方向的控制 59
信息隐藏 59
本章小结 59
 
第9章 LSP:里氏替换原则 60
继承的使用指南 61
正方形/矩形问题 61
LSP和架构 62
违反LSP的示例 63
本章小结 64
 
第10章 ISP:接口隔离原则 65
ISP和编程语言 66
ISP和架构 67
本章小结 67
 
第11章 DIP:依赖反转原则 68
稳定的抽象 69
工厂模式 70
具体实现组件 71
本章小结 71
 
第四部分 组件原则
第12章 组件 75
组件简史 76
重定位技术 78
链接器 79
本章小结 80
 
第13章 组件内聚 81
复用/发布等价原则 82
共同闭合原则 83
共同复用原则 84
组件内聚张力图 85
本章小结 86
 
第14章 组件耦合 87
无依赖环原则 88
自顶向下的设计 93
稳定依赖原则 94
稳定抽象原则 99
本章小结 104
 
第五部分 架构
第15章 架构的定义 106
开发 108
部署 108
操作 109
运维 109
对可选项保持开放 110
设备独立性 111
垃圾邮件 113
物理寻址 114
本章小结 115
 
第16章 独立性 116
用例 117
操作 117
开发 118
部署 118
保持选项开放 119
层级解耦 119
解耦用例 120
解耦模式 120
可独立开发性 121
可独立部署性 121
复制 122
又一个解耦模式 123
本章小结 124
 
第17章 划分边界 125
几个悲伤的故事 126
菲特内斯公司 128
画哪些边界?画在哪里? 130
输入和输出 132
插件化架构 133
关于插件化的争论 134
本章小结 135
 
第18章 边界剖析 136
跨越边界 137
可怕的单体应用 137
部署组件 139
线程 139
本地进程 140
服务 140
本章小结 141
 
第19章 策略和级别 142
级别 143
本章小结 145
 
第20章 业务规则 146
实体 147
用例 148
请求和响应模型 150
本章小结 150
 
第21章 架构的自白 151
架构的主题 152
架构的目的 152
Web是架构吗 153
框架是工具,而不是生活方式 153
可测试的架构 154
本章小结 154
 
第22章 整洁架构 155
依赖规则 156
典型场景 160
本章小结 161
 
第23章 展示器和谦逊对象 162
谦逊对象模式 163
展示器和视图 163
测试和架构 164
数据库网关 164
数据映射 165
服务监听器 165
本章小结 165
 
第24章 不完全边界 166
跳到最后一步 167
单向边界 168
外观 168
本章小结 169
 
第25章 分层和边界 170
狩猎游戏 171
整洁架构 172
交汇数据流 174
数据流的分割 174
本章小结 176
 
第26章 Main组件 178
终极细节 179
本章小结 183
 
第27章 服务:宏观与微观 184
面向服务的架构 185
服务化所带来的好处 185
运送小猫的难题 187
对象化是救星 188
基于组件的服务 189
跨领域问题 190
本章小结 191
 
第28章 测试边界 193
测试也是一种系统组件 194
可测试性设计 194
测试专用API 195
本章小结 196
 
第29章 整洁嵌入式架构 197
程序适用测试 200
目标硬件瓶颈 202
本章小结 210
第六部分 实现细节
第30章 数据库只是实现细节 212
关系型数据库 213
数据库系统为什么如此流行 213
假如没有磁盘 214
实现细节 215
数据存储的性能 215
轶事 215
本章小结 217
 
第31章 Web 只是实现细节 218
无尽的钟摆 219
要点 220
本章小结 221
 
第32章  应用程序框架只是
实现细节 222
框架开发者 223
不对等的关系 223
风险 224
解决方案 224
主动做出选择 225
本章小结 225
 
第33章 案例研究:
视频销售 226
产品 227
用例分析 227
组件架构 228
依赖管理 230
本章小结 230
 
第34章 细节决定成败 231
按层组包 232
按功能组包 233
端口和适配器 234
按组件组包 235
实现细节 239
组织方式与封装 239
其他解耦模式 242
本章小结 243
 
附录 架构考古学 244
猜您喜欢

读书导航