zoukankan      html  css  js  c++  java
  • 《重构_改善既有代码的设计》读书笔记

        重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

    一、重构的好处
    1.能改进软件设计使软件更容易被理解。
    2.能帮你找到bug。
    3.提高软件的开发速度。

    二、什么时候进行重构
        三次法则:事不过三,三则重构.意思是说,一件事情,第一次只管去做,第二次做类似的事情会产生反感,但无论如何还是做了,第三次再做类似的事情,你就应该重构.  
    1.在添加新功能时进行重构。 
    2.在修改bug时进行重构。 
    3.在代码复审时进行重构。
    注:现有的程序无法运行,此时应该是重写程序,而不是重构程序、到了最后的交付期限。

    三、为什么重构有用
    1.难以修改的程序具有以下特征:难以阅读、逻辑重复、添加新行为时需要修改现有的代码、 带复杂条件逻辑。   
    2.好的程序应该是:容易阅读、所有逻辑都只在唯一地点指定、新的改动不会危及现有的行为、尽可能简单的表达条件逻辑。

    四、间接层和重构
    1.间接层的存在的价值:允许逻辑共享;分开解释意图和实现;将变化加以隔离;将条件逻辑加以编码,但是过多的间接层会导致代码的层次太深,使代码难以阅读.因些要权衡加入间接层的

    利弊。

    五、重构的难题
    1.关系数据库与面向对象编程的问题:在对象模型和数据库模型之间插入一个分隔层,这就可以隔离两个模型各自的变化.升级某一模型时只需同时升级上述的分隔层即可.这样的分隔层会增

    加系统复杂度.但是能增加灵活度。   
    2.修改接口的问题——修改已发布的接口,因为已发布的接口会供外部人员(其它公司)使用,因此,修改接口会导致引用接口的其它程序不修改程序就无法运行.修改接口的最好的办法是增

    加一个新的接口,让旧接口调用新接口.这样原来的程序就不用修改了.对于接口的另一个建议是尽量不要发布接口。

    六、重构与设计
    1.重构与设计是互补的,程序应该是先设计,而在开始编码后,设计上的不足可以用重构来弥补.设计应该是适度的设计,而不必过度的设计.如果能很容易的通过重构来适应需求的变化,那么

    就不必过度的设计,当需求改变时再重构代码。

    七、提高性能的三种方法
    1.时间预算法——在设计时就对程序花费的时间进行预算,通常用于性能要求极高的实时系统.普通的企业应用程序一般对性能要求不高.只要不太慢就可以了。   
    2.持续关注法——要求程序员在任何时间都要设法保持系统的高性能.这个方法有个缺陷,就是大部分的程序90%的优化工作都是白费劲,这样会浪费大量的时间。   
    3.良好的分解方式——这个方式是在开发程序阶段不对性能投以任何关注,直到进入性能优化阶段,再分析程序中性能差的程序,然后对这些程序进分解,查出性能差的程序,进行优化.

  • 相关阅读:
    js中Unicode转义序列
    css相对定位和绝对定位
    C#默认以管理员身份运行程序
    asp.net判断是否代理
    JS上传图片选择后立即预览
    asp.net判断是刷新还是提交
    查询QQ好友的IP地址(二)
    查询QQ好友的IP地址(一)
    Hadoop综合大作业+补交平时作业
    熟悉常用的Hbase操作
  • 原文地址:https://www.cnblogs.com/Nadim/p/2764329.html
Copyright © 2011-2022 走看看