• 1 了解一下重构


    重构是啥

    对软件内部结构的调整,在不改变软件行为的前提下,提高可理解性,降低修改成本。

    重构的目的:更易于理解、修改,对其外部行为几乎不造成影响。

    两种不同行为:添加新功能与重构

    添加新功能和重构,两者不能同时进行。添加新功能时只管添加新功能、重构时只管重构。

    为何重构

    简单来说重构可以帮助我们更好的改进程序的内部结构,使代码更容易理解,可以帮助修改bug,可以提高编程速度

    何时重构

    重构是因为你想做别的什么事,而重构能帮你把那些事做好。

    三次法则

    第一次做某件事只管去做;第二次做类似的事产生反感;第三次你就该重构了。所谓事不过三。

    添加新功能时重构

    这是最常见的重构时机。重构的直接原因是为了帮助我理解需要修改的代码。

    另一个动力:代码的设计无法帮助添加所需的特性。

    修补错误时重构

    这种时候重构多半是为了可读性。

    复审代码时重构

    复审的好处:很多公司会做一些复审代码的活动,复审代码有很多好处:传播知识、帮助更多人理解系统更多内容。

    重构对复审的好处:重构可以帮助更好的复审别人的代码。阅读代码并理解——>提出建议——>想到点子后,考虑是否能实现——>若能实现,开始做。这样可以获得更高层次的认识。

    复审团队要精练:原作者+复审者,复审者提出建议,然后两人共同判断修改是否可通过重构轻松实现,若可以,则进行。

    重构可以帮助更好的复审别人的代码

    重构的难题

    当学习一种新技术时,很难知道它的局限性在哪里(它不适用的场合)。重构也如此,不知道它的局限性,我们应该获得它所提供的有利之处,也要监控它所带来的问题。

    修改接口
    要注意修改已发布接口(比如公开接口),若修改,不仅要考虑自己使用的情况,还要考虑其他调用者。

    该如何重构那些必须修改的“已发布接口”?

    • 必须同时维护新旧两个接口,直到所有用户都有时间对这个变化做出反应。尽量这么做,让旧接口调用新接口(不要复制)。还可以采用deprecation(表示“不建议使用''的意思)让调用者注意到它
    • 尽量不要发布接口,请修改代码所有权政策,使重构更顺畅。让其他程序员可以进入自己的程序库,修改他们自己管理的那部分,比维护接口会更容易。请修改代码所有权政策,使重构更顺畅。

    何时不该重构

    有时候既有代码实在太混乱,还不如重新写一个来得容易。这种情况没有什么准则来判断。

    • 代码根本不能正常运行,这时候只能重写一个
    • 一个折中的办法是,将“大块头软件”重构为封装良好的小型组件,然后逐一对组件进行重构或重建(自己选)。
    • 项目接近最后期限,避免重构。

    重构与设计

    重构和设计彼此互补。设计是编程之初需要做的,而重构是编程之后要做的,两者都很重要。重构可以降低设计阶段的难度,减轻设计压力。

  • 相关阅读:
    回旋矩阵
    Python学习手记——了解Python
    My first Qt program
    10种使你的C程序更加高效的方法
    GCC指令
    缓冲思想
    Python学习手记——Whetting your appetite
    分割视图
    MSN Messenger 中的漏洞可能导致信息泄露 (838512)
    ASP.NET Popup Control
  • 原文地址:https://www.cnblogs.com/sean-zeng/p/12190638.html
Copyright © 2020-2023  润新知