樋口です
----- Original Message -----
From: "Hiroyuki Shimada" <shimaden@....jp>
To: <extremeprogramming-jp@....jp>
Sent: Friday, October 19, 2001 9:47 PM
Subject: [XP-jp:02684] Re: リファクタリングブラウザについて
> すみません、すごく基本的なことなんですけれど、リファクタリングブラウザっ
> てなんでしょうか。
たとえば、メソッドの名前を変えたい時、
単純に一括置換すると、実はその名前が無関係のところで使われていたりして
トラブルを起したりします。
だからといって、手作業で置換作業すると、
grep して、それが本当にそのメソッドを指しているのか目で確認しながら
地道に置換することになってしまいます。
リファクタリングブラウザは、
そのメソッドをどこから呼んでいるのかを調査してくれて、
一発置換が出来るようになったりします。
また、関数内の特定の範囲を、別関数として追い出す時に、
その範囲とその外の間とで受け渡す必要がある局所変数を調べて、
自動的に引数として渡してくれるようになります。
f()
{
int x;
int y;
for (;;)
{
/* ここから */
x = ...;
y = ...;
/* ここまで追い出す */
h(x, y);
}
}
結果
f()
{
int x;
int y;
for (;;)
{
f2(&x, &y);
h(x, y);
}
}
f2(int *px, *py)
{
*px = ...;
*py = ...;
}
てな感じですか。
とこういうことを(半)自動的にやってくれるのがリファクタリングブラウザです。
このへんの話は「リファクタリング:プログラミングの体質改善テクニック」に載っ
ています。
というわけで、私も C++ のリファクタリングブラウザがあったらほしいです。
リファクタリングブラウザと呼べるレベルではないと思いますが、
ソースブラウザとしては、Cygwin の SourceNavigator がお気に入りです。
VC++ のソースブラウザも悪くはないんですけど、
コンパイルできないとブラウズできなかったりして泣けてきます。
// 樋口 勝也
// bugbear@....nu