• 交易规则(重要)

【官方旗舰店】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计经典教程书籍
本站优惠价
49.50
5.0折 原价:¥99.00
  • 销量
  • 卖家
  • 33+
  • 人民邮电出版社官方旗舰店

服务由"人民邮电出版社官方旗舰店"发货,并提供售后服务。

    担保交易,安全保证,有问题不解决可申请退款。购买前请询问清楚卖家,以卖家承诺为准! 自动发货商品,随时可以购买,付款后在订单详情下载,零等待。 不同会员等级尊享不同购买折扣。
天猫优惠券

天猫优惠券

已缴纳保证金

该商家已加入保障计划

【官方旗舰店】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计经典教程书籍

【官方旗舰店】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计经典教程书籍

【官方旗舰店】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计经典教程书籍

【官方旗舰店】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计经典教程书籍

【官方旗舰店】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计经典教程书籍

【官方旗舰店】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计经典教程书籍

目录

 

第 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爱好者,纯键盘工作者。 【官方旗舰店】重构 改善既有代码的设计 第2二版平装版阐述重构原理和具体做法 软件工程代码整洁之道计算机程序设计经典教程书籍
关联推荐
软件开发大师的经典作品新版,普通程序员进阶到编程高手必须修炼的秘笈
  • 商品评价
  • 匿名
  • 纸张质量,印刷都挺好的
  • 2023-05-20
好评
  • 匿名
  • 书店服务不错。但书是印刷质量堪忧,纸张薄,代码字体过小,不清晰,观看吃力。建议出版社倾听下意见
  • 2023-05-20
好评
  • 匿名
  • 包装情况:包装有破损
  • 2023-05-20
好评
  • 匿名
  • 代码高亮部分印刷得很淡很淡
  • 2023-05-20
好评
  • 匿名
  • 很好
  • 2023-05-20
好评
  • 匿名
  • 挺ok
  • 2023-05-20
好评
  • 匿名
  • 挺好的,印刷不错
  • 2023-05-20
好评
  • 匿名
  • 正版图书,质量很好
  • 2023-05-20
好评
  • 匿名
  • 书非常好
  • 2023-05-20
好评
  • 匿名
  • 拜读一下经典
  • 2023-05-20
好评
  • 匿名
  • 经典了
  • 2023-05-20
好评
  • 匿名
  • 就很棒。
  • 2023-05-20
好评
  • 匿名
  • 买了好几本了,好评好评
  • 2023-05-20
好评
  • 匿名
  • 店家发货很快 书质量很好 学习中
  • 2023-05-20
好评
  • 匿名
  • 2023-05-20
好评
  • 匿名
  • 纸质不错,读一段时间再来追评
  • 2023-05-20
好评
  • 匿名
  • 包装情况:不错 内容生动性:不错 内容阅读感受:不错 色彩情况:不错 印刷质量:不错 纸张品质:不错 确实不错
  • 2023-05-20
好评
  • 匿名
  • 书还可以 就是不知道为啥四角都有折痕
  • 2023-05-20
好评
  • 匿名
  • 正好最近想重构项目,随便看看
  • 2023-05-20
好评
  • 匿名
  • 书本作为同事的奖励,对技术有提高
  • 2023-05-20
好评
  • 匿名
  • 代码相关部分印刷不清晰,疑似盗版
  • 2023-05-20
好评
  • 交易规则


  • 发货方式


  • 自动:在特色服务中标有自动发货的商品,拍下后,源码类 软件类 商品会在订单详情页显示来自卖家的商品下载链接,点卡类 商品会在订单详情直接显示卡号密码。

    手动:未标有自动发货的的商品,付款后,商品卖家会收到平台的手机短信、邮件提醒,卖家会尽快为您发货,如卖家长时间未发货,买家也可通过订单上的QQ或电话主动联系卖家。


  • 退款说明


  • 1、源码类:商品详情(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、功能不能正常使用等)!有演示站时,与实际源码不一致的(但描述中有"不保证完全一样、可能有少许偏差"类似显著公告的除外);

  • 2、营销推广:未达到卖家描述标准的;

    3、点卡软件所售点卡软件无法使用的;

  • 3、发货:手动发货商品,在卖家未发货前就申请了退款的;

    4、服务:卖家不提供承诺的售后服务的;(双方提前有商定和描述中有显著声明的除外)

    5、其他:如商品或服务有质量方面的硬性常规问题的。未符合详情及卖家承诺的。

  • 注:符合上述任一情况的,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法修改描述!


  • 注意事项


  • 1、在付款前,双方在QQ上所商定的内容,也是纠纷评判依据(商定与商品描述冲突时,以商定为准);

    2、源码商品,同时有网站演示与商品详情图片演示,且网站演示与商品详情图片演示不一致的,默认按商品详情图片演示作为纠纷评判依据(卖家有特别声明或有额外商定的除外);

  • 3、点卡软件商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);

  • 4、营销推广商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);

    5、在有"正当退款原因和依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;

    6、虽然交易产生纠纷的几率很小,卖家也肯定会给买家最完善的服务!但请买卖双方尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于送码网快速介入处理。


  • 送码声明


  • 1、送码网作为第三方中介平台,依据双方交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;

  • 2、非平台线上交易的项目,出现任何后果均与送码网无关;无论卖家以何理由要求线下交易的(如:要求买家支付宝转账付款的,微信转账付款的等),请联系管理举报,本平台将清退卖家处理。


热门推荐
浏览记录