Index: [Article Count Order] [Thread]

Date:  Sat, 17 Feb 2001 19:48:50 +0900
From:  Yutaka Kamite <y-kamite@....jp>
Subject:  [XP-jp:01607] Crossing Refactoring's Rubicon (長文)
To:  XPML-jp <extremeprogramming-jp@....jp>
Message-Id:  <3A8E571262.2A84Y-KAMITE@....jp>
X-Mail-Count: 01607

上手です。
FowlerさんのHPにリファクタリングに関するとても 面白い Articleが出ていたの
で概要を紹介します。
#リファクタリングMLへ投稿したものから、英語をとりました。

オリジナル:
http://www.martinfowler.com/articles/refactoringRubicon.html
(C) Copyright Martin Fowler, all rights reserved 

-------------------------------------------------------------------
Crossing Refactoring's Rubicon
リファクタリングのルビコン河を渡る

#ローマの将軍(?)が、国禁を破ってルビコン河を渡り軍をローマに進めた故
#事です。(たぶん)。「決定的なブレークスルーが達成された」とファウラー
#さんは言っているようです。

2001 1月に2つの Javaツールがリファクタリングのルビコン河を渡った。
Javaにおけるリファクタリングは、今、マトモナツールのサポートを受ける。

私はご存知の通り、リファクタリングの大ファンだ。・・・しかし手作業での
リファクタリングは、森を斧で切るようなものだ。

もちろんリファクタリングツールが知られていない訳じゃない。
John Brant and Don Roberts が the Smalltalk Refactoring Browserを私の本の
前に出している。これはリファクタリングをスピーディに、快適にする。・・でも、
問題はSmalltalkのツールだってことだ。Smalltalkを使っている人は少ない。
私にしても、 Refactoring Browserは使ってない、ここ2,3年はJavaだ。

ルビコン河へのアプローチ
Approaching The Rubicon

1999年に幾つかのツールメーカが私にアプローチしてきた。・・・・このリスト
は下記にある。

・・・これらは勇気付けられる兆候ではあったが、興奮させる物では無い。超え
なければいけない障壁がある。


ルビコン河
The Rubicon

 John and Donが本の中で述べているように、リファクタリングを十分に行うには、
プログラムの parseツリーを分析し、操作する必要がある。

この能力を必要とするリファクタリングは Extract Method だ。・・一時変数を
見つけ、それをどう扱うかを決定しなければならない。・・

それが、私が、Extract Method をキーリファクタリングとか考える理由だ。

ルビコン河を渡る
Crossing the Rubicon

ルビコン河を渡る、最初のまじめな取り組みがされていると考えたのは、1999年
半ばに Instantiations が接触してきた時だ。Instantiationsは OO界ではもっと
も高名な会社のひとつだ。Portland Smalltalk communityから生まれ、Digitalk
の大きな部門を為し、Smalltalkで多数の重要な業績を挙げている。彼らはそれか
らJavaに向かい、Jove - native compiler を含む幾つかの製品を開発した。

そこで、Instantiationsがリファクタリングツール(今 jFactorと呼ばれる)の
開発を始めたと言った時、彼らが良い仕事をするための基本的な理解を持ってい
ることを知っていたので、私は興奮した。彼らが「最初にExtract Methodにタッ
クルする」というのには、さらに勇気づけられた。

しかし彼らが最初の渡河者では無い。栄誉は Marian Vitte によって開発された
X-ref: emacsのプラグインだ。でも、これは率直に言って私にはあまり影響しない。
私はJavaに emacs を使っていなし。また、x-ref の extraction は制限があり、
また小規模用(?Marian's outfit is a small operation)だった。しかし、そ
れはそのレベルに到達しており(?it got there)いつもemacsを使う人なら、見
る価値はある。


もし  X-ref がルビコン河を渡る手こぎの船なら(粗削り:簡易的な意味?)、
Instantiationsは型を押さえて(?in style:正式なやりかたで) 河を渡った。
彼らのツール jFactorは Extract Method を含むりファクタリングのナイスな
リストを持ち、非常にプロフェッショナルが外見を持ったツールだ。jFactor は
IBM's Visual Age forJava のプラグインとして利用出来る。今や、extract method
は、コードをセレクトし、メニュー項目を選び、名前をタイプするだけになった。
リファクタリングはここに至って、正式なやり方(in style)になった。

jFactor は、私に January 2001 がリファクタリングの横断幕(a banner)を掲
げた月だ、と思わせるのに十分だったが、心地良い驚きがやってきた。しばらく
して、Javaに対する IDE を持ち、Visual Age風の 検索機能が好ましい IntelliJ 
が登場したのだ。各種の リネーム機能が追加され、このビルの6階のマイナーな
お好みになり、Visual Age の出番は無くなった。そして一月に驚くべきメールが
来た。彼らの IDEAツールは、いまや Extract Method をサポートする。

さらに先へ
Going Further

二月の疾風は、リファクタリングツールがソフト工学に大きな衝撃を与えると確
信できたことで、私にはエキサイティングだった。実際私は、John and Don's 
Refactoring Browserは、開発ツールの開発においては、IDE以来の最も大きな進歩
(step forwards)だと呼んでいる。ルビコン河の Extract Method は渡られた、
多くのリファクタリング(ツール)が続くだろう。それらのツールを是非試し、
リファクタリング機能をチェックして欲しい。

ツールの情報は、 refactoring.com で保守する。. 

(以上)