2011-01-12 153 views
7

所以我一直在自己研究一个相对较大的项目,并且我已经认识到早些时候的一些变量名称并不理想。在项目中更改变量名称的最安全方法

但是,如何轻松地更改项目中的变量名?有没有这样的工具可以通过项目目录,解析所有文件,然后将变量名称替换为所需的文件?它必须足够聪明才能理解我想象的语言。

我正在考虑使用regexp(sed/awk on linux?)工具来替换变量名,但有很多时候我的特定变量也被包含在字符串中。

还有一个关于在C++命名空间上更改东西的问题,因为实际上我的项目中有两个类共享相同的名称,但在不同的命名空间中。

我记得visual studio能够做到这一点,但在linux上做到这一点最安全和最优雅的方式是什么?

回答

5

最安全的(非自动化的方式)的方式:

  1. 确保您所有的单元测试工作。
  2. 将所有内容保存到源代码管理中。
  3. 全局替换var与XXXvarXXX(严重)
    a。或者可能只是您认为需要编辑的文件。
  4. 尝试并编译。所有不编译的内容很容易撤消,只需删除XXX即可。
  5. 编译运行单元测试。
  6. 当单元测试工作。将XXXvarXXX全局替换为新名称。
  7. 确保单元测试仍然有效
  8. 将所有内容保存在源代码管理中。

舌头只有一半在脸颊。 :-)

6

这就是所谓的重构,但我不记得是否有一种很好的方式来做它在C + + - 我想也许Eclipse C++有它;可能值得一看。

+2

Eclipse确实拥有它,并且它的功能非常出色。 – Dawson 2011-01-12 05:37:19

+0

@Toolbox:很酷,感谢您的验证! +1 :) – Mehrdad 2011-01-12 05:38:52

+2

Eclipse CDT有它。 QtCreator有它。 Visual Studio有它。 Visual Studio的Visual Assist X使它更好。 Vim拥有它。你明白了。 – 2011-01-12 06:24:44

1

我记得视觉stuio能够做到这一点,但什么是最安全和最优雅的方式来做到这一点在linux上?

在Eclipse中,您可以使用可用于Linux的重新分解工具来完成以前在Visual Studio中所做的工作。

0

我知道C#和visual studio有一个很大的变量转换器,但它是否可以在所有文件中工作,我不知道。我知道当你改变一个C#中的变量时,它会弹出变量文本旁边。 Change All

但是,您可能会陷入唯一的选择。更改变量并查看编译器出错的位置。但是它的不理想,但可能是你唯一的选择

0

使用私有变量,重命名变量和显而易见的用途,纠正编译器错误。