• 重构的迷思


    写下一行代码的时候,就知道总有一天它会被重构掉,也许是你自己也许是别人。


    围场打猎

    古时候的每到春天或秋天,皇帝就要进行一次春狩或秋狩活动,该活动就在皇家的围场中进行。

    重构就像一次狩猎活动,程序员总会定期的去做,在代码腐烂之前。

    但别忘了,重构之前先选定你的围场,划定你的边界,系统膨胀到一定程度后进行完全的重构几乎不可能了,划定围场是该活动成功的前提。

    一切进入围场的代码就是猎物,活捉亦或杀无赦。


    扫雷

    划定围场后,开始进入前还有一项重要的工作:了解其危险性,做好准备。

    也许你只打算在围场中打打野兔、小鹿之类的轻松活动,却不知道里面隐藏着老虎、豹子。

    进入狩猎活动前,搞清楚围场中的雷区,小心的监视中那里的老虎、豹子,在你做好足够的准备前不要轻易招惹它们。


    高地战

    战争中,谁占有高地,谁就取得了战场的主动权。

    重构是一场战争,围场中的代码就是战场,高地就是关键代码路径上的核心业务代码。

    重构从取得所有制高点开始,才能迅速把握战场的全部情况。


    种下向日葵

    《植物大战僵尸》游戏中最重要的植物是什么?向日葵,没有它就没法种其他植物来抵御僵尸来袭。

    软件开发中,一不小心程序员就会制造大量的僵尸代码或者是让代码变成僵尸的 T 病毒。

    向日葵就是项目代码的规范,抵御 T 病毒的疫苗,让你重构的代码都在向日葵制造的太阳的照耀下吧。


    大战僵尸

    代码库里四散着很多小段的,甚至大片大片的被注释掉的代码,这就是僵尸代码。

    优秀的程序员知道,代码就是债务,越少越好,僵尸代码也是代码,它们增加维护的难度、降低信噪比、甚至引发歧义。



    最后

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

    但有时候既有代码实在太混乱,重构它还不如重新写一个来的简单。

    作出这种决定很困难,一直以来我也没有找到判断重构还是重写的清晰分界线。

    因此只要划入围场的代码,既可重构(活捉驯化)也可重写(杀之),只在当时当刻的当机立断吧。

  • 相关阅读:
    设计模式六大原则之单例模式
    SpringCloud Alibaba Seata---处理分布式事务
    SpringCloud Alibaba Sentinel---实现熔断与限流
    Linux下Nacos集群与持久化配置
    SpringCloud Alibaba Nacos---服务注册与配置中心
    SpringCloud(H版)学习---分布式请求链路追踪
    Markdown主要语法及使用
    project read error(项目读取错误)
    详解C3P0(数据库连接池)
    Java一般命名规范
  • 原文地址:https://www.cnblogs.com/hehe520/p/6147644.html
Copyright © 2020-2023  润新知