• 重构 改善既有代码的设计(第2版) 软硬件技术 (美)马丁·福勒(martin fowler) 新华正版
21年品牌 40万+商家 超1.5亿件商品

重构 改善既有代码的设计(第2版) 软硬件技术 (美)马丁·福勒(martin fowler) 新华正版

重构20年,世界软件开发大师martinfowler的不朽经典,生动阐述重构和具体做,普通程序员到编程高手的修炼秘笈和代码整洁之道

47.9 4.8折 99 全新

库存14件

江苏无锡
认证卖家担保交易快速发货售后保障

作者(美)马丁·福勒(martin fowler)

出版社人民邮电出版社

ISBN9787115508652

出版时间2019-05

版次1

装帧平装

开本16开

页数421页

字数546千字

定价99元

货号xhwx_1201857110

上书时间2023-08-25

念微书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
正版特价新书
商品描述
主编:

1.软件开发大师的不朽经典2.生动阐述重构和具体做3.普通程序员到编程高手必须修炼的秘笈重构,一言以蔽之,是在不改变外部行为的前提下,有条不紊地改善代码。20多年前,正是重构:改善既有代码的设计版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员常开发工作中不可或缺的一部分。如今,martinfowler的重构:改善既有代码的设计一书已经成为全球有经验的程序员手中的利器,既可用来改善既有代码的设计、提升软件的可维护,又可用于使既有代码更易理解、焕发出新的活力。这本备受关注的第2版在版的基础上做了全面修订,反映了编程领域业已发生的许多变化。第2版中介绍的重构列表更加内聚,并用javascript语言重写了代码范例。此外,第2版中还新增了与函数式编程相关的重构范例,旨在读者如何在没有类的环境下开展重构。新版沿袭了版的结构,依次解释什么是重构,为什么要重构,如何通过“坏味道”识别出需要重构的代码,以及如何在实践中成功实施重构(无论用的是什么编程语言)。理解重构的过程和重构的基本原则;快速有效地应用各种重构手,提升程序的表达力和可维护;识别代码中能指示出需要重构的地方的“坏味道”;深入了解各种重构手,每个手都包含解释、动机、做和范例4个部分;构建稳固的测试,以支持重构工作的开展;理解重构过程的权衡取舍以及重构存在的挑战等。本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,书中所蕴涵的思想和精华,值得反复咀嚼,而且往往能够常读常新。

目录:

