BT

Google App Engine、Google Closureを使ったHTML5アプリケーション開発

| 作者: Jean-Jacques Dubray フォローする 3 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2010年11月15日. 推定読書時間: 3 分 |

原文(投稿日:2010/11/09)へのリンク

Freiheit.comのCTO、Stefan Richter氏は、今週ミュンヘンのGoogle Developer Dayにおいて、HTML5とGoogle App Engineを使ったリッチインターネットアプリケーション開発の展望について説明した。特に彼は、サーバベースのページレンダリングに比べてクライアントサイドコンポーネントベースのHTML5構築は少し難しいと考えている。

Webが登場する以前、シック(Thick)クライアントアプリケーションモデルはウィジェット、イベント、イベントハンドラに基づいていた。これはイベントチェーンが複雑になることが多く、悪夢のようなメンテナンスをもたらしていた。2層クライアントアプリケーションモデルでは、イベントハンドラから直接データベースにアクセスしていることもあった。サーバベースのページレンダリングでは、完全なページが一度にひとつの場所で、一回のリクエストとレスポンスで作られる(ことが多い)。

Stefan氏は、HTML5を使うと 「あなたはもっともっとクライアントサイドでHTMLコードを生成しなくてはならない」と説明する。それを試すひとつの方法はGoogle Closure Templatesの利用だ。

Closure Templatesはクライアントサイドおよびサーバサイドのテンプレーティングシステムで、再利用可能なHTMLとUI要素を動的に構築するのに便利です...Closure TemplatesはJavaScriptとJavaの両方のために実装されており、サーバサイドとクライアントサイドで同じテンプレートを使います。

彼はイベントハンドリングを集めて、必要に応じて状態をカスタムウィジェットにカプセル化することも推奨している。

バックエンドから見て、彼はこう質問する。「本当にデータをあちこち渡すためのクラスやオブジェクトは必要だろうか?」それらはClojureマクロを使ってサーバ上でデータストアアクセスコードを生成する。同じデータ構造がクライアントとサーバで使われる。

私たちはプライマリのデータ構造としてキー/バリューペアを使っています... 私はこれがアプリケーション開発の未来だと考えています。もうインピーダンスミスマッチも、ORマッパーも、変換ステップも必要ありません。
Clojureが内部的にキー/バリューペアを使って機能します。Google Datastoreともやり取りできます。そして、クライアントにはJSONとして送ることができます。

Stefan氏はただの 「キー/バリュー」ペアを使って行けるところまで行き、このデータを操作するのに副作用のない関数的JavaScriptコードを書くことを勧めている。

話のなかで、彼は次世代RIAのための一連の一般原則を述べた。

  • コードを読むことで、やっていることが理解できるようにしなければならない。
  • ブライザ内部でWindowsスタイルのデスクトップアプリを書こうとしてはいけない。
  • HTMLコードの大部分をクライアントサイドでレンダリングできるようにしよう。
  • Java言語のスタイルでJavaScriptコードを書いてはいけない。Javaコードを書いて学んだことをすべて忘れよう。
  • 事前にオフライン機能(および、古いデータの同期)の計画を立てておこう。
  • ユーザが同一データを同時に変更する可能性があるなら、並列な変更をどうやって扱うか考える必要がある。
  • プッシュ通知が必要だ。
  • クライアントサイドの例外をサーバにログ記録しよう。

デッドラインというアプリケーションはこうした原則に従って作られた。

HTML5(そして、クラウド)はRIAのアーキテクチャとプログラミングモデルを変えつつあるのだろうか? 開発者とアーキテクトは飛躍する準備をしているのか? あなたはどう考えるだろうか?

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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