【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍电子书下载地址
- 文件名
- [epub 下载] 【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍 epub格式电子书
- [azw3 下载] 【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍 azw3格式电子书
- [pdf 下载] 【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍 pdf格式电子书
- [txt 下载] 【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍 txt格式电子书
- [mobi 下载] 【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍 mobi格式电子书
- [word 下载] 【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍 word格式电子书
- [kindle 下载] 【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍 kindle格式电子书
寄语:
官方正版 出版社直发
内容简介:
本书是经典著作《重构》出版20年后的更新版。书中清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的风险。 本书适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物。
书籍目录:
第 1 章 重构,第 一个示例 …………………………………………………………… 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 Clumps) …………………………………………………………… 78
3.11 基本类型偏执(Primitive Obsession) ……………………………………………… 78
3.12 重复的switch(Repeated Switches) ……………………………………………… 79
3.13 循环语句(Loops) …………………………………………………………………… 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 Trading) ………………………………………………………… 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 注释(Comments) …………………………………………………………………… 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 封装变量(Encapsulate Variable) ………………………………………………… 132
6.7 变量改名(Rename Variable) …………………………………………………… 137
6.8 引入参数对象(Introduce Parameter Object) …………………………………… 140
6.9 函数组合成类(Combine Functions into Class) ……………………………… 144
6.10 函数组合成变换(Combine Functions into Transform) …………………… 149
6.11 拆分阶段(Split Phase) …………………………………………………………… 154
第7 章 封装 ………………………………………………………………………… 161
7.1 封装记录(Encapsulate Record) ………………………………………………… 162
7.2 封装集合(Encapsulate 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
第 10 章 简化条件逻辑 ……………………………………………………………… 259
10.1 分解条件表达式(Decompose 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 Special Case) …………………………………………… 289
10.6 引入断言(Introduce Assertion) ………………………………………………… 302
第 11 章 重构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 Command) ……………………… 337
11.10 以函数取代命令(Replace Command with Function) ……………………… 344
第 12 章 处理继承关系 ……………………………………………………………… 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 折叠继承体系(Collapse Hierarchy) …………………………………………… 380
12.10 以委托取代子类(Replace Subclass with Delegate) ………………………… 381
12.11 以委托取代超类(Replace Superclass with Delegate) ……………………… 399
参考文献………………………………………………………………………………… 405
索引……………………………………………………………………………………… 409
作者介绍:
作者简介 马丁·福勒(Martin Fowler) 软件开发大师,ThoughtWorks 科学家。他是一位作家、演说者、咨询师。他致力于改善企业级的软件设计,对设计以及支撑设计的工程实践孜孜以求。他在重构、面向对象分析设计、模式、XP 和UML 等领域都有贡献,著有《重构》《分析模式》《领域特定语言》等经典著作。 译者简介 熊节 在IT 行业已经打拼了18年,在金融、零售、政府、电信、制造业等行业的信息化建设方面有着丰富经验,是中国IT业敏捷浪潮的领军人物。熊节拥有利物浦大学MBA学位。 林从羽 ThoughtWorks软件开发工程师,曾服务于国内外多家大型企业,致力于帮助团队更快更好地交付可工作的软件。拥抱敏捷精神,TDD爱好者,纯键盘工作者。
出版社信息:
暂无出版社相关信息,正在全力查找中!
书籍摘录:
暂无相关书籍摘录,正在全力查找中!
在线阅读/听书/购买/PDF下载地址:
原文赏析:
养成重构后即运行测试的习惯非常重要。犯错误是很容易的——至少我知道我是很容易犯错的。做完一次修改就运行测试,这样在我真的犯了错时,只需要考虑一个很小的改动范围,这使得查错与修复问题易如反掌。这就是重构过程的精髓所在:小步修改,每次修改后就运行测试。如果我改动了太多东西,犯错时就可能陷入麻烦的调试,并为此耗费大把时间。小步修改,以及它带来的频繁反馈,正是防止混乱的关键。
to make the software easier to understand and modify.
refactoring does not change the observable behavior of the software
Why Should You Refactor?
Refactoring Improves the Design of Software
Refactoring Makes Software Easier to Understand
Refactoring Helps You Find Bugs
Refactoring Helps You Program Faster
即使在开发过程中,当你发现重复或相似的代码时,也应该立刻重构;当变化发生时,如果该变化影响不止一处,重构就应该粉墨登场。经常的重构可以保证代码常拭常新,如利刃一般锋利。“不要容忍破窗户”
如果两个或更多的地方实现同一职责,则改变时会带来麻烦。所以要遵循DRY原则,单一职责。
When Should You Refactor?
The Rule of Three(Three strikes and you refactor)
Refactor When You Add Function
Refactor When You Need to Fix a Bug
Refactor As You Do a Code Review
The most common time to refactor is when I want to add a new feature to some software.
Reasons:1.refactoring helps me understand some code I need to modify.2.another driver of refactoring is a design that does not help me add a fe...
复制一遍代码似乎不算太难,但却给未来留下各种隐患:一计费逻辑发生变化,我就得同时修改两个地方,以保证它们逻辑相同。如果你编写的是一个永不需要修改的程序,这样剪剪贴贴就还好。但如果程序要保存很长时间,那么重复的逻辑就会造成潜在的威胁。
每当我要进行重构的时候,第一个步骤永远相同:我得确保即将修改的代码拥有一组可靠的测试。这些测试必不可少,因为尽管遵重构手法可以使我避免绝大多数引入bug的情形,但我毕竟是人,毕竟有可能犯错。程序越大,我的修改不小心破坏其他代码的可能性就越大——在数字时代,软件的名字就是脆弱。
很多时候那个未来的开发者就是我自己。此时重构就显得尤其重要了。我是一个很懒惰的程序员,我的懒惰表现形式之一就是:总是记不住自己写过的代码。事实上,对于任何能够立刻查阅的东西,我都故意不去记它,因为我怕把自己的脑袋塞爆。我总是尽量把该记住的东西写进代码里,这样我就不必去记它了。这么一来,下班后我还可以喝两杯Maudite啤酒,不必太担心它杀光我的脑细胞。
其它内容:
编辑推荐
软件开发大师的经典作品新版,普通程序员进阶到编程高手必须修炼的秘笈
书籍介绍
本书是经典著作《重构》出版20年后的更新版。书中清晰揭示了重构的过程,解释了重构的原理和实践方式,给出了何时以及何地应该开始挖掘代码以求改善的建议;并展示了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。
本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的风险。适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物。
网站评分
书籍多样性:6分
书籍信息完全性:4分
网站更新速度:3分
使用便利性:3分
书籍清晰度:3分
书籍格式兼容性:5分
是否包含广告:7分
加载速度:3分
安全性:7分
稳定性:9分
搜索功能:3分
下载便捷性:7分
下载点评
- 无缺页(582+)
- 推荐购买(78+)
- 差评(146+)
- 快捷(447+)
- 值得下载(365+)
- 二星好评(365+)
- 中评(623+)
下载评价
- 网友 石***致: ( 2024-12-28 21:21:46 )
挺实用的,给个赞!希望越来越好,一直支持。
- 网友 益***琴: ( 2024-12-26 00:09:22 )
好书都要花钱,如果要学习,建议买实体书;如果只是娱乐,看看这个网站,对你来说,是很好的选择。
- 网友 谢***灵: ( 2025-01-19 23:16:27 )
推荐,啥格式都有
- 网友 辛***玮: ( 2025-01-01 17:07:04 )
页面不错 整体风格喜欢
- 网友 常***翠: ( 2025-01-18 10:37:59 )
哈哈哈哈哈哈
- 网友 訾***晴: ( 2025-01-05 05:26:55 )
挺好的,书籍丰富
- 网友 权***颜: ( 2025-01-17 16:00:29 )
下载地址、格式选择、下载方式都还挺多的
- 网友 宫***凡: ( 2025-01-15 21:49:57 )
一般般,只能说收费的比免费的强不少。
- 网友 蓬***之: ( 2025-01-02 08:20:01 )
好棒good
- 网友 郗***兰: ( 2025-01-19 00:21:48 )
网站体验不错
- 网友 丁***菱: ( 2024-12-24 14:36:30 )
好好好好好好好好好好好好好好好好好好好好好好好好好
- 网友 仰***兰: ( 2024-12-28 16:42:16 )
喜欢!很棒!!超级推荐!
喜欢"【旗舰店正版】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计教程书籍"的人也看了
- 暴风雨中的孩子 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 城南旧事 视频版 林海音 著 李观政 编 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 混凝土结构加固设计规范算例 卜良桃,周靖,叶蓁 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 导游基础知识(第二版)——全国导游人员资格考试(全国部分)系列教材 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 地球仪通用要求(CH T1053-2022)/中华人民共和国测绘行业标准 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 工作分析与职位评价 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 半导体物理与器件 孙霞 西安电子科技大学出版社【无忧售后 放心购买】 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 傻瓜吉姆佩尔 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 小锡兵 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 全新正版图书 建筑的性格 简照玲摄 东方出版中心 9787547312650青岛新华书店旗舰店 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
书籍真实打分
故事情节:4分
人物塑造:8分
主题深度:6分
文字风格:6分
语言运用:4分
文笔流畅:8分
思想传递:6分
知识深度:7分
知识广度:8分
实用性:5分
章节划分:8分
结构布局:4分
新颖与独特:6分
情感共鸣:3分
引人入胜:7分
现实相关:3分
沉浸感:3分
事实准确性:5分
文化贡献:7分