我被分配了重组Delphi单位的任务.哇. 10000行代码,无文档,吨复制和粘贴代码.
这是通过复制和粘贴可以重构的许多方法,无论如何我失去了所有这些线,我有界面部分,我可以“找到我的方式”,但一般来说,你建议如何处理这种任务?
谢谢.
解决方法
>获得Micheal Feathers的“有效工作代码”的副本.它具有各种技术,用于安全地重构代码,使其在测试框架下运行.示例主要是
Java和C,但应该很容易找出.
>安装第三方重构工具(或多个),例如Delphi的CodeRush(可悲的是不再开发),Castalia或ModelMaker代码浏览器. Delphi有一些内置的重构支持,但在我的经验中,它太有限了,往往会扼杀非常大的代码库.
>购买Simian的副本.它不直接支持Object Pascal,但它的纯文本解析器工作得很好.如果有足够的人要求对Object Pascal的支持,我肯定会添加它.我没有找到任何其他代码重复检测工具,如Simian一样.
>安装第三方重构工具(或多个),例如Delphi的CodeRush(可悲的是不再开发),Castalia或ModelMaker代码浏览器. Delphi有一些内置的重构支持,但在我的经验中,它太有限了,往往会扼杀非常大的代码库.
>购买Simian的副本.它不直接支持Object Pascal,但它的纯文本解析器工作得很好.如果有足够的人要求对Object Pascal的支持,我肯定会添加它.我没有找到任何其他代码重复检测工具,如Simian一样.
我也建议书签http://www.refactoring.com/catalog/和http://www.industriallogic.com/xp/refactoring/catalog.html.
获得Robert Code of Agile软件工艺手册的“Clean Code:敏捷软件工具手册”也不会受伤.“Bob叔叔”Martin等人很容易识别错误的代码.当你编写好的代码的时候很难知道.
谨慎的一点:重点是重构你需要工作的代码.它很容易启动兔子洞,并结束花费几个月重构与手头任务没有立即相关的代码.
并保存自己一些麻烦.不要尝试“修复”代码并重新构造它.重新确定,然后修复错误或添加新的功能.请记住,重构是在不改变外部行为的情况下进行修改.
抵制尝试完全重写的冲动.我学会了很难的方式,满足用户要求的肮脏的代码比干净的代码更好.肮脏的代码总是可以逐步改进,直到它为之感到自豪.