代码重构之路的艰辛

  我承认,这个标题很沉重。我有幸使用了一个开源的项目作为小范围内的二次开发应用。这个项目其实是挺大的,开源代码仅是其中一部分,在二次开发中我对源代码作了一些改进,都是一些必要的改进以及发现的BUG;这些BUG在后续的开源参与者一一修复。我想说的是重构过程中的一些小问题。

一、如果你决定重构代码,特别是别人的代码,最好对整个项目有一个清晰的认识,最好记得哪些代码运行在哪些文件中的哪一行里(基于没有BUG即良好的思想,你可不重构)。我很反感以下的代码。

boo _flag=false;
boo _isexists=false;
string _username;

上面的代码不用多说,大家也可以看出问题,当然这些简单的重构我相信初学者都可以改好,其实这是习惯问题,有时候是:习惯决定行为,行为决定思想,思想决定高度。至少在这里我看不出什么高度可言了。

二、尽量不要去动那些核心的代码。这里所指的核心是:搞不好程序就当掉了。如果你真要没事想重构以显示你的能耐,我劝你还是考虑一下“没有BUG不要修改”的原则。我上一次对一个程序的核心代码(绝对是核心)修改前,花了一个星期去阅读所有文档和代码,虽然之前我已对所有文档和代码看过无数次。

三、如果真要进行重构,那么最好让所有项目组成员都知道。不要以为你重构一点点功能而已,不影响什么东西;如果你不认同这一条,那么请回忆一下中国移动的广告:沟通无限。相信我,作为项目组的一员,他们是非常有必要和需要知道你正在动他们的奶酪的。

四、记得作代码签入注释。我对那种不写注释的人,有想痛扁他一顿的冲动。

五、让他人介入。重构前或者重构后,让你的同事或者上级审阅你的代码,如果你写得很好,也是一种享受;当然,如果你写得很烂,也算得到了指点。

六、重构前,试试测试驱动开发。我从来不在真正的项目中直接切入重构,因为我不能预料到我的切入是否正确,那种感觉就像是,让我不穿衣服的站在街上的那么的窘迫。也许你想找环境的借口;不,我告诉你,环境都是人搭建的,搭建环境是相当不费事的,至少我还没有怎么费事。

七、学会宽容和理解。重构之人火气通常都比较大,当然,你也许可以采用让被重构者请你喝杯咖啡来缓解紧张的气氛。

八、没事不要老打重构的主意。

  最后一条我觉得是非常重要的一条,如果你没事老重构的主意,那只能说明一点,你写的很烂;或者你认为其它人写得都没有你高明。相信我,这绝对是没事找抽型的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

干货 | 那些你不知道的爬虫反爬虫套路

崔广宇,携程酒店研发部开发经理,与去哪儿艺龙的反爬虫同事是好基友。携程技术中心“非著名”段子手。

1331
来自专栏PPV课数据科学社区

爬虫需谨慎!!!那些你不知道的爬虫反爬虫套路

作者简介 崔广宇,携程酒店研发部开发经理,与去哪儿艺龙的反爬虫同事是好基友。携程技术中心“非著名”段子手。 本文来自携程技术中心(ID:ctriptech) 前...

3284
来自专栏我是极客人

0.5M安装包,最小浏览器颠覆你的IT观

这是我使用一点浏览器发自内心的感叹(回头想一想,我觉得这句话可以投稿给一点浏览器做绝佳广告词了)。

3972
来自专栏大数据和云计算技术

超融合方案分析系列(7)思科超融合方案分析

引言 作者是国内研究超融合相当早的专家,有非常强的理论基础和实战经验。上几篇分析文章,对nutanix/VSAN/深信服/H3C/EMC等厂家的深入分析,引起了...

4926
来自专栏程序你好

软件开发中的10大不为人知的真相

882
来自专栏Java进阶干货

工作2年半跳槽面试阿里,成功拿到offer,凭什么?

2015年刚毕业的我,进入了一家小小的公司实习工作,在学校学了三年软件开发的我,还是想去寻找一份互联网行业的工作,这样更能学以致用发挥自己的特长。一直到18年三...

2791
来自专栏杨建荣的学习笔记

Oracle和MySQL DBA的进阶之路

今天去数据技术嘉年华做了一个主题分享,会场由肖鹏大师主持,我的印象中MySQL中圈子里彦伟和肖鹏真能侃,什么都能聊。下午的场子比预想的人要多,场子里都坐不...

3486
来自专栏钱塘大数据

关于爬虫与反爬虫,这些“套路”你必须知道

爬虫与反爬虫,是一个很不阳光的行业。这里说的不阳光,有两个含义。 第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚至...

4694
来自专栏腾讯技术工程官方号的专栏

大牛书单 | 数据库专题好书分享

导语:读书是一生的功课,技术人通过读书实现自我提升,学习优秀技术沉淀。TEG读书会本期特邀腾讯金融云专家工程师李海翔、TEG计费平台部专家工程师雷海林、MyS...

2674
来自专栏BestSDK

4个核心要点揭开爬虫真面目,小心被反爬!

爬虫与反爬虫,是一个很不阳光的行业。   这里说的不阳光,有两个含义。   第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会...

4435

扫码关注云+社区