GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Jon Rose , 翻訳者 佐野 徹郎 投稿日 2007年12月19日
BuzzwordはWebベースのワードプロセッサで、Adobe Flexで開発されています。Buzzwordは一見、普通のワードプロセッサのようですが、Webブラウザの中で操作します。これはデスクトップのワードプロセッサによるリッチなユーザエクスペリエンスと、Webベースのワードプロセッサによるユビキタスなアクセスとコラボレーション機能を統合します。BuzzwordのプラットフォームとしてAIR/Flexを採用した経緯について。
他のオンラインワードプロセッサがリッチなエクスペリエンスに近づけないのは、HTMLとJavaScriptの限界による制約があるためです。
これは簡単なキー操作による文字間隔の微調整や、ドキュメントの改ページも完備しています。Buzzwordはまた、ドキュメント内の画像をドラッグアンドドロップで配置やリサイズするなど、簡単でパワフルな操作も提供します。Flash Player 9の大幅なパフォーマンスの向上が、このアプローチの実現を可能にしました。
Buzzwordはwww.buzzword.comでフリーで入手できます。
2005年に最初のプラットフォーム候補の評価を行ったときに、私たちが考えたブラウザベースのソフトウェアを開発するための選択肢は、.NET、Java、AJAX(HTML+JavaScript)、そしてFlash Player 8上のFlex 1.5でした。(当時、Flex 2.0はまだベータ版すらなく、Flash Player 9もまだ開発中でした)私たちはユビキティ(つまり既存のWindows、Mac、そしてLinuxの上で利用可能なプラットフォーム)、ゼロインストール、リッチテキストとグラフィックスのサポート、そしてハイパフォーマンスを必要としていました。私たちの検討したプラットフォームはいずれも、この要件を満たすことが出来ず、私たちのやろうとしていることは、ほとんど不可能に思えました。次に、Coletta氏とStaley氏はBuzzwordの開発にFlexを利用することのチャレンジについて語った。
Flex 2.0とFlash Player 9の最初のベータ版がリリースされ、利用可能になった2005年の終わりに、私たちはプロトタイプをアップデートし、Flashプラットフォームのパフォーマンスが大幅に改善されたことを知りました。Flash/FlexがBuzzwordを開発できる唯一のプラットフォームであることは、すぐに明らかとなりました。
InfoQ.comはColetta氏とStaley氏にFlexとAIRに追加したいものは何か尋ねた。私たちが遭遇した(そしてほとんど克服した)ものはかなりのチャレンジです。以下はいくつかの例です。
ひとつの重大な技術的チャレンジは、Flash/Flex環境が完全にポータブルで、異なるOSプラットフォームやブラウザで動作するとはいえ、Flashサンドボックスの(中でも完全なキーボードのサポートやリッチテキストのクリップボードに)いくつかの制限があり、ブラウザのJavaScriptを利用して対処しなければならないことです。JavaScriptを利用することでたくさんのブラウザのサポートを強いられると、サポートするブラウザのポイントリリースに追従することが難しくなり、大抵はFlashの持つユビキティを損なうことになります。さらに、Buzzwordの画面と競合するブラウザのツールバーやメニューバーは、Buzzwordから合理的な編集のアプローチを奪います。幸いなことに、Adobe AIRプラットフォームは、キーボードイベントやシステムクリップボードへのダイレクトアクセスを提供することで、ブラウザ内の制限を克服でき、またウィンドウをフルコントロールすることもできます。
もうひとつの技術的チャレンジは、バックグラウンドのスレッドを使わずに、Buzzwordのユーザインタフェースの応答性を維持することです。Flexの開発に用いるプログラミング言語、ActionScript 3は、基本的にシングルスレッドで、すべてのネットワーク操作に非同期の完了機能が必要です。処理に時間のかかるバックグラウンド操作をスレッドを分離して実行するのは、ユーザインタフェースの応答性を維持するための一般的な方法ですが、私たちはそれができないので、時には不恰好で実装や保守の難しい別の方法が必要です(しかしマルチスレッドプログラミングを正しく行うことが難しいのはよく知られているので、この制限は悪いことばかりではありません)。
デザインの先端で、ビジュアルエフェクトの使い方の、単純さと賢明さとの間の正しいバランスを見つけることはチャレンジなことです。FlashとFlexはアニメーションとトランジションを選択するとても豊富なパレットを提供しますが、ひとたびアプリケーションのユーザインタフェースの一部にアニメーションを導入すると、アプリケーション全体でどのようにビジュアルエフェクトを使うかを考えなければならなくなります。同様に、ビジュアルの革新性と一貫性との間の正しいバランスを考えながら、Buzzwordのフォーマッティングツールバー、ドキュメントスクロールバー、およびコラボレーターバーのような重要なインタフェースデザインのいくつかを導入することができます。
Coletta氏とStaley氏はFlexやAIRの導入を検討している人に以下のようなアドバイスを提示してくれた。FlexとAIRには改善できるところがいくつかありますが、必要な制約の多くを克服することはとても難しいでしょうから、望んでも無駄かもしれません。ひとつの実用的で現実的な要求として、実行時にActionScriptのコードをコンパイルできれば便利でしょう。
あなたが優れた人材を求めているなら、FlashやFlexのバックグラウンドをあまり気にしないでください。それよりも、きちんとしたオブジェクト指向開発のバックグラウンドと、Java、C++やC#などの言語経験のある人を雇いましょう。彼らはActionScript 3やEclipseベースのFlex Builder環境を、とても快適で使い慣れたものだと感じるでしょう。
次にColetta氏とStaley氏は、Adobeの買収について語った。
Coletta氏とStaley氏はBuzzwordの将来について語った。Buzzwordのビジョンの重要な部分は、Web上でエレガントなユーザエクスペリエンスを提供することだったので、Flashプラットフォームにデプロイされるアプリケーションの開発環境として、AdobeのFlexを評価し、選択することになりました。
新しく発表されたApollo(現在のAIR)の初期バージョンを含む、それらのプラットフォームでBuzzwordチームが行った仕事をAdobeが見て、2006年の終わりにVirtual Ubiquityは、Adobeのベンチャーファンドの最初の受け手になりました。
Buzzwordチームは込み合い、混沌とした新しいマーケットに取り組むには、既存のソフトウェア企業と協力して安定感と、効果的にBuzzwordを売り出すためのマーケットエクスポージャを手に入れる必要があることに気がつきました。
Adobeを選択したのは、すばらしいFlashプラットフォーム上でBuzzwordを開発するためだけでなく、BuzzwordがAdobeのすばらしいデザインやドキュメントにとてもよく適合することからも、当然のことでした。私たちはAdobeに本当の変化をもたらすことができ、さまざまな方法で彼らを支援できると思います。Adobeには今後、いくつかのエキサイティングな計画があります。そしてBuzzwordは、Webアプリケーションやコラボレーションの領域で存在感を増しつつあるAdobeの中で、重要な役割を演じる準備ができています。買収に関する更なる情報は、Adobeのサイトをチェックして、プレスリリースやFAQを見てください。
BuzzwordはAdobe Flexで開発された真のリッチインターネットアプリケーションのすばらしい見本を提示する。Coletta氏とStaley氏、およびBuzzwordチームの体験は、RIAの展望を評価する助けになるだろう。Buzzwordはワードプロセッサとして発展を続けます。私たちは変更のトラッキングや名前付きスタイルのような領域で、いくつかのすばらしいデザインと革新を実装したいと考えています。私たちはBuzzwordオンラインを提供しているので、定期的にアップデートを行うことができます。もうすぐ私たちは、6~8週間のアップデートサイクルを確立するでしょう。
私たちはまた、近い将来に、PDFのエクスポートをサポートするつもりです。これはAdobeによる買収のニュースが公になるより前に、私たちのユーザから聞こえてきた要求です。
私たちはAdobeの一員として、多くの領域にBuzzwordを広げたいと考えています。はじめは当然、AIRプラットフォームです。それはオフラインでの利用を可能にするだけでなく、(ブラウザに邪魔されることのない)よりクリーンなユーザインタフェースを提供し、デスクトップとの統合にも近づきます。
AIRのさらに先、Adobeのコラボレーションプラットフォームと、そこで動作する新たなアプリケーションは、豊富な機能の資産によってBuzzwordをうまく補完し、オンラインでコラボレートするためのすばらしい環境を提供するでしょう。
【豆蔵】「オブジェクト指向を現場で活かすリファクタリング入門」新規講座キャンペーン中
世界の先進エンジニアが集結 - QCon TOKYO 2012 早期割引実施中!
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信