重构:改善既有代码的设计(英文版)
1推荐 收藏
4.4K阅读
图灵程序设计丛书

重构:改善既有代码的设计(英文版)

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

收藏本书能做什么?

有情况的时候会收到通知,比如电子书发布等。

纸质书
¥69.00

出版信息

  • 书  名重构:改善既有代码的设计(英文版)
  • 系列书名图灵程序设计丛书
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2010-11-01
  • 书  号978-7-115-23914-3
  • 定  价69.00 元
  • 页  数452
  • 开  本16开
  • 出版状态终止销售
  • 原书名Refactoring: Improving the Design of Existing Code
  • 原书号978-0-201-48567-7

同系列书

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

  • 机器学习实战

    Peter Harrington   李锐   李鹏   曲亚东   王斌   译

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或...

本书特色

软件开发的不朽经典
生动阐述重构原理和具体做法
普通程序员进阶到编程高手必须修炼的秘笈

目录

Chapter 1 Refactoring, a First Example 1
The Starting Point   1
The First Step in Refactoring   7
Decomposing and Redistributing the Statement Method   8
Replacing the Conditional Logic on Price Code with Polymorphism   34
Final Thoughts   52
Chapter 2: Principles in Refactoring    53
Defining Refactoring   53
Why Should You Refactor  55
When Should You Refactor    57
What Do I Tell My Manager   60
Problems with Refactoring   62
Refactoring and Design   66
Refactoring and Performance  69
Where Did Refactoring Come From   71
Chapter 3: Bad Smells in Code (by Kent Beck and Martin Fowler)   75
Duplicated Code  76
Long Method  76
Large Class    78
Long Parameter List  78
Divergent Change  79
Shotgun Surgery   80
Feature Envy   80
Data Clumps   81
Primitive Obsession   81
Switch Statements 82
Parallel Inheritance Hierarchies  83
Lazy Class   83
Speculative Generality   83
Temporary Field   84
Message Chains   84
Middle Man  85
Inappropriate Intimacy   85
Alternative Classes with Different Interfaces 85
Incomplete Library Class86
Data Class   86
Refused Bequest    87
Comments   87
Chapter 4: Building Tests  89
The Value of Self-testing Code   89
The JUnit Testing Framework   91
Adding More Tests   97
Chapter 5: Toward a Catalog of Refactorings
Format of the Refactorings~103
Finding References 105
How Mature Are These Refactorings  106
Chapter 6: Composing Methods   109
Extract Method   110
Inline Method   117
Inline Temp   119
Replace Temp with Query   120
Introduce Explaining Variable  124
Split Temporary Variable  128
Remove Assignments to Parameters  131
Replace Method with Method Object  135
Substitute Algorithm   139
Chapter 7: Moving Features Between Objects  141
Move Method   142
Move Field  146
Extract Class  149
Inline Class   154
Hide Delegate   157
Remove Middle Man  160
Introduce Foreign Method  162
Introduce Local Extension   164
Chapter 8: Organizing Data  169
Self Encapsulate Field  171
Replace Data Value with Object   175
Change Value to Reference   179
Change Reference to Value   183
Replace Array with Object  186
Duplicate Observed Data  189
Change Unidirectional Association to Bidirectional  197
Change Bidirectional Association to Unidirectional  200
Replace Magic Number with Symbolic Constant   204
Encapsulate Field   206
Encapsulate Collection   208
Replace Record with Data Class 217
Replace Type Code with Class    218
Replace Type Code with Subclasses  223
Replace Type Code with State/Strategy   227
Replace Subclass with Fields   232
Chapter 9: Simplifying Conditional Expressions      .237
Decompose Conditional  238
Consolidate Conditional Expression    240
Consolidate Duplicate Conditional Fragments   243
Remove Control Flag    245
Replace Nested Conditional with Guard Clauses   250
Replace Conditional with Polymorphism   255
Introduce Null Object  260
Introduce Assertion   267
Chapter 10: Making Method Calls Simpler    271
Rename Method    273
Add Parameter   275
Remove Parameter 277
Separate Query from Modifier   279
Parameterize Method   283
Replace Parameter with Explicit Methods   285
Preserve Whole Object    288
Replace Parameter with Method   292
Introduce Parameter Object    295
Remove Setting Method  300
Hide Method   303
Replace Constructor with Factory Method     304
Encapsulate Downcast   308
Replace Error Code with Exception   310
Replace Exception with Test   315
Chapter 11: Dealing with Generalization319
Pull Up Field    320
Pull Up Method   322
Pull Up Constructor Body    325
Push Down Method   328
Push Down Field   329
Extract Subclass   330
Extract Superclass  336
Extract Interface   341
Collapse Hierarchy    344
Form Template Method  345
Replace Inheritance with Delegation   352
Replace Delegation with Inheritance   355
Chapter 12: Big Refactorings (by Kent Beck and Martin Fowler)  359
Tease Apart Inheritance  362
Convert Procedural Design to Objects   368
Separate Domain from Presentation   370
Extract Hierarchy    375
Chapter 13: Refactoring, Reuse, and Reality (by William Opdyke)   379
A Reality Check     380
Why Are Developers Reluctant to Refactor
Their Programs     381
A Reality Check (Revisited)    394
Resources and References for Refactoring   394
Implications Regarding Software Reuse and Technology Transfer     395
A Final Note397
References                   397
Chapter 14: Refactoring Tools (by Don Roberts and John Brant) 401
Refactoring with a Tool   401
Technical Criteria for a Refactoring Tool   403
Practical Criteria for a Refactoring Tool   405
Wrap Up   407
Chapter 15: Putting It All Together (by Kent Beck)   409
References    413
List of Soundbites     417
Index  419

  • 各大网上商城都买不到此书了,出版社是否有再次出版的计划?
    小洋葱  发表于 2015-07-06 10:34:03
    推荐
    • 应该今年就可以重新上市。

      傅志红  发表于 2015-07-06 12:31:35
    • 多谢,上市后定会购买的。

      小洋葱  发表于 2015-07-06 22:48:37
  • 首先开门见山的讲解了一个完整的重构的例子,让你体验到了重构的震撼,让你对重构产生饥渴,迫使你有种恨不得一口气把正本书读完。
    接下来,Fowler 一一的将重构的方法,实际上就是他的一些工作经验和总结,让你读了以后觉得相见恨晚的产生共鸣,Fowler一步步的举例子,并告诉前后要注意什么,这本书不是你读一遍就能掌握其中的重构技巧,需要你长期的进行知识反刍,相信一段读一次,每次你都有不同的感触,让你一次次的都能有新的收获,建议将此书作为案头工具书,像新华字典一样常翻阅。
    前几次读的时候你可能关注的是书中的技巧,而后面你就会开始感叹书中的想法。慢慢的你会领会大师级程序员的想法,构思和事情的解决方法。慢慢的你也会发现自己已经不是以前的自己。这个时候你就会发现自己比较以前已经上升了一个台阶。所以这本书也是晋级必读之书。
    chinaztq  发表于 2011-04-20 12:23:41
    推荐