zoukankan      html  css  js  c++  java
  • 代码重构之路的艰辛

    此文属转载,原文链接:http://www.cnblogs.com/viter/archive/2010/11/03/1868377.html

    正文如下:

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

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

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

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

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

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

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

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

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

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


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

    作者:老米

    出处:http://www.cnblogs.com/viter/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    查看端口占用情况lsof,并关闭对应进程kill
    运行django项目出现Invalid HTTP_HOST header: '192.168.1.111:8000'. You may need to add '192.168.1.111' to ALLOWED_HOSTS
    ElasticSearch中如何让query should等同于filter should
    elasticsearch must和should组合查询
    Lua中table和json互转
    Git命令_git cherry pick
    Python17_Linux系统中安装Python3、virtualenv、virtualenvwrapper
    Linux书单推荐
    Linux32_配置vncserver
    Linux31_文件传输相关命令
  • 原文地址:https://www.cnblogs.com/zgynhqf/p/1872294.html
Copyright © 2011-2022 走看看