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

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

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

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

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

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

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

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

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

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

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

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

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

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

因此,我希望程序:

(1)容易阅读

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

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

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

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

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

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

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

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

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

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

    原文作者:海之方
    原文地址: https://www.jianshu.com/p/a4fe8fc47f6a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