GWTPドキュメント 概要

GWTP(gwt-platform)のドキュメントである。もともとはこれもGoogleが開発を始めたのだが、現在はArcBeesという会社に移管されているようだ。

もともとのドキュメントは、https://dev.arcbees.com/gwtp/にある。

概要

GWTでウェブアプリを開発するのは一見簡単そうに見えるのだが、それに飛び込み、コーディングを始め、本当に効率的でスケーラブルまアプリを構築することは、はるかに難しいことがわかる。スケーラブルなアプリのデザインを初めから行う確実な方法としては、GWTのベストな機能を活用する実証済のアーキテクチャに基づくことだ。

GWTP(我々はグーティーピーと発音する)は、この種のアーキテクチャーのためのコンポーネントの集合である。どのアプローチをとろうが、GWT最適化コンパイルは確実にするだろう、君が本当に使う唯一の機能が最終的なコードの一部となることを。

GWTPの中心部分にはモデル・ビュー・プレゼンターアーキテクチャ(MVP)がある。このモデルはGWT開発のベストなアプローチであると称賛されながらも、未だにできあいのMVPソリューションを見つけるのは難しい。原題のウェブアプリのすべての要求を満足するものだ。GWTPはこのようなソリューションをターゲットとしつつも、それに到達するのに必要なコード量を削減する。

例えば、プレゼンターにヒストリーマネジメントやコードスプリットを加えることは、以下のようなクラスを付け加えるだけだ。

@ProxyCodeSplit
@NameToken("myToken")
interface MyProxy extends ProxyPlace<MyPresenter> {}

GWTPはGWTのイベントバスをクリアで効率的な方法で用いる。イベントは大まかに関連するオブジェクトどうしの切り離しのために用いられる。その一方で、強く結びついてコンポーネント導師は、直接的なメソッド呼び出しを使うことにで明らかに保持される。この結果としては、理解しやすくデバッグしやすいアプリとなり、継続的なスケールアップが可能となる。

ゴールと機能

GWTPのゴールとしては、扱い安いMVPアーキテクチャを提供することであり、それとともに最小限のボイラープレート(決まり切ったコード)、GWTのベストな機能を侵さないことである。以下はいくつかのGWTPのコア機能である。

  • GINとGuiceによる依存性注入
  • 単純でパワフルなヒストリー管理メカニズム
  • ネストされたプレゼンターのサポート
  • プレゼンターを管理するためのライフサイクルイベント
  • プレゼンターとビューの遅延生成
  • たやすく機能体なコードスプリッティング
  • 新たなGWTアプリ生成を決定的に簡単にするためのブートストラップツール

加えて、GWTPはオプションコンポーネントを提供する。これにより、

  • 簡単にサーバ側コードとコミュニケーションできる。これはGWT-RPCを活用し、パワフルなコマンドパターンを使うことができる。
  • javax標準(JSR-311)に従うライブラリによってウェブAPIの利用を簡単にする。
  • GWTアプリに対する検索エンジンクロールのナイスなサポート
  • 国際化文字列の組織化

注意

GWTPはgwt-dispatchとgwt-presenterのフォークである。オリジナルの著者とこれらのライブラリに感謝する。gwt-presenterに慣れているのであれば、GWTPとの違いを見てみるとよいだろう。