BT

2.0リリースでクラウドへと向かうEclipse Code Recommender

| 作者: Alex Blewitt フォローする 4 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2013年11月10日. 推定読書時間: 4 分 |

原文(投稿日:2013/10/31)へのリンク

本日のEclipseConでCodetrailsがCode Recommenders 2.0のリリースを発表した。Code Recommendersプロジェクトは,ドキュメントの不十分な,あるいは不慣れなAPIで作業するサポート開発者たちの意見から生まれたものだ。Eclipse Junoリリーストレインの一部として公開されたCode Recommenders 1.0では,コードの重複パターン解析の結果を開発者に通知することで,この機能を実現していた。

最初のリリースには,コアJavaライブラリとさまざまなEclipseオープンソースライブラリに関する知識の集大成が組み込まれていた。この知識ベースによって例えば,現在のコンテキストにもっとも関連の深いメソッドを提示するような,インテリジェントなコード補完が可能になっている。

 swtTextWidget = new Text(container, SWT.NONE); swtTextWidget.<control+space> 
  • setLayoutData(Object layoutData) : void - Control - 80%
  • setText(String string) : void - Control - 53%
  • addModifyListener(ModifyListener listener) : void - Text - 38%

サポート対象のAPI(上の例ではSWT)を参照するたびに,Code Recommendersは知識ベースを少しずつ,Eclipseサーバから自動的にダウンロードする。

Code Recommenders 1.0のコードベースはEclipseのUIコードと強く結び付いていたため,Eclipse IDE以外での利用は非常に難しくなっていた。この問題は今回の2.0リリースには当てはまらない。リコメンデーションエンジンはリファクタされ,Eclipse特有のUIコンポーネントから切り離されているからだ。インテグレーションの方法はまだEclipseのUIに近いようだが,ツール自体はヘッドレスモードでも動作するようになっている。アノテート付きのJavaDocドキュメントを生成することも可能だ。

protected Control createDialogArea(Composite parent)

このダイアログの上部分(ボタンバーより上)を生成して,そのコンテントを返す。

関連項目: createDialogAreaをオーバーライドするサブクラスは,以下のメソッドもオーバーライドする場合が多い:

  • configureShell(Shell): 63%
  • okPressed(): 51%

 

2.0で実現されたもうひとつのイノベーションは,コード補完を起動したメソッドの名称までも考慮した,コンテキスト対応の新たなリコメンダだ。例えばセッタやcreateメソッド内では,SWTのTextクラスのdispose()メソッドよりもgetText()メソッドがコールされる可能性が高い。dispose()メソッドの中ならば,もっともコールされやすいTextのメソッドはdispose()だ。このように外側のメソッドコンテキストから最初の単語(lowerCamelCaseを使用して)をピックすることで,レコメンデーションの精度を向上させることができる。

スニペットの共有手段を提供するインキュベーティングプロジェクトのSnipmatchによって,スニペットはひとつの中央場所で共有される。これは2.0リリースには含まれない機能だが,動作は比較的安定しているので,将来のリリースには取り込まれるだろう。

2.0リリースをベースに,Codetrails Connectがクラウドサポートを追加している。これによって,ライブラリ解析結果をプライベートサーバを使って他のチームメンバと共有したり,公開サーバを使ってコミュニティ全体と共有することが可能になる。後者の場合,どのコード補完イベント(ドロップダウンリストからコード補完が選択されたとき送信されるイベント)を送信するかは,ホワイトリストパッケージのリストをベースとして詳細に指定することができる。デフォルトリストには,コミュニティでイベントを共有する対象として,さまざまなオープンソースライブラリが挙げられている:

  • android*
  • com.google.*
  • java.*
  • javafx.*
  • javax.*
  • org.apache.*
  • org.eclipse.*
  • org.jboss.*
  • org.w3c.*
  • org.xml.*

最終的にはCodetrails Connectプラグインの使用によって,プライベートあるいは内部のコードパスがコミュニティサーバに公開されないようにする必要がある。あるいはまた,Codetrailsでホストするプライベートサーバを立てて,すべてのコードをチームメンバが共有するようなことも当然可能だ。

ControlFlow Minerという独立ライブラリを使用することで,コンパイル済の既存コードベースを解析して,自分たちでサーバを運用しようという組織向けのリコメンデーションを提供することも可能だ。Code Trailsでも,プライベートサーバの使用を可能にするいくつかのプランを用意している。将来的には他の言語がCodetrails Connectプラグインでサポートされる可能性もある。

Code Recommenders 2.0はEclipse Marketplaceおよびアップデートサイトからインストールできる。Codetrails ConnectあるいはControlFlowサービスに関する詳細は,CodetrailsのWebサイトを参照してほしい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT