现在的位置: 首页 > 综合 > 正文

重构的迷思

2018年03月30日 ⁄ 综合 ⁄ 共 806字 ⁄ 字号 评论关闭

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

围场打猎

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

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

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

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

扫雷

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

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

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

高地战

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

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

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

种下向日葵

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

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

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

大战僵尸

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

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

最后

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

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

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

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

【上篇】
【下篇】

抱歉!评论已关闭.