次世代Webカンファレンス 2023のPerformanceセッションで登壇しました
Performanceセッションで登壇しました。動画はいずれ公開されるらしいので見たい方は後で調べてみてください。ちなみに自分は腰が悪くて長時間座れないので立てるように即席で台を用意してもらいました。
内容
WebアプリケーションのPerformanceの世界は考えることがドンドン増えています。
昔はフロントエンドで複雑なことをやらなかったので、バックエンドの速度が重要でしたし、海外からのアクセスが遅いことも重要視されていなかったと思います。
しかし現在では海外からのアクセスを高速化するためにCDNを活用することは当たり前になりましたし、クラウドサービスの進化によりバックエンドの速度を向上させる技術も増えて、むしろフロントエンドの肥大化により、ブラウザ上で動くJavaScriptのアプリケーションがどこまで高速に動くのかが重要視されるようになってきました。そして速いかどうかがGoogleのSEOに直結するようになり、ビジネス上も重要な指標になることでエンジニア以外の人にとっても重要になりました。
そういった事情もあり、自分以外の3名はフロントエンドよりのメンバーで、自分はネットワークやCDNよりの知見中心に話すことでトーク内容の幅を広げる役割なのかなと勝手に解釈して、そういう動きをしていたつもりです。
Webアプリケーションの高速化はブラウザの新機能や、逆に機能削除により取れる手段が変わってきます。なので如何にブラウザの機能を活用するかというのも重要な観点で、自分も日常的にブラウザの新機能の情報を極力追っています。なのでフロントエンドの最前線で戦っている人達がどういう機能に注目しているのか、実際に計測データをどう集めるのかなど、学びになる内容が多かったです。
自分からはEarly Hintsについて実際に活用しようと考えたときに発生する問題について話しました。前身のHTTP Pushはブラウザ上のキャッシュがなくてもレスポンスを送ってしまう問題があり、目玉機能だったはずが今や仕様から完全に消されてしまったのですが、Early Hintsも実際に利用するハードルがあるので、ベストプラクティスが何なのか、考えていく必要があると思っています。
イベントの趣旨として未来がどうなるのか、という話もする必要があるので、Early Hintsの他にもいくつか以下のような未来の話をしました。
- AI技術を活用した画像・動画フォーマットが出てきて、ネットワーク的には軽いが、decodeに時間がかかるフォーマットが普及する可能性がある。そうなるとimgタグのdecoding要素の重要度が増していく可能性がある
- HTTP/2のpriorityは結局なかったことにされてしまったが、HTTP/3のpriorityはシンプルな仕様で定義し直されているので、普及に今後期待したい
他にも数値計測をどうするのかという話題で、ISUCONのベンチマーカーでどうやってスコアを出しているのかという話が出たので、過去に自分が実装したベンチマーカーの実装について軽く説明しました。
- ISUCON9予選は売り上げがスコアになっていたが、これは実際のサービスの指標に近いものをISUCONのスコアとして採用したかったから
- シナリオの作成難易度が上がってしまうので、通常はGETリクエスト何点、POSTリクエスト何点、という風に計測するのが多い
- private-isuのベンチマーカーはブラウザの挙動を意識しすぎて、画像へのリクエストが多くなりすぎた。ISUCONは競技なのでブラウザの挙動を気にするよりもイベントが楽しくなる方向に実装するのがよい
他にもSSRってCPUを使うからお金がかかるけど、みんなつらくないのか?とか、SSRってパフォーマンスのためというよりもSEOのためにやっている会社の方が多いよね?とか、Performance APIの値って丸められるけど情報としてどう活用しているの?とか、その辺の話題を振っていったと思います。
90分間も話していたので、終了したらドッと疲れが出てしまいましたが、その後も延長戦を色んな人と勝手にやっていました。
最後に
やっぱりリアルで交流できるオフラインのカンファレンスはいいなぁという気持ちです。最近業界内のオフラインイベント開催のハードルが高くなってきているので、運営の人の負担にならない形で楽しいイベントが今後も続けばいいなぁと思っています。
ここまでいくつか話しましたが、実際にはここまで進んでいるのは一部の会社だけで、多くの会社はバックエンドが遅いまま放置されたり、フロントエンドも昔のままだったりするのが実態だと思います。これに対してどう解決していくか、という話になると技術よりも技術を利用して戦える組織をどう作るかという話になってきます。これについては「技術への理解が深い責任者」「正しい技術を理解して指導できる人」「仕事を自分事にできる従業員」の3つが揃えば時間で解決できると思っていますが、それについては精神論が中心になっておもしろくならないので今度の機会で。
Discussion