zoukankan      html  css  js  c++  java
  • 图书-软件工程:《重构:改善既有代码的设计》

    ylbtech-图书-软件工程:《重构:改善既有代码的设计》

    《重构(第2版)》由人民邮电出版社于2019年5月出版,作者是马丁·福勒(Martin Fowler),本书是经典著作《重构》出版20年后的更新版。

    1.返回顶部
    1、
    书    名:重构(第2版)
    又    名:重构 改善既有代码的设计(第2版)
    作    者:[美]马丁·福勒(Martin Fowler)
    原版名称:Refactoring:Improving the Design of Existing Code(2nd Edition)
    译    者:熊节,林从羽
    ISBN:978-7-115-50865-2
    页    数:421
    定    价:99.00
    出版社:人民邮电出版社
    出版时间:2019年5月
    装    帧:平装
    开    本:16开

    目录

    2、
    2.返回顶部
    1、

    主要内容

    重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。20多年前,正是《重构:改善既有代码的设计》第1版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。如今,Martin Fowler 的《重构:改善既有代码的设计》一书已经成为全球有经验的程序员手中的利器,既可用来改善既有代码的设计、提升软件的可维护性,又可用于使既有代码更易理解、焕发出新的活力。 
    第2版在第1版的基础上做了全面修订,反映了编程领域业已发生的许多变化。第2版中介绍的重构列表更加内聚,并用JavaScript 语言重写了代码范例。此外,第2版中还新增了与函数式编程相关的重构范例,旨在教会读者如何在没有类的环境下开展重构。新版沿袭了第1版的结构,依次解释什么是重构,为什么要重构,如何通过“坏味道”识别出需要重构的代码,以及如何在实践中成功实施重构(无论用的是什么编程语言)。
    本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,书中所蕴涵的思想和精华,值得反复咀嚼,而且往往能够常读常新。
     

    作者介绍

    马丁·福勒(Martin Fowler)
    世界软件开发大师,ThoughtWorks的首席科学家,他在重构、面向对象分析设计、模式、XP和UML等领域都有突出贡献,经典著作包括《重构》《分析模式》《领域特定语言》等。
     

    目录

    第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搬移函数 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
    2、
    3.返回顶部
     
    4.返回顶部
     
    5.返回顶部
    1、
    2、
     
    6.返回顶部
     
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Neko's loop HDU-6444(网络赛1007)
    Parameters
    SETLOCAL
    RD / RMDIR Command
    devenv 命令用法
    Cannot determine the location of the VS Common Tools folder.
    'DEVENV' is not recognized as an internal or external command,
    How to change Visual Studio default environment setting
    error signing assembly unknown error
    What is the Xcopy Command?:
  • 原文地址:https://www.cnblogs.com/storebook/p/13043742.html
Copyright © 2011-2022 走看看