您好,欢迎光临有路网!
重构 改善既有代码的设计
QQ咨询:
有路璐璐:

重构 改善既有代码的设计

  • 作者:(美)Martin Fowler著 熊节译
  • 出版社:人民邮电出版社
  • ISBN:9787115221704
  • 出版日期:2010年04月01日
  • 页数:428
  • 定价:¥69.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书清晰地揭示了重构的过程,解释了重构的原理和*佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。 本书适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物。
    文章节选
    第1章 重构,**个案例
    我该从何说起呢?按照传统做法,一开始介绍某个东西时,首先应该大致讲讲它的历史、主要原理等等。可是每当有人在会场上介绍这些东西,总是诱发我的瞌睡虫。我的思绪开始游荡,我的眼神开始迷离,直到主讲人秀出实例,我才能够提起精神。实例之所以可以拯救我于太虚之中,因为它让我看见事情在真正进行。谈原理,很容易流于泛泛,又很难说明如何实际应用。给出一个实例,就可以帮助我把事情认识清楚。
    所以我决定从一个实例说起。在此过程中我将告诉你很多重构的道理,并且让你对重构过程有一点感觉。然后我才能向你展开通常的原理介绍。
    但是,面对这个介绍性实例,我遇到了一个大问题。如果我选择一个大型程序,那么对程序自身的描述和对整个重构过程的描述就太复杂了,任何读者都不忍卒读(我试了一下,哪怕稍微复杂一点的例子都会超过100页)。如果我选择一个容易理解的小程序,又恐怕看不出重构的价值。
    和任何立志要介绍“应用于真实世界中的有用技术”的人一样,我陷入了一个十分典型的两难困境。我只能带引你看看如何在一个我所选择的小程序中进行重构,然而坦白说,那个程序的规模根本不值得我们那么做。但是如果我给你看的代码是大系统的一部分,重构技术很快就变得重要起来。所以请你一边观赏这个小例子,一边想象它身处于一个大得多的系统。
    ……
    目录
    第1章 重构,**个案例 1
    1.1 起点 1
    1.2 重构的**步 7
    1.3 分解并重组statement() 8
    1.4 运用多态取代与价格相关的条件逻辑 34
    1.5 结语 52
    第2章 重构原则 53
    2.1 何谓重构 53
    2.2 为何重构 55
    2.3 何时重构 57
    2.4 怎么对经理说 60
    2.5 重构的难题 62
    2.6 重构与设计 66
    2.7 重构与性能 69
    2.8 重构起源何处 71
    第3章 代码的坏味道 75
    3.1 duplicated code(重复代码) 76
    3.2 long method(过长函数) 76
    3.3 large class(过大的类) 78
    3.4 long parameter list(过长参数列) 78
    .3.5 divergent change(发散式变化) 79
    3.6 shotgun surgery(霰弹式修改) 80
    3.7 feature envy(依恋情结) 80
    3.8 data clumps(数据泥团) 81
    3.9 primitive obsession(基本类型偏执) 81
    3.10 switch statements(switch惊悚现身) 82
    3.11 parallel inheritancehierarchies(平行继承体系) 83
    3.12 lazy class(冗赘类) 83
    3.13 speculative generality(夸夸其谈未来性) 83
    3.14 temporary field(令人迷惑的暂时字段) 84
    3.15 message chains(过度耦合的消息链) 84
    3.16 middle man(中间人) 85
    3.17 inappropriate intimacy(狎昵关系) 85
    3.18 alternative classes with different interfaces(异曲同工的类) 85
    3.19 incomplete library class(不**的库类) 86
    3.20 data class(纯稚的数据类) 86
    3.21 refused bequest(被拒绝的遗赠) 87
    3

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外