章 重构,个示例 1
1.1 起点 1
1.2 对此起始程序的评价 3
1.3 重构的步 5
1.4 分解statement 函数 6
1.5 进展:大量嵌套函数 22
1.6 拆分计算阶段与格式化阶段 24
1.7 进展:分离到两个文件(和两个阶段) 31
1.8 按类型重组计算过程 34
1.9 进展:使用多态计算器来提供数据 41
1.10 结语 43
第2章 重构的原则 45
2.1 何谓重构 45
2.2 两顶帽子 46
2.3 为何重构 47
2.4 何时重构 50
2.5 重构的挑战 55
2.6 重构、架构和yagni 62
2.7 重构与软件开发过程 63
2.8 重构与能 64
2.9 重构起源何处 67
2.10 自动化重构 68
2.11 延展阅读 70
第3章 代码的坏味道 71
3.1 神秘命名(mysterious name) 72
3.2 重复代码(duplicated code) 72
3.3 过长函数(long function) 73
3.4 过长参数列表(long parameter list) 74
3.5 全局数据(global data) 74
3.6 可变数据(mutable data) 75
3.7 发散式变化(divergent change) 76
3.8 霰弹式修改(shotgun surgery) 76
3.9 依恋情结(feature envy) 77
3.10 数据泥团(data clum) 78
3.11 基本类型偏执(primitive obsession) 78
3.12 重复的switch(repeated switches) 79
3.13 循环语句(loo) 79
3.14 冗赘的元素(lazy element) 80
3.15 夸夸其谈通用(speculative generality) 80
3.16 临时字段(temporary field) 80
3.17 过长的消息链(message chains) 81
3.18 中间人(middle man) 81
3.19 内幕交易(insider tra) 82
3.20 过大的类(large class) 82
3.21 异曲同工的类(alternative classes with different interfaces) 83
3.22 纯数据类(data class) 83
3.23 被拒绝的遗赠(refused bequest) 83
3.24 注释(ments) 84
第4章 构筑测试体系 85
4.1 自测试代码的价值 85
4.2 待测试的示例代码 87
4.3 个测试 90
4.4 再添加一个测试 93
4.5 修改测试夹具 95
4.6 探测边界条件 96
4.7 测试远不止如此 99
第5章 介绍重构名录 101
5.1 重构的记录格式 101
5.2 挑选重构的依据 102
第6章 组重构 105
6.1 提炼函数(extract function) 106
6.2 内联函数(inline function) 115
6.3 提炼变量(extract variable) 119
6.4 内联变量(inline variable) 123
6.5 改变函数声明(change function declaration) 124
6.6 封装变量(encaulate variable) 132
6.7 变量改名(rename variable) 137
6.8 引入参数对象(introduce parameter object) 140
6.9 函数组合成类(bine functions into class) 144
6.10 函数组合成变换(bine functions into transform) 149
6.11 拆分阶段(split phase) 154
第7章 封装 161
7.1 封装记录(encaulate record) 162
7.2 封装集合(encaulate collection) 170
7.3 以对象取代基本类型(replace primitive with object) 174
7.4 以查询取代临时变量(replace temp with query) 178
7.5 提炼类(extract class) 182
7.6 内联类(inline class) 186
7.7 隐藏委托关系(hide delegate) 189
7.8 移除中间人(remove middle man) 192
7.9 替换算(substitute algorithm) 195
第8章 搬移特 197
8.1 搬移函数(move function) 198
8.2 搬移字段(move field) 207
8.3 搬移语句到函数(move statements into function) 213
8.4 搬移语句到调用者(move statements to callers) 217
8.5 以函数调用取代内联代码(replace inline code with function call) 222
8.6 移动语句(slide statements) 223
8.7 拆分循环(split loop) 227
8.8 以管道取代循环(replace loop with pipeline) 231
8.9 移除死代码(remove dead code) 237
第9章 重新组织数据 239
9.1 拆分变量(split variable) 240
9.2 字段改名(rename field) 244
9.3 以查询取代派生变量(replace derived variable with query) 248
9.4 将引用对象改为值对象(change reference to value) 252
9.5 将值对象改为引用对象(change value to reference) 256
0章 简化条件逻辑 259
10.1 分解条件表达式(dee conditional) 260
10.2 合并条件表达式(consolidate conditional expression) 263
10.3 以卫语句取代嵌套条件表达式(replace nested conditional with guard clauses) 266
10.4 以多态取代条件表达式(replace conditional with polymorphism) 272
10.5 引入特例(introduce spe case) 289
10.6 引入断言(introduce assertion) 302
1章 重构api 305
11.1 将查询函数和修改函数分离(separate query from modifier) 306
11.2 函数参数化(parameterize function) 310
11.3 移除标记参数(remove flag argument) 314
11.4 保持对象完整(preserve whole object) 319
11.5 以查询取代参数(replace parameter with query) 324
11.6 以参数取代查询(replace query with parameter) 327
11.7 移除设值函数(remove setting method) 331
11.8 以工厂函数取代构造函数(replace constructor with factory function) 334
11.9 以命令取代函数(replace function with mand) 337
11.10 以函数取代命令(replace mand with function) 344
2章 处理继承关系 349
12.1 函数上移(pull up method) 350
12.2 字段上移(pull up field) 353
12.3 构造函数本体上移(pull up constructor body) 355
12.4 函数下移(push down method) 359
12.5 字段下移(push down field) 361
12.6 以子类取代类型码(replace type code with subclasses) 362
12.7 移除子类(remove subclass) 369
12.8 提炼超类(extract superclass) 375
12.9 折叠继承体系(collae hierarchy) 380
12.10 以委托取代子类(replace subclass with delegate) 381
12.11 以委托取代超类(replace superclass with delegate) 399
参文献 405
索引 409

内容简介:

本书是经典著作重构出版20年后的更新版。书中清晰揭示了重构的过程,解释了重构的和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手的动机和技术。本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的风险。本书适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参读物。

作者简介:

马丁福勒(martinfowler)软件开发大师,thoughtworks科学家。他是一位作家、演说者、咨询师。他致力于改善企业级的软件设计,对设计以及支撑设计的工程实践孜孜以求。他在重构、面向对象分析设计、模式、xp和uml等领域都有贡献,著有重构分析模式领域特定语言等经典著作。

—  没有更多了  —

以下为对购买帮助不大的评价

正版特价新书
此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP