blog
ハイパフォーマンス ブラウザネットワーキング ミートアップに参加してきた
この記事は書かれてから1年以上経過しており、内容が古い場合があります。
はじめに
2014年11月4日に開催されたハイパフォーマンス ブラウザネットワーキング ミートアップに参加してきた際のメモ。ちなみに下記の通り、日本語訳版:ハイパフォーマンス ブラウザネットワーキング(HPBN)の出版記念イベントで、まだ購入していないのでそのうち購入しようと思う。
11月4日(火)、今年の 5 月に日本語翻訳版が出版された、ハイパフォーマンス ブラウザネットワーキング(HPBN)の原著者である Ilya Grigorik (Google Developer Advocate)を迎え、ちょっと遅めの出版記念イベントとしてミートアップを開催します。
キーノート
- なぜこの本を書いたのか
- 色々なことにたいしてもう一度知識を習得したいと思ったことがきっかけ
- Webの開発者としてはとても良い時期
- 30億人はオンライン化されており、まだ半分オンライン化されていない
- 残る5年ぐらいで増加する
- 誰が勝者になるのか
- 急速に変わっている(Apple,Android…)
- Webはすべてのプラットフォームに存在している
- Webか、Nativeか
- どちらか一方というのは偏った考えだと思う
- Androidのアプリケーションの60%はWebViewを使っている
- どのプラットフォームでも同じことが言える
- Brower(?) Networkingにするか迷った
- 根底にあるものは同じである
- 書籍の75%はNativeでも関係する
- 書籍の25%はBrowserに関係する
- なぜ今この本を書くのか
- 回線速度も上がっているし解決できるのではないか
- 世界のネットワークperformance
- 日本はネットワーク環境が整っており非常に速い
- どの程度の回線速度を前提にしているか開発時によく考えなければならない
- パフォーマンスの差が大きくなっている
- 特にモバイルの場合に差が激しい
- これは日本のような環境が整っているところでも起こっている
- 例えばイベントなど
- もう一つ考えなければならないのはレイテンシ
- Round-trip time(RTT)
- ニューヨークから日本にパケットを送った場合、最短でも52 ms RTTかかる
- 速いと感じるのは200msに抑えること
- この目標を達成するのは難しい
- 帯域とレイテンシ、どちらも考慮しなければならない
- Webページの場合帯域幅を増やしても、ロード時間への影響は頭打ちになる
- これに関わるプロトコルなどを理解する必要がある
- 帯域やレイテンシがアプリにどのような影響を与えるか、熟考した方が良い
- Webページの場合帯域幅を増やしても、ロード時間への影響は頭打ちになる
- モバイルの場合、さらに複雑になっていく
- 無線
- バッテリー
- 回線(2G, 3G, 4G)
- オフライン
- 出した段階で、その情報は陳腐化している
- 本が出てからの一年間でどんなことが起こったか
- Fetch API
- ローレベルなAPIで、XHRなどもFetch APIの上で動作する
- Streams API
- node.jsに影響を受けたAPIである
- 入ってきたデータから活用できる?
- ServiceWorker
- オフラインへの対応に使われる
- Browser側のプロキシ
- HTTP/2, QUIC in the pipeline
- セマンティックな部分が更新されている
- Fetch API
- 最終的に我々が望んでいるのはリッチなアプリケーションでオンライン・オフラインに対応し、ハイパフォーマンスなアプリケーションを作ってほしい
Podcast Mozaicfm の公開収録
この内容は後日Mozaicfmで公開されるらしいので詳しくはPodcastを聞いてみてください(メモしきれていないので)。
- Web上のパフォーマンスに大きく影響しているのが画像である
- ここを最適化するのが効果的ではないかと考えWebPに関わっていた
- HTTPSについて、Web上のセキュリティは重要だと考えている
- ただ、セキュリティとパフォーマンスを両立することについて考えてきた
- もともとはこの本を書くつもりではなかった
- 最初はSpdyについて書いているうちに周辺技術についても含めてこの本を出版することになった
- 編集者に400ページまでと止められてしまい、まだ書きたいことが残っている
- プラットフォームがものすごいスピードで進化している
- うれしい問題
- 執筆する中で大変だったところ
- WebRTC
- ワイヤレスネットワークがどのように機能しているか(どのようにつながっているのか)
- 出版された時と、現在とのギャップ
- ローレイヤーの部分ではそれほど変化がない
- ワイヤレスネットワークも同様に大きな変化はない
- アッパーレイヤーの変化が大きい
- XHR、SSL…など変わっていると認識している
- Fetch APIやStreams APIなど
- QUICは第2版には書かれるのか
- 今の段階ではお答えするのが難しい
- 現在非常に変化が早く、書籍にすることが難しいがハイレベルなことでれば書けるかもしれない
- この本はAPIがどのように動作するのかしっかり理解できる本にしたい
- APIを理解して、どのように活用していくか、皆さんにも考えてもらいたい
- それぞれのレイヤーをどのように繋げていくかも重要である
- HTTP2によりハイパフォーマンスウェブアプリケーションの配信が簡単になる(?)
- 会場からの質問
- IPv6はパフォーマンスに影響するのか
- 影響すると思う
- Googleはソフト以外にもパフォーマンスを良くする開発や活動をしているのか
- Googleはより良いネットワーク環境を作るよう進めている
- (メモしきれず)
- APIの普及について
- 他のベンダーの同意を得た上で進めている
- IEのチームも協力してくれるようになっている
- ローレベルのAPIを提供し、開発者自身のペースで導入していってほしい
- IPv6はパフォーマンスに影響するのか
- レンダリングについて
- レンダリングのスムーズさについてはかれるAPIがなかった
- FrameTiming APIが作られた
- Deltaエンコーディング(?)
以上、後は懇親会に参加して終了です。
パフォーマンスに関する仕事もしているのでとりあえず本を買って読もうと思います。