zoukankan      html  css  js  c++  java
  • 1 了解一下重构

    重构是啥

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

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

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

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

    为何重构

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

    何时重构

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

    三次法则

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

    添加新功能时重构

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

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

    修补错误时重构

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

    复审代码时重构

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

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

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

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

    重构的难题

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

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

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

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

    何时不该重构

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

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

    重构与设计

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

  • 相关阅读:
    资源放送丨《Oracle存储过程中的性能瓶颈点》PPT&视频
    警示:一个update语句引起大量gc等待和业务卡顿
    周末直播丨细致入微
    Java VS Python:哪个未来发展更好?
    【LeetCode】279.完全平方数(四种方法,不怕不会!开拓思维)
    事件驱动
    Android初级教程以动画的形式弹出窗体
    Android简易实战教程--第五话《开发一键锁屏应用》
    迎战大数据-Oracle篇
    Android初级教程获取手机位置信息GPS与动态获取最佳方式
  • 原文地址:https://www.cnblogs.com/sean-zeng/p/12190638.html
Copyright © 2011-2022 走看看