我的新书终于要出来啦
2014-04-07 16:30
218 查看
我的新书《大话重构》终于要出来啦!这是一本讲咱程序员应该怎样开发高质量代码的书,它用大量精彩的故事,讲解高质量的代码是怎样一步一步开发出来,其设计的过程、心理的历程、遇到的问题、解决的思路……
这是一本解惑的书,它通过故事向你阐述许多深邃难懂的设计难题;这又是一本故事会,它将那些枯燥的技术问题通过故事娓娓道来。它让你告别游击队转变为正规军,远离劣质代码走向精妙设计,真正明白专业级的软件开发是怎样的,真正明白重构是怎样一步一步进行的。
你也许会问,设计高质量的代码跟重构有什么关系呢?为什么你一边在谈高质量的代码设计,一边又在谈重构?其实我们一直在谈高质量的代码,它已经成为许多人的梦想,但似乎总是距离这个梦想十分遥远。在《大话重构》这本书里,我为大家找到了一条通往这个梦想的最佳途径,那就是重构。通过书中讲解的重构方法,大大降低了设计难度,使你轻轻松松就可以开始高质量的软件设计。为此,我提出了高效重构七步曲,面对实践不卡壳。
然而,此时的你也许并不是在开发一个新系统,而是在维护一套遗留系统。遗留系统!让人头大的名词。没有关系,本书让遗留系统维护不再是你的梦魇,它让你迅速读懂代码、正确地做出设计、一步步改善系统,让你最终可以喝着咖啡、哼着小曲,轻松地享受编程生活。
最后,当你读完本书,你会发现:
需求变更不再纠结,重构让你润物细无声地容纳它们;
超越代码级的重构,让你从各个层面深度领略重构之美;
自动化测试不再是梦想,重构让自动化测试走你;
重新审视熟悉而陌生的技术,将碎了一地的它们重新铆合在一起
大家可以在当当、亚马逊、京东、china-pub等网上书店搜索,也可以在豆瓣、51CTO、IT168文库等网上试读。
当当:http://product.dangdang.com/23449367.html
试读:http://wenku.it168.com/d_001416667.shtml
本书的目录:
遗留系统——软件工业时代的痛 1
第一部分基础篇 3
重构,一个既熟悉又陌生的名词。在这里,我首先给你诠释一个完全不同的重构,让你重新理解一个最熟悉的陌生技术:
第1章重构:改变既有代码的一剂良药 3
1.1什么是系统重构 3
1.2在保险索上走钢丝 4
1.3大布局与小步快跑 5
1.4软件修改的四种动机 6
1.5一个真实的谎言 8
第2章重构方法工具箱 9
2.1重构是一系列的等量变换——第一次HelloWorld重构 9
2.2盘点我们的重构工具箱——对HelloWorld抽取类和接口 12
第3章小步快跑的开发模式 17
3.1大布局你伤不起 17
3.2小设计而不是大布局 18
3.3小步快跑是这样玩的——HelloWorld重构完成 19
第4章保险索下的系统重构 26
4.1你不能没有保险索 26
4.2自动化测试——想说爱你不容易 28
4.3我们是这样自动化测试的——JUnit下的HelloWorldTest 29
4.4采用Mock技术完成测试 32
第二部分实践篇 37
当你充满激情地准备实践重构时,却发现自己在迈出第一步就卡壳了,有木有?高效可行的重构七步,让你面对实践不卡壳:
第5章第一步:从分解大函数开始 37
5.1超级大函数——软件退化的重灾区 37
5.2抽取方法的实践 43
5.3最常见的问题 45
第6章第二步:拆分大对象 47
6.1大对象的演化过程 47
6.2大对象的拆分过程——抽取类与职责驱动设计 49
6.3SRP原则与对象拆分 50
6.4合久必分,分久必合——类的归并 52
第7章第三步:提高代码复用率 54
7.1顺序编程的烦恼 54
7.2代码重复与DRY原则 55
7.3提高代码复用的方法 56
7.3.1当重复代码存在于同一对象中时——抽取方法
7.3.2当重复代码存在于不同对象中时——抽取类
7.3.3不同对象中复用代码的另一种方法——封装成实体类
7.3.4当代码所在的类具有某种并列关系时——抽取父类
7.3.5当出现继承泛滥时——将继承转换为组合
7.3.6当重复代码被割裂成碎片时——继承结合模板模式
7.4代码重复的检查工具 64
第8章第四步:发现程序可扩展点 64
8.1开放-封闭原则(OCP)与可扩展点设计 65
8.2过程的扩展与放置钩子——运用模板模式增加可扩展点 68
8.3面向切面的可扩展设计 71
8.4其它可扩展设计 74
第9章第五步:降低程序依赖度 78
9.1接口、实现与工厂模式 79
9.1.1彻底理解工厂模式和依赖反转原则
9.1.2工厂模式在重构中的实际运用
9.2外部接口与适配器模式——与外部系统解耦 84
9.3继承的泛滥与桥接模式 87
9.4方法的解耦与策略模式 90
9.5过程的解耦与命令模式 93
9.6透明的功能扩展与设计——组合模式与装饰者模式 95
第10章第六步:我们开始分层了 102
10.1什么才是我们需要的分层 102
10.2怎样才能拥抱需求的变化 104
10.3贫血模型与充血模型 108
10.4我们怎样面对技术的变革 111
第11章一次完整的重构过程 113
11.1第一步:分解大函数 113
11.2第二步:拆分大对象 115
11.3第三步:提高复用率 116
11.4第四步:发现扩展点 117
11.5第五步:降低依赖度 119
11.6第六步:分层 120
11.7第七步:领域驱动设计 121
第三部分进阶篇 123
我已经是一个重构的实践者了,但重构真的让我想说爱你不容易,太多太多的难题让我困惑让我烦恼。这里,让一个重构多年的实践者给你解惑吧:
第12章什么时候重构 123
12.1重构是一种习惯 123
12.2重构让程序可读 125
12.3重构,才好复用 126
12.4先重构,再扩展 127
12.5变更任务紧急时,又该如何重构 129
第13章测试驱动开发 131
13.1测试驱动开发(TDD) vs. 后测试开发(TAD) 131
13.2测试驱动开发与重构 134
13.3遗留系统怎样开展TDD 142
第14章全面的升级任务 144
14.1计划式设计VS演进式设计 144
14.2风险驱动设计 146
14.3制定系统重构计划 148
第15章我们怎样拥抱变化 149
15.1领域才是软件系统的“心”——工资软件的三次设计演变 149
15.2领域模型分析方法 155
15.3原文分析法 157
15.4领域驱动设计——使用领域模型与客户一起设计 160
15.5在遗留系统中的应用 164
第16章测试的困境 166
16.1重构初期的困局 167
16.2解耦与自动化测试 168
16.3谁来写自动化测试程序? 171
16.4建立自动化测试体系 174
第17章系统重构的评价 175
17.1评价软件质量的指标 175
17.2怎样评价软件质量呢 178
结束语:重构改变了世界 181
附录:重构方法速查手册 182
这是一本解惑的书,它通过故事向你阐述许多深邃难懂的设计难题;这又是一本故事会,它将那些枯燥的技术问题通过故事娓娓道来。它让你告别游击队转变为正规军,远离劣质代码走向精妙设计,真正明白专业级的软件开发是怎样的,真正明白重构是怎样一步一步进行的。
你也许会问,设计高质量的代码跟重构有什么关系呢?为什么你一边在谈高质量的代码设计,一边又在谈重构?其实我们一直在谈高质量的代码,它已经成为许多人的梦想,但似乎总是距离这个梦想十分遥远。在《大话重构》这本书里,我为大家找到了一条通往这个梦想的最佳途径,那就是重构。通过书中讲解的重构方法,大大降低了设计难度,使你轻轻松松就可以开始高质量的软件设计。为此,我提出了高效重构七步曲,面对实践不卡壳。
然而,此时的你也许并不是在开发一个新系统,而是在维护一套遗留系统。遗留系统!让人头大的名词。没有关系,本书让遗留系统维护不再是你的梦魇,它让你迅速读懂代码、正确地做出设计、一步步改善系统,让你最终可以喝着咖啡、哼着小曲,轻松地享受编程生活。
最后,当你读完本书,你会发现:
需求变更不再纠结,重构让你润物细无声地容纳它们;
超越代码级的重构,让你从各个层面深度领略重构之美;
自动化测试不再是梦想,重构让自动化测试走你;
重新审视熟悉而陌生的技术,将碎了一地的它们重新铆合在一起
大家可以在当当、亚马逊、京东、china-pub等网上书店搜索,也可以在豆瓣、51CTO、IT168文库等网上试读。
当当:http://product.dangdang.com/23449367.html
试读:http://wenku.it168.com/d_001416667.shtml
本书的目录:
遗留系统——软件工业时代的痛 1
第一部分基础篇 3
重构,一个既熟悉又陌生的名词。在这里,我首先给你诠释一个完全不同的重构,让你重新理解一个最熟悉的陌生技术:
第1章重构:改变既有代码的一剂良药 3
1.1什么是系统重构 3
1.2在保险索上走钢丝 4
1.3大布局与小步快跑 5
1.4软件修改的四种动机 6
1.5一个真实的谎言 8
第2章重构方法工具箱 9
2.1重构是一系列的等量变换——第一次HelloWorld重构 9
2.2盘点我们的重构工具箱——对HelloWorld抽取类和接口 12
第3章小步快跑的开发模式 17
3.1大布局你伤不起 17
3.2小设计而不是大布局 18
3.3小步快跑是这样玩的——HelloWorld重构完成 19
第4章保险索下的系统重构 26
4.1你不能没有保险索 26
4.2自动化测试——想说爱你不容易 28
4.3我们是这样自动化测试的——JUnit下的HelloWorldTest 29
4.4采用Mock技术完成测试 32
第二部分实践篇 37
当你充满激情地准备实践重构时,却发现自己在迈出第一步就卡壳了,有木有?高效可行的重构七步,让你面对实践不卡壳:
第5章第一步:从分解大函数开始 37
5.1超级大函数——软件退化的重灾区 37
5.2抽取方法的实践 43
5.3最常见的问题 45
第6章第二步:拆分大对象 47
6.1大对象的演化过程 47
6.2大对象的拆分过程——抽取类与职责驱动设计 49
6.3SRP原则与对象拆分 50
6.4合久必分,分久必合——类的归并 52
第7章第三步:提高代码复用率 54
7.1顺序编程的烦恼 54
7.2代码重复与DRY原则 55
7.3提高代码复用的方法 56
7.3.1当重复代码存在于同一对象中时——抽取方法
7.3.2当重复代码存在于不同对象中时——抽取类
7.3.3不同对象中复用代码的另一种方法——封装成实体类
7.3.4当代码所在的类具有某种并列关系时——抽取父类
7.3.5当出现继承泛滥时——将继承转换为组合
7.3.6当重复代码被割裂成碎片时——继承结合模板模式
7.4代码重复的检查工具 64
第8章第四步:发现程序可扩展点 64
8.1开放-封闭原则(OCP)与可扩展点设计 65
8.2过程的扩展与放置钩子——运用模板模式增加可扩展点 68
8.3面向切面的可扩展设计 71
8.4其它可扩展设计 74
第9章第五步:降低程序依赖度 78
9.1接口、实现与工厂模式 79
9.1.1彻底理解工厂模式和依赖反转原则
9.1.2工厂模式在重构中的实际运用
9.2外部接口与适配器模式——与外部系统解耦 84
9.3继承的泛滥与桥接模式 87
9.4方法的解耦与策略模式 90
9.5过程的解耦与命令模式 93
9.6透明的功能扩展与设计——组合模式与装饰者模式 95
第10章第六步:我们开始分层了 102
10.1什么才是我们需要的分层 102
10.2怎样才能拥抱需求的变化 104
10.3贫血模型与充血模型 108
10.4我们怎样面对技术的变革 111
第11章一次完整的重构过程 113
11.1第一步:分解大函数 113
11.2第二步:拆分大对象 115
11.3第三步:提高复用率 116
11.4第四步:发现扩展点 117
11.5第五步:降低依赖度 119
11.6第六步:分层 120
11.7第七步:领域驱动设计 121
第三部分进阶篇 123
我已经是一个重构的实践者了,但重构真的让我想说爱你不容易,太多太多的难题让我困惑让我烦恼。这里,让一个重构多年的实践者给你解惑吧:
第12章什么时候重构 123
12.1重构是一种习惯 123
12.2重构让程序可读 125
12.3重构,才好复用 126
12.4先重构,再扩展 127
12.5变更任务紧急时,又该如何重构 129
第13章测试驱动开发 131
13.1测试驱动开发(TDD) vs. 后测试开发(TAD) 131
13.2测试驱动开发与重构 134
13.3遗留系统怎样开展TDD 142
第14章全面的升级任务 144
14.1计划式设计VS演进式设计 144
14.2风险驱动设计 146
14.3制定系统重构计划 148
第15章我们怎样拥抱变化 149
15.1领域才是软件系统的“心”——工资软件的三次设计演变 149
15.2领域模型分析方法 155
15.3原文分析法 157
15.4领域驱动设计——使用领域模型与客户一起设计 160
15.5在遗留系统中的应用 164
第16章测试的困境 166
16.1重构初期的困局 167
16.2解耦与自动化测试 168
16.3谁来写自动化测试程序? 171
16.4建立自动化测试体系 174
第17章系统重构的评价 175
17.1评价软件质量的指标 175
17.2怎样评价软件质量呢 178
结束语:重构改变了世界 181
附录:重构方法速查手册 182
相关文章推荐
- 我的新书终于要出来啦
- 《JavaScript王者归来》的封面终于出来了!
- 都说汇编难,确实难入门啦?今儿终于写出我第一个汇编!高者莫见笑,写出来或许对跟我一样的有些帮助!
- 整了半天终于把五笔整出来了
- 终于把JAVA的SM2算法搞出来了!!!!!!!!!!!!!!!!!!!!!
- 云风的新书电子版出来的真快
- 新书《Android安全技术揭秘与防范》终于出版了
- 使用OpenGL的glMultiDrawElements()编译错误的解决方案!!(搜了好多资料终于弄出来了)
- miniblink 0.1 demo版本终于出来了
- VS 2008 hot-fix终于出来了
- spring Scurity终于测试OK了,复杂的功能还待深入研究!发布出来一起探讨吧!
- 盼望已久的录取名单终于出来了,公费了!
- 历尽艰辛,终于搞出来一个Outlook Express的插件
- 俺的新书《Sencha Touch实战》终于出版了
- 经过努力终于写完了Redis章节,在努力完成新书中。
- 【文档编写】终于写出了带标签的PDF文档了!嘿嘿,咱以后也写多一些出来显摆。
- OPPO R11s这张充满科技感的脸终于出来了!
- NEXUS 7的保护套终于出来啦!还有蓝牙键盘
- 周末发现一个BUG,时有时无,一出程序就崩溃,郁闷了好久,终于跟出来来了,记之,提醒自己今后一定规范编写,只要规范,绝对不会出问题