1、永远不要使用全局替换来处理要修改的内容。
要小心翼翼的检查每个修改掉的地方,思考这些修改在这个地方有没有引入什么新的副作用,特别是那些代码不完全是你写的,或者离上次修改的时间已经不短了。那些看起来似乎完全一样的代码,面对一次修正,隐含的含义可能完全不一样。不小心处理,你一定会痛恨自己为啥要做这些修改。
2、无论如何,修改之前首先要确定自己手头有这个模块的测试代码,路径覆盖得越完全越好,实在不行,有一点也比没有好。
重构和乱改代码的最主要区别就在于,每次的改进都是可控的。在没有单元测试的情况下重构,就像在流沙上建筑高台,除了劳民伤财,唯一的用途就是提高了配置管理员在你心目中的地位。
3、小步快跑,修改一点,测试一点,不要想着把自己的代码全部修改完以后再来测试。
20分钟内把一个人变成胖子的唯一办法就是把他打成胖子,你也老大不小了,所以不要相信那些一口吃成胖子的神话。相信我,修改大部分代码再测试给你带来的麻烦绝对不比重新开发这个模块的麻烦小,因为这样的修改已经不可控了。
4、用一个好的版本控制工具。
至少,即使你改得焦头烂额,不可收拾的时候,你可以把重前的工作拣回来。虽然那些家伙不够好看,但是那些家伙起码能跑起来不是么:)
5、不要太相信自己脑子总是清醒,特别是在连续加班的情况下。把要做的东西记下来,做完以后不仅要自己检查,还要跑一遍测试程序。
程序员不用加班就像中东永久和平一样是个神话,程序员不疲劳就像中国队拿世界杯一样仅仅是个梦想。所以别为难自己的脑子,多使用身边的工具,君子役物嘛 ^0^
6、不要等到把一切都想明白了再动手重构,因为那和重新写一次没有什么差别
从最容易想到的角度开始,一点一点的整你的代码,然后测试它,接着继续前进。你会发现代码的混乱程度一点一点的减少,清晰的逻辑结构慢慢的浮现出来,然后你又会发现可以改进的地方。于是,渐渐的,一份精致的代码就出现了。说实在的,软件开发是一件工匠活,好的工艺品都是打磨出来的。
7、想到了马上就动手,要是不想打断你现在的思路,把它记下来。
要不,很可能,过几天你就会把它忘记的。“前两天我有过一个好构思,是什么来着?可惜我忘记了”。
欢迎光临作者的个人主页:http://www.mrspace.net/