美文网首页代码重构读书程序员
《重构》-第二章 重构原则 摘录

《重构》-第二章 重构原则 摘录

作者: 海之方 | 来源:发表于2017-01-04 09:26 被阅读207次

最近在重新读《重构》这本书,关于第二章 重构原则,我摘录出一些要点,和大家分享一下。


重构:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

使用重构技术开发软件时,你把自己的时间分配给两种截然不同的行为:添加新功能,以及重构。添加新功能时,你不应该修改既有代码,只管添加新功能。通过测试,你可衡量自己的工作进度。重构时你就不能再添加功能,只管改进程序结构。此时你不应该添加任何测试(除非发现有先前遗漏的东西),只在绝对必要(用以处理接口变化)时才修改测试。

如果消除重复代码,你就可以确定所有事物和行为在代码中只表述一次,这正是优秀设计的根本。

编程模式的核心就是"准确的说出我所要的"。

Kent Beck经常形容自己的一句话:“我不是个伟大的程序员,我只是个有着一些优秀习惯的好程序员”。

良好的设计是快速开发的根本——事实上,拥有良好设计才可能做到快速开发。

最常见的重构时机就是我想给软件添加新特性的时候。重构的另一个动力是:代码的设计无法帮助我轻松添加我所需要的特性。


是什么让程序如此难以相与?眼下我能想起下述四个原因,它们是:

难以阅读的程序,难以修改

逻辑重复的程序,难以修改

添加新行为时需要修改已有代码的程序,难以修改

带复杂条件逻辑的程序,难以修改

因此,我希望程序:

(1)容易阅读

(2)所有逻辑都只在唯一地点指定

(3)新的改动不会危及现有行为

(4)尽可能简单表达条件逻辑


重写(而非重构)的一个清楚讯号就是:现有代码根本不能正常运行。

记住,重构之前,代码必须能够在大部分情况下正常动作。

重构肩负一项特殊使命:它和设计彼此互补。

你仍然做预先设计,但是不必一定找出正确的解决方案。此刻你只需要得到一个足够合理的解决方案就够了。


教训:哪怕你完全了解系统,也请实际度量它的性能,不要臆测。臆测会让你学到一些东西,但十有八九你是错的。

除了对性能有严格要求的实时系统,其他任何情况下“编写快速软件”的秘密就是:首先写出可调的软件,然后调整它以求获得足够速度。

在性能优化阶段,你首先应该用一个度量工具来最后的监控程序的运行,让它告诉你程序中哪些地方大量消耗时间和空间。

相关文章

  • 《重构》-第二章 重构原则 摘录

    最近在重新读《重构》这本书,关于第二章 重构原则,我摘录出一些要点,和大家分享一下。 重构:对软件内部结构的一种调...

  • 重构:读书笔记

    重构读书笔记 第一章 重构,第一个案例 第二章 重构原则 2.1 何为重构 重构(名词):对软件内部结构的一种调整...

  • 重构-重构原则

    0. 本章内容导图 1. 什么是重构 重构:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其...

  • DDG2.0项目复盘

    一、增加“海外自提”商品 重构yybsegment控件重构原则,脱离业务需求。YYBSegmentModelite...

  • 《重构:改善既有代码的设计》读书笔记(二)

    在前一篇文章里面,我们分析了代码重构原则包括重构定义、重构时机以及中间层的扩展等内容,不过其中重构时机的解读,更多...

  • 重构原则

  • 重构原则

    重构原则 重构:对软件内部结构的一种调整,目的是在不改变软件客观察行为的前提下,提高其可理解性,降低修改成本。 何...

  • 重构(二) -- 重构的原则

    重构的定义 名词:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低修改成本 动...

  • 代码重构专题(转载)

    代码重构(一):函数重构规则代码重构(二):类重构规则代码重构(三):数据重构规则代码重构(四):条件表达式重构规...

  • 重构

    [TOC] 重构原则 重构定义 重构对软件内部结构的一种调整,目的是不改变软件可观察行为的前提下,提高其可理解性,...

网友评论

  • Enjay:要是能结合设计模式讲重构就更好! :blush: 写的不错!
    海之方:@Enjay 这些是我从《重构》这本书里摘录的。我理解的设计模式是针对特定情况一组重构步骤的集合,有点像拼魔方,只要抓住了本质,一切都是套路。

本文标题:《重构》-第二章 重构原则 摘录

本文链接:https://www.haomeiwen.com/subject/vklovttx.html