SourceMateは、Flash と Flex 開発者向けのコンパニオン ツールで、コード生成、リファクタリング、コードテンプレート、メタデータ タグなどのサポートを追加している。 リリース1.1 では、改善点がいくつかあり、例えば、SourceMateが生成するコードのカスタマイズやスタックトレースの改善がある。
InfoQは、この最新のリリースについて、ElementRiverの Chris Gross氏にQ&Aを行った。
InfoQ: SourceMate の主要なフィーチャとすでに Flash Builderを使っている開発者に、どのような価値をもたらすのかを教えてください。
Chris: SourceMateは、Flash Builder に対して非常にたくさんの時間節約となるフィーチャを追加してます。例えば、コード スニペット、コード生成、リファクタリングなどです。Flash Builder は、優れたIDEですが、Eclipse や IntelliJのような 市場にある素晴らしいJava IDEに慣れている開発者にとっては、いくつかのフィーチャが落ちています。例えば、開発者が期待するのは、より進化した getter/setterのフィーチャ、自分のコード中にTODO コメントタグが使えること、コード テンプレート(時々スニペットと言われます)そして、絶対に必要なリファクタリング オプションなどです。 SourceMateは、これら全てともっと多くの機能を Flash Builderに完全に統合しました。
コード生成は、最も人気のあるフィーチャのひとつです。我々の "Override/Implement Methods"(メソッドのオーバーライド/実装)フィーチャによって、開発者は、サブクラスのツリーをブラウズして、そのサブクラスから自分がオーバーライドしたいメソッドを選ぶことができます。それから SourceMateは、それらのファイルに関数シグニチャを挿入します。我々の"Generate Getter/Setters" (getter/setter生成)フィーチャは、Flash Builder 4 にある標準のフィーチャに似ていますが、もっとたくさんのオプションがあります。特に、一度にgetterとsetterの複数セットが生成できますし、高度な[Bindable(バインド可能)] サポートもあります。
リファクタリングは、もう1つの魅力的なフィーチャです。 SourceMateは、多くの高度なリファクタリング フィーチャを提供しています。例えば、Extract Variable(変数抽出), Extract Constant(定数抽出), Extract Method(メソッド抽出), Extract Interface(インターフェース抽出), Convert Local to Field(ローカルからフィールドへの変換), Change Method Signature(メソッド シグニチャの変更)そして trace()メソッドの無効化です。ユーザは、trace()メソッドの無効化のフィーチャには、大変喜ぶと思います、一発でコード中の全てのtrace() への呼び出しを削除(あるいは、コメントアウト)できます。
これらは、 SourceMateの全フィーチャの一部分です。我々のwebサイトには、スクリーンショットのギャラりやたくさんのデモ ビデオがあります (http://www.elementriver.com/sourcemate/screenshots-demos/)。それらを見て、あるいは、直ちにサイトから SourceMateをダウンドードして、30日の無料体験を初めてください(http://www.elementriver.com/sourcemate/download-installation/)。
InfoQ: 最新バージョンで新しいのは何ですか?
Chris: SourceMate v1.1は、 SourceMate が生成するコードのカスタマイズに焦点を合わせました。1.1で、ユーザは、生成されたメソッド シグニチャのコード スタイルをカスタマイズできます(例えば、同じ行か次の行にオープン ブラケットが書けます)。我々は、また時間があったのでいくつかの新しいフィーチャを加えました。1.1で、アプリケーションがFlash Builder のコンソールにスタックトレースを出力する時に、 SourceMateは、ファイル/行番号の参照で、スタックトレースをスキャンでき、それらをハイパーリンクにすることができます。ハイパーリンクの上でクリックすると、直接問題のコードに飛ぶことができます。バージョン1.1は、また、エンタープライズ アプリケーション用の、我々のオープンソースFlexフレームワークである、 Potomacと統合します。
InfoQ: SourceMate とPotomacフレームワーク間の統合についてもう少し話していただけませんか。 SourceMate は、他のフレームワークとどの程度うまく協調できるのですか?
Chris: SourceMate と Potomac間の統合は、メタデータ コード ヒントによって行われています。 SourceMateの多くのフィーチャの1つが[Embed]や[Bindable]のような標準のFlexのメタデータ タグ用のコード ヒント(すなわちコンテンツ アシスト)を提供していることです。今や、たくさんのFlexフレームワークが、昨今のJavaフレームワークがアノテーションを使っているように、カスタムなメタデータ タグを使っています。我々の Potomacフレームワークもメタデータ タグを多用しています。実際、Potomacは、全拡張ポイント メカニズムに、メタデータ タグを使っています。開発者は、自分自身の拡張ポイントを定義でき、それが順に、新しいカスタムなメタデータ タグを作成します。 SourceMate 1.1で、我々は、これらすべてのメタデータ タグ、それらのアトリビュート、そして値に対して、コード ヒントを提供しています。
メタデータ コード ヒントは、 Potomacフレームワークに限られては、いません。 SourceMateには、オプションがあって、ユーザは、メタデータ タグの設定ファイル(バーション1.0でさえ)をインポートしたり、エクスポートしたりできます。 Swiz や Spring Actionscriptのような一流のFlexフレームワークのほとんどは、カスタムな SourceMateのメタデータ設定ファイルを自分たちのユーザに提供しています。ユーザがそのファイルを SourceMateに一度インポートすれば、それらのフレームワークのタグの上でも、メタデータ コード ヒント(と検証)が使えます。
InfoQ: バーション1.1の次には、他にどのようなフィーチャが SourceMateに欲しいですか?またFlashプラットフォームに欲しいのは、どのようなフィーチャですか?
Chris: 我々は、バグの早い修正、i18nに向けて文字列の外部ファイル化などを含んで、 SourceMate 2.0用のたくさんのフィーチャを評価しています。そしてもちろん、リファクタリング用オプションのリストが成長し続けるのを期待してください。
我々は、明らかにFlashプラットフォームの大フアンであり、最近リリースされた Flash Player 10.1によって、Flashがもっと多くの開発者の手に入りやすくなった、と信じています。私は、引き続きパフォーマンス(実行時のパフォーマンスとコンパイラのパフォーマンスの両方)に注目したいです。またFlexがモバイル プラットフォーム(特に Android)をサポートするのを見たくてウズウズしています。 Androidフォンで走るFlexアプリケーションの将来性に、ワクワクしています。
SourceMateについての更なる情報とFlexエコシステムの他の話題については、我々のアーティクル: "Virtual Panel: State of the Art in Enterprise Flex Framework"を参照。