12日金曜日、モスクワで2010年のGoogle Developers Dayのような重要なイベントがありました。 これはGDDシリーズの最後から2番目のイベントで、次は11月16日にプラハで、前のイベントは東京、サンパウロ、ミュンヘンで開催されました。 GDDはすべての開発者にとって重要なイベントであり、4,000人がそこに行きたいと思っていました。 わずか1,500人が合格し、私は幸運な人の1人でした。 GDD 2010が私にとって何であったかについて、お話ししたいと思います。
カンファレンスは、1フロアに1,500人が簡単に収容できる巨大な展示施設であるCrocus Expoで開催されました。 誰もがはっきりとわかる標識が地下鉄から出て、最終的に3階の受付に行きました。 事前に送信された登録コードのおかげですぐに合格し、パビリオンに行きました。控えめな音楽、多くの柔らかい場所、ソフトドリンク付きの冷蔵庫、起きたばかりの人のための熱いお茶とコーヒー、ゲーム、エンターテイメント-ファン、wifiを獲得するために来た人のために-ネットでサーフィンしたい人のために。 しかし、誰もが主なものを待っていました-レポート。
会議はモスクワの開発センター長であるエフゲニー・ソコロフと、製品開発部長のエリック・トロメによって開かれました。 エリックはいつもの熱意で、すべての新しいGoogle製品について話したが、残念ながらいくつかのレポートのネタバレであり、それらの印象を台無しにした。 このような経験を繰り返さないために、彼のスピーチの要点を簡単に説明します。
私たちにとって新しいのはHTML5です:
- 空間内のジオロケーションとポジショニング。
- 音声認識;
- WebGLを使用した2Dおよび3Dグラフィック。
- WebSockets
- 生産性の向上。
私たちにとって新しいのは
App Engineです:
- フルマップ削減
- データのエクスポート/インポート;
- セキュリティの強化。
- ストレージSQL
- OpenID + OAuth;
- ビジネスのための特別オファー。
その後、GWTと
Spring Rooなどの開発に至りました。 Spring Roo(SR)はDjangoの類似物ですが、Javaでのみ使用できます。 SRがバックエンドを処理し、GWTがフロントエンドを処理します。 目の前で、エリックが語ったフレッド・ソワーは、コマンドラインから、エンティティのセットを使用して単純なアプリケーションを作成し、それらをHibernateで構成し、GWTでUIを生成する方法を示しました。 その後、FredはEclipseを起動しました。これには、
Eclipse用の特別な
Googleプラグインプラグインがあり、公開前にアプリケーションを起動しました。 (ちなみに、デモについての別の言葉-ほとんどすべてがポピーのFireFoxでデモされました。)デモは大成功でした。 フレッドはまた、別のSRチップを示しました-本質を変えた後、再び。 個別のカスタマイズオプション-Google App Engineにデプロイするための構成。
フレッドのおかげで、エリックはすぐにマイクをレト・メイヤーに失いました。レト・メイヤーはAndroid開発の見通しについて十分に詳しく話しました。 彼によると、現在までに、Androidプラットフォームで実行されている90種類のデバイスがリリースされています。 技術的な詳細を掘り下げることなく、RetoはAndroidストアが提供する機会について話しました。
- 開発者のサイトとの統合;
- レポートとコメントの便利なシステム。
- 雲
- 特別なビジネス条件。
この会議では、オープンが宣言され、5つのセクションが獲得されました。
- Android
- Chrome&HTML5;
- 収益化;
- クラウドコンピューティング
- ソーシャルウェブ。
各セクションには6つのレポートがあり(収益化とソーシャルWebが1つに結合されている場合)、合計24のレポートが読み込まれました。 しかし、最終的には何が起こったかが判明しました。 順番に行きましょう。
Android用の壮大なアプリケーションの書き方レト・マイヤーRetoは4つのポジションに関するレポートを作成しました。
- 方法は必要ありません。
- それを行う方法;
- 結果の測定方法。
- レッスンを学ぶ方法。
これが私が何とか自分で抽出したものです。 まず、パフォーマンスと使用に多くの作業を行う必要があります。たとえば、Threads / AsyncThreadsです。 この場合、アプリケーションで何が起きているのかをユーザーに完全に認識させる必要があります。
もちろん、アプリケーションは便利なはずなので、ユーザーエクスペリエンスを忘れないでください。
- トラックボールに吊るすなど、便利なナビゲーションを作成します。
- ステータスバーは非表示にしないことをお勧めします。
- ネイティブアイコンを使用することをお勧めします。
- ユーザーの設定を考慮して覚えておいてください。
プログラミングスタイルについて:
- 文書化されていないAPIを使用しないでください(いいえ、真剣に!)。
- アプリケーションのライフサイクルを忘れないでください。
- ランドスケープ/ポートレート表示モードをサポートしてください。
- 考えられるさまざまな画面サイズに留意してください。
最も明白に思われるヒントの1つは、デザイナーを呼び出すことでした。 彼のすべての証拠のために、彼はしばしば忘れられています。
Retoは、アプリケーションと分析を統合して次のデータを取得することの重要性について話しました。
App Engineの新機能フレッド・ザウアーチャネルAPIこのAPIは、サーバーとブラウザークライアント間の直接通信を目的としています。
今何がある:
- 非同期サーバー-クライアント(チャネルメッセージングシステム、双方向システムに基づく)
- サーバー(作成されたチャネルを介してメッセージを送受信します);
- クライアント(JSで作成され、メッセージをサブスクライブし、コールバックを介してメッセージに応答できます)。
MapreduceMapReduceは、クラスターを構成する多数のコンピューターを使用して、いくつかの分散タスクセットを計算するためのフレームワークです。 MapReduceについて話す過程で、フレッドは定期的に「魔法!」と言いました。 MapReduceの一部は、Mapper APIが公開されているMapです。 彼についてのいくつかの言葉:
- レポート生成、データエクスポート、シーマ移行に使用すると便利です。
- 内部のTaskQueue。
- Apache 2ライセンス。
- python / javaサポート;
- 内部プロセスの自動化。
名前空間APIこのAPIは、データストアとmemcachedストレージの通常の作業を変更します。キーと値の間に名前空間フィールドを追加します。 明らかな用途の1つは、異なるバージョンのプログラムを使用することです。
マッチャーAPIこれまでのところ、興味深いシステム。 pythoneにのみ実装されます。 エンティティは、選択した条件に従ってフィールドを任意の値に一致させることができます。 移行とレポートに適用されます。
ホステッドSQLこの機能を使用すると、1つのボタンを押すだけで起動できる一連のSQLクエリをサーバーに保存できます。 デモデータの生成とレポートの受信に便利なもの。
管理コンソール上記のほとんどの機能を使用できる便利な管理パネル。
霊的に満足し、私たちは物質的に飽和し始めました-昼食が始まりました。 特別なジャークとラインがなかったので、すべてが非常にうまく整理されました。 食べ物はおいしくて十分でした。 冷蔵庫の無料ドリンクにもとても満足しています。
少し休んで、再び急いで新しいものを見つけて楽しみました。
実用的なHTML5ジェレミー・オーロウジェレミーは最初にセマンティクスの変更について話しました。
- 新しいページレイアウトタグ
- リンクタグのrelパラメーターの新しい値。
- microdataの外観;
- ARIA属性。
次に、キャンバスに行きました。
- 線と形を描く;
- 画像データ;
- Web GL;
- インラインSVG。
その後、デモと次のストーリーがありました。
- オーディオおよびビデオタグ。
- ファイルのドラッグアンドドロップ機能。
- 通知;
- 空間内のデバイスの方向を決定します。
最後に、css3に進みました。
ジェレミーと一緒に、pepelsbeyとしても知られる
Vadim Makeevは 、
「特殊効果のあるお茶」というプレゼンテーションを行いました。
App Engineでのヘビーデューティデータ処理マイク・アイザツキーところで、これはすべてのレポートの中で最も波乱に富んだものでした。 App Engineユーザーが直面している問題の説明から始まりました。
- リクエストの作業時間を制限する;
- 同じレコードの頻繁な更新に関する問題。
- 遅延の増大。
- AppEngineは重いアプリケーションを好みません。
その後、マイクは、LAMPアプローチの見慣れた展望を変えるいくつかの概念を紹介しました。
- 読みやすいようにデータを書き込む必要があります。
- 多くの場合、同じデータを2つの異なる場所に保存できます。
- プログラミングモデルを変更する必要があります。
これらの問題を解決するには、低レベルと高レベルの2つのアプローチが可能です。
低レベルのテクニック名前付きタスク:
- キューはタスクの一意性を保証します。
- 名前は少なくとも7日間保存されます。
- 名前付きタスクの作成は、同様のデータベース操作よりも高速です。
タスクヒッチ:
- タスクの内訳;
- 他のタスク内にタスクを作成します。
- マイナスの-タスク数の制御不能な増加。
トランザクションタスク:
- タスクは、トランザクションの適用中に作成されます。
レコードグループ:
- トランザクションを作成する単一の方法。
- グループはツリー形式で編成されています。
- ツリーのサイズと形状に制限はありません。
- レコードはトランザクションを作成します。
- バッチタスクはレコードのグループを自動的に作成します。
名前付きエントリー:
- キーですばやく検索する機能を提供します。
- すでにキーでソートされています。
- 自動キーの使用は余分なスペースの無駄であるため、エンティティ自体の一意のフィールドを使用する必要があります。
合成特性:
- プロパティは、他のプロパティに基づいて作成されます。
- より高速なパス要求。
高レベルの技術者その後、マイクは次のことを提案しました。
- インターネット上の出版物を読む;
- MapReduce
- 小さなライブラリの使用。
- 開発者間の経験の交換。
記録できるものすべてではないので、このプレゼンテーションを見つけたいと思っています。 この後、私は間違いなく休まなければならなかったので、休憩は非常に便利になりました。
Chrome WebStoreのWebアプリケーションポール・キンランポールは、現代の優れたアプリケーションに必要なものについての話から始めました。
- 簡単な登録(鳥小屋エディター);
- 継承による登録、つまり、既存のアカウント(diary.com)を使用します。
- 自動長期保存(iehtherpad.com);
- html5およびcss3機能を使用したリッチアニメーション。
- AppCacheおよびLocalStorage / DBによるオフラインモードのサポート。
- WebWorkersでほとんどのタスクを処理します。
- ハードウェアアクセラレーションの存在。
その後、ポールはChromeウェブストアが作成された理由を列挙しました。
- 1つのシステムで目的のアプリケーションを簡単に検索できます。
- 単一の統合支払いシステム。
- 多数のユーザーを引き付ける簡単なスキーム。
そして、彼はレポート全体を完成させました。
モバイル開発:HTML5またはネイティブ?マイケル・マヘモフ 、レト・マイヤーまず、スピーカーは、このアプリケーションまたはそのアプリケーションをいつ書くかを決定しました。
ネイティブアプリケーションの強度:
- 作業速度;
- ハードウェアのサポート。
- システムとの高度な統合。
html5アプリケーションの力:
- さまざまなフォームファクタのサポート。
- 開発者からの最小限のコストでさまざまなデバイスで実行されます。
- Webテクノロジーとその作業時間を迅速に開発する。
ここで、ところで、マイケルはフォームの興味深いスライドをもたらしました:
jsコードの処理速度:
- Firefox(2004)-1800ミリ秒
- Chrome(2010)-10ミリ秒
DOM処理速度:
- Firefox(2004)-118ミリ秒
- Chrome(2010)-2ミリ秒
素晴らしい比較、私は思う=)
さらに、Webテクノロジーにより、ジオロケーションやその他の多くのことを操作できるようになり、そのアクセスにより「ハードウェア」が得られます。
レポートの結果、理想はネイティブアプリケーションとHTML5アプリケーションの組み合わせであり、たとえば
PhoneGapと
Titaniumを可能にするという次のアイデアが提唱されました。
このGDDがほぼ終了し、最後の言葉とビュッフェテーブルのみがあり、この素晴らしい、波乱に満ちた一日を要約しました。
追記として:
- Yandexの非表示広告=)
- Google-背面図