2011-01-12 42 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

使用私有變量,重命名變量和顯而易見的用途,糾正編譯器錯誤。