Linda Rising氏による「誰を信頼しますか?」
Agile2008の3日目、8/6(水)午前中の、Linda Risingによるセッションです。セッションの冒頭、Linda Risingはとてもゆったりとしたきれいな、わかりやすい英語で話し始めました。
作者 R.J. Lorimer, 翻訳者 八角研究所 投稿日 2008年3月10日 午後12時38分
2月6日にGWT-Ext 2.0(サイト・英語)がリリースされた。GWT-Extは、ドラッグアンドドロップ操作可能なツリー、ページング及びソート可能なグリッド、バリデーションフォーム、タブパネル等の様々なコントロールを提供しているGoogle Web Toolkit (GWT)(サイト・英語) のためのウィジェットライブラリである。GWT-Extで利用可能なコントロールはExtJSというJavascriptのウィジェットライブラリ(サイト・英語)が元になっている。GWT-Ext 2.0(source)はGWT 1.4(source)に最近リリースされたExtJS 2.0を統合したものだ。(ExtJS 2.0について詳細はInfoQのインタビュー記事「ExtJSのクリエータ、Jack Slocumが今回のリリース2.0について語る(参考記事・英語)」で読むことができる。)まず、Jack氏とExt 2.0の開発で素晴らしい仕事を行ったExtチームに賛辞を送りたい。GWT-Ext 2.0での多くの改良点はExt 2.0の機能強化とアーキテクチャの改良のおかげであるといってもいい。
今回のバージョンにおける最も大きなアーキテクチャ的な改良は、Componentモデルの統合とLayoutマネージメントの改良だ。すべてのウィジェットは一貫性のある階層構造となり、また、生成・レンダリング・破棄といったライフサイクルを持つ基底のComponentクラスのサブクラスとなっている。今回のバージョンは内部のComponentにのみ注意を払うContainerのレスポンシビリティと、割り当てられたLayoutManager によってハンドリングされるContainer内のComponentのレイアウトを分離させた構造となっている。これにより複雑なレイアウトを作成するのも容易になった。
また、GWT-Ext 2.0はBeanに適した扱いやすく、またGWT DesignerのようなUIビルダーと統合しやすいAPIを持つ。新しいすぐれた特徴として、グリッドのグルーピング、アコーディオン、プログレスバー、グリッドとツリー間のドラッグ・アンド・ドロップ等の機能があげられる。また、今回のリリースのハイライトの一つは、新しく改良された Showcaseデモがあることだ。 (http://www.gwt-ext.com/demo) 多くのグラフィカルなサンプルをそれらのソースと一緒に確認することができる。私はサンプルから学ぶことは非常に効果的であると強く信じており、このShowcaseデモはユーザの開発の助けとなることを望んでいる。
GWT-Ext 2.0のライセンスについても触れておきたい。FSFによると、GWTライブラリのコンテキストにおいてLGPLは、作者が明記しないかぎり事実上GPL として解釈されるということであった。私は、GWT-Extのライセンスページ (http://gwt-ext.com/license/) に明記し、それによりライセンス違反することなく、商用プロジェクトで GWT-Extを使用できるようにした。
今回のバージョンでは大幅にパフォーマンスが改善されたわけだが、それはExt 2.0のパフォーマンスが改善されたおかげである。Ext 2.0のサイトでどのような改良がなされたかを確認することができるが、GWT-Extに関係する重要なパフォーマンスの改善点についてここでいくつか挙げておこう。
- すべてのコンポーネント、ウィジェットは現在レイジーレンダリングをサポートしている。これはどういうことかというと、コンポーネントやウィジェットはいかなるオーバーヘッドもなくインスタンス化することができ、それらの描画処理はDOMに追加される必要のあるタイミングで遅れて実行される。これにより、特に大規模なアプリケーションにとっては、大幅なパフォーマンスの改善をもたらすことができる。
- 適切なメモリ管理を行うため、フレームワークがすべてのコンポーネントの生成から破棄されるまでのライフサイクルを管理する。フォームやグリッド(テーブル)は特に改善され、ユーザはこれらのウィジェットを扱う際にその恩恵を受けるができる。
- GWT-Ext 2.0では、ウィジェットの設定に分離された"config"クラスを使わなくてよい。Componentの属性を設定するためには、Component のsetterを単に呼び出せば良い。これはAPIを整理するだけではなく、コーディング量を減らすことにもつながる。
- 最後に、百聞は一見にしかず。何人かのユーザはすでに、GWT-Ext 2.0にアップデートすることで自分たちのアプリケーションがどれだけ反応がよく、素晴らしいものになるかコメントしている。そして、GWT-Ext 2.0のShowcaseデモのサンプルを実行させれば、パフォーマンスが改善されたことを実感できるはずだ。
レイアウトマネジメントAPIは変更されたが、ほとんどのユーザはこの変更を直観的で且つ複雑なレイアウトを素早く簡単に扱うことができる新しいAPIとして受け入れてくれている。分離されたconfigクラスはComponentの設定に必要はなく、Componentの setterを呼び出すことで設定を行うことができるようになった。アップグレードに際しては、数時間の単調な作業が必要となる問題があるにはあるが、これはそんなに頭を悩ませるような作業ではない。そして、ユーザはこの変更も再び受け入れてくれた。実際、Javabeanのアクセッサを分離された configクラスの代わりに使用するという変更は、GWT-Ext 0.9のユーザからのフィードバックに影響されたものだった。
今まで通りJavaのコンパイラを使用することができ、そしてコンパイラでコンパイルすることで非互換性がないこともわかっている。さらに、ユーザはアップグレードに関する質問をGWT-Extフォーラムで投稿することができる。アップグレードに要する時間はユーザによって異なるが、あるユーザは1万行のコードを持つアプリケーションのアップグレードを2日間で済ませたという報告をしている。ユーザはAPIが安定して動作することを期待していい。
GWT 1.5はJavaとJavascriptの境界を越えたパフォーマンスの改善が行われており、その結果GWT-Extにも大幅なパフォーマンス改善をもたらすことになる。私はこの最適化されたGWT 1.5を利用するために、必要な(内部的な)変更を行っている。GWT-ExtはLGPL 3.0ライセンス(サイト・英語)で配布されている。コミュニティのフォーラム、Wikiドキュメント、ライブラリのダウンロード、そしてさらに詳細なライセンスに関する情報の確認はGWT-Extのホームページ(サイト・英語)で行うことができる。
私はまたwikiドキュメントやユーザの生産性を向上させるためのFAQやチュートリアルをまとめ上げようと考えている。現在行っている機能の強化に加えて、ユーザの開発の助けとなるようなことにも注力して行きたいと考えている。成功するライブラリはユーザサポートが充実しているものだ。
Agile2008の3日目、8/6(水)午前中の、Linda Risingによるセッションです。セッションの冒頭、Linda Risingはとてもゆったりとしたきれいな、わかりやすい英語で話し始めました。
Web2.0 に対する関心は、引き続き高いものがあります。 ただ、その関心は、新しいビジネス・モデルと、プログラミング・スタイルの二つの分野に集中しているように思えます。 今回のセミナーでは、Google のサービスの基礎である分散処理技術に注目します。
Jean Tabaka氏の書いた書籍では、会議などのチーム活動において、ファシリテーションの手法とツールについて具体的かつ実践的に説明しています。8/8(金)、Agile2008の最終日の朝のセッションでは、Jean Tabaka氏自身が本の内容をベースとしたセッションを行いました。
Agile2008の4日目となる8/6(木)の8:30から、Hubert Smits氏による「ゲーム・デザイン・ワークショップ」がおこなわれました。ゲームと言っても単なる遊びではなく、「フレームゲーム」と呼ばれる、グループでの情報収集や意志決定、また教育やトレーニングの教材として使えるいろいろなゲームです。
eBayが日々挑んでいる主要なアーキテクチャの勢力は、スケーラビリティです。これはアーキテクチャや設計に関するあらゆる意思決定を特徴づけたり、駆り立てたりします。
Bean Validationフレームワークの初期ドラフトに関する以前の記事に続き、InfoQは専門家グループが求めているコミュニティの関与と提案について理解を深めるため、Emmanuel Bernard氏と対談しました。
ポーカーは他のトピックにも広く適用できるような数少ない教えを私にもたらしてくれたと信じています。実際私はソフトウェアを開発すればするほど、これら二つの仕事は非常に似ていると言う確信の度合いを深めています。
恒例の「バーチャルパネルセッション」で、InfoQは新しいOASIS BPEL4People技術委員会の代表と対談をし、この作業が何故必要であるかについて彼らのフィードバックを得る機会を得ました。
No comments
返信