C++ C++;:清理代码

C++ C++;:清理代码,c++,C++,我打算重新开始一个几个月前暂停的项目 总体设计不是那么糟糕,不需要从头开始重写,但是有很多事情我不喜欢,这主要是因为我匆忙写了(没有注释和魔法数字到处…),因为我使用C++工具的方式在我的时候被改变了(我会说)。(我倾向于使用更多的引用、智能指针、STL、boost等等) 我认为现在是清理代码的最佳时机:这样做将帮助我重新进入代码 关于清理,我有两个问题: 为了改进匆忙编写的代码,需要解决哪些问题? 删除幻数、添加注释、将太大的函数划分为较小的函数,以及用更智能的对象替换原始指针/数组 有没

我打算重新开始一个几个月前暂停的项目

总体设计不是那么糟糕,不需要从头开始重写,但是有很多事情我不喜欢,这主要是因为我匆忙写了(没有注释和魔法数字到处…),因为我使用C++工具的方式在我的时候被改变了(我会说)。(我倾向于使用更多的引用、智能指针、STL、boost等等)

我认为现在是清理代码的最佳时机:这样做将帮助我重新进入代码


关于清理,我有两个问题:

  • 为了改进匆忙编写的代码,需要解决哪些问题?
    删除幻数、添加注释、将太大的函数划分为较小的函数,以及用更智能的对象替换原始指针/数组

  • 有没有什么工具可以帮我发现这些(和其他)脏东西


CPD,复制粘贴检测器:


我用它来寻找重复的代码,这样我就可以清理它。这有助于遵循枯燥的原则-不要重复你自己。

这取决于你使用的IDE。一些VS SKU提供了Style和FxCop之类的优秀工具。Eclipse和Idea也有类似的插件。

我建议将修复幻数作为你的第一步。修复它们应该使您在复制代码的地方或函数可能合适的地方更加明显。

您所说的一切听起来并不那么糟糕

试着为你的代码编写单元测试,然后你就会看到它有多糟糕。如果你接近100%的覆盖率,你的代码就处于非常好的状态。 我会开始担心它是否低于50-60%,是否很难增加新的东西


为此,您需要一个工具来测量单元测试所涵盖的代码。

“是否有任何工具可以帮助我发现这些(和其他)不干净的部分?”是的:眼球。@James或奴役“雇佣”人为您做这件事[免费]。如果你还没有,也可以查看这个。如果它启动了,你可以发布你的有问题的代码供审查,并以这种方式获得反馈:P