2011-01-12 6 views
7

Tak więc pracowałem nad stosunkowo dużym projektem samemu i zdałem sobie sprawę, że niektóre z nazw zmiennych wcześniej były ... mniej niż idealne.Najbezpieczniejszy sposób na zmianę nazw zmiennych w projekcie

Ale jak łatwo zmienić nazwy zmiennych w projekcie? Czy istnieje narzędzie, które może przejść przez katalog projektu, przeanalizować wszystkie pliki, a następnie zamienić nazwy zmiennych na żądane? Musi być wystarczająco inteligentny, aby zrozumieć język, jaki sobie wyobrażam.

Myślałem o użyciu narzędzi regexp (sed/awk na Linux?), Aby zastąpić nazwę zmiennej, ale wiele razy moja konkretna zmienna była również częścią ciągów znaków.

Istnieje również problem dotyczący zmieniania elementów w przestrzeni nazw w języku C++, ponieważ w moim projekcie znajdują się dwie klasy, które mają tę samą nazwę, ale znajdują się w różnych obszarach nazw.

Pamiętam, że studio graficzne było w stanie to zrobić, ale jaki jest najbezpieczniejszy i najbardziej elegancki sposób na to w Linuksie?

Odpowiedz

5

Najbezpieczniejsze (nie sposób zautomatyzowany) sposób:

  1. Upewnij wszystkie swoje prace testów jednostkowych.
  2. Zapisz wszystko pod kontrolą źródła.
  3. Globalnie wymień var na XXXvarXXX (poważnie)
    a. A może tylko pliki, które Twoim zdaniem wymagają edycji.
  4. Spróbuj i skompiluj. Wszystko, czego nie można skompilować, można łatwo cofnąć, wystarczy usunąć XXX.
  5. Podczas kompilacji uruchom testy jednostki.
  6. Gdy testy jednostkowe działają. Zrób globalną zamianę XXXvarXXX na nową nazwę.
  7. Upewnij się, że testy urządzenia nadal działają.
  8. Zapisz wszystko pod kontrolą źródła.

Język tylko w połowie w policzek. :-)

+3

Nie gryźć. –

6

To się nazywa refaktoryzacja, ale nie pamiętam, czy jest to świetny sposób, aby to zrobić w C++ - myślę, że może to był Eclipse C++; może warto rzucić okiem.

+2

Eclipse rzeczywiście go ma i działa cudownie. – Dawson

+0

@Toolbox: Fajnie, dzięki za weryfikację! +1 :) – Mehrdad

+2

Eclipse CDT ma to. QtCreator ma to. Visual Studio to ma. Visual Assist X for Visual Studio czyni go jeszcze lepszym. Vim go ma. Masz punkt. –

1

Pamiętam, że visual stuio był w stanie to zrobić, ale jaki jest najbezpieczniejszy i najbardziej elegancki sposób na to w Linuksie?

Możesz zrobić praktycznie to, co robiłeś w studiu graficznym w Eclipse za pomocą narzędzi do re-factoring, które są dostępne dla systemu Linux.

0

Wiem, że C# i Visual Studio ma świetny zmieniacz, ale działa przez wszystkie dokumenty nie jestem pewien. Wiem, kiedy zmieniasz zmienną w C#, która pojawia się obok tekstu zmiennej. Change All

Może jednak utknąć w jedynej opcji. Zmień zmienne i zobacz, gdzie kompilator nie działa. Jednak to nie jest idealne, ale może być jedynym wyborem

+0

To naprawdę daleko od ideału. Możesz trafić w miejsca, które w milczeniu wybrały inną zmienną ze względu na zasięg. Przynajmniej uruchomię grep i spróbuję je rozdzielić. –

+0

Tak, możesz zrobić skrypt powłoki. Na pewno powiedziałem, że jego "nie" jest idealne –

0

użyj zmiennych prywatnych, zmień nazwę zmiennej i oczywiste zastosowania, popraw błędy kompilatora.