トップスポーツチームの監督に教わる秘訣
この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。
作者 Werner Schuster, 翻訳者 編集部 投稿日 2008年2月24日 午後12時13分
JRubyはJavaのGUIライブラリの使用を可能にする。 そのことによって、すでにJRuby GUI APIへの多くのさまざまなアプローチ(参考記事)がもたらされている。Glimmer(source)は新しいライブラリで、SWTツールキットを使用する。Glimmerの背後にあった当初の目的は、堅固なプラットフォーム非依存のUIテクノロジーに依存することで、Rubyを使用したデスクトップアプリ ケーション開発を促進することであった。Eclipse SWTはたまたまその役目を果たしたので、RubyのJRuby実装で再利用された。 GlimmerのAPIは、以下の原理を鉄則とし設計された。JFaceは、便利なコンポーネントの層であり、基本SWTウィジェット上などにビルドされる。Glimmerはまた、以下についてもサポートしている。その他、APIはRubyで使用可能なあらゆる言語技術を利用するよう設計されている。それにより、デスクトップアプリケーション開発が容易になることが 期待される。ビルダースタイルの構文は、たまたまこういった技術の1つであるので、デベロッパがHTMLを使用してWebユーザインターフェイスを作成す るのと同様の方法で、デスクトップユーザインターフェイスを作成することを可能にするよう使用された。視覚的にマップするコードを、一度レンダリングされ たユーザインターフェイスの様子に記述することでおこなわれる。 とはいえ、Glimmerの目的がおこなうのは、ビルダースタイルの構文の提供にとどまらない。たとえば、Glimmerはデータバインディングサポート および高性能のカスタマイズ可能なデフォルトを搭載している。
- 簡潔かつDRY
- タスク完了に最小の情報のみを要求
- 構成に関わる決まりごと
- 既存のSWTデベロッパにとって、できる限り予測可能
Glimmerは、構文だけでなくアーキテクチャーにおいても最小主義である。拡張が非常に簡単で、キーワードごとに構文に役立つハードコードをデベロッ パが必要としないような設計であった。実際これが、Glimmerが製品を買ったその日から使えるようにサポートする理由である。
現在Glimmerは、JFaceウィジェットで動作している。事実、(親、スタイル)コンストラクターがある限りは、あらゆるカスタム SWT/JFaceウィジェットをサポートする。 Glimmerは、ビューやエディターのようなRCP UIコンポーネントをビルドするために使用可能である。Glimmer向けにデータバインディングサポートの開発を始めたとき、確かにJFace Data-Bindingフレームワークの再使用を検討した。しかしながら、最新のAPIは静的な型付きメソッドの呼び出しを必要とし、それがRubyの 動的な性質とうまくかみ合わないのである。そこでゼロからのRubyでのデータバインディングサポート開発はより単純なようになった。Glimmerのデータバインディングアプローチについてさらに深く考えてみる(source)。
現在Glimmerには、高性能なデフォルトがありShell、CompositeおよびGroupのような複合ウィジェットのレイアウトをする。たとえばCompositeを宣言する場合、自動的にレイアウトは共通使用のGridLayoutにデフォルトする。それでも、APIのコンシューマーは必要に応じてデフォルトを変更することができる。Glimmerの既存の機能および今後の予定について尋ねると、Andy氏は以下のように回答した。
現在、Glimmerは以下をサポートしている。GlimmerはEclipseプロジェクトとして提案されている(source)。Andy氏は、その理由を以下のように説明している。近い将来、GlimmerはTree、ComboおよびListのような他のウィジェット向けにデータバインディングサポートを提供し、SWTやJFaceのその他のウィジェット向けに高性能なデフォルトを提供する予定である。
- Shell、Composite、Group、Text、Button、SpinnerおよびLabelのようなごく一般的に使用されているウィジェットに予め定義された高性能のデフォルトで、SWTやJFaceウィジェットをレンダリングする
- テキスト、矢印ボタン、チェックボックスボタン、ラジオボタンおよびテーブルのデータバインディング
- 新たに提供されたキーワードにコマンドハンドラーを記述することで、構文を拡張する機能
以下のような今後の計画がある。
- RCP開発を容易化する考えの研究
- SWTがAjaxウィジェットのサポートを開始する場合に備えた、AjaxコンポーネントのサポートでRailsを補強
Eclipseプロジェクトの作成背景にはインセンティブがあった。原文はこちらです:http://www.infoq.com/news/2008/02/glimmer-jruby-swtGUI DSLはRubyでのEclipse開発を簡易化する良い第一歩であるが、それは単に氷山の一角に過ぎないかもしれない。確かに今後の予定にはRCP開発 の簡易化に向けた研究が含まれるが、JRubyスクリプトからのEclipseプラグインの作成は実際、その内の1つである。 プラグイン環境における現在の問題分野について、まだじっくり考えてはいないけれど、Rubyの表現豊かな構文からプラスになる可能性を秘めた2つの分野 は、拡張ポイントの定義とプラグインの構成または統合である。
- Eclipseのコミュニティの支援を通して、Glimmerの堅固さとEclipseテクノロジーへの依存を改善する。
- 経験豊かなEclipseのデベロッパに公開し、フィードバックを得る。
- 幅広く宣伝し、認知され、支持を受ける。
InfoQ Japanはコンポーネントスクエアが運営しています
【無償】「Google Apps 企業向けソリューションセミナー」のご案内
12/5 CSQ会員限定技術情報交換会にてJCP議長が標準化について語る
この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。
マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
No comments
返信