2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
performance improvement strategy(全1記事)
リンクをコピー
記事をブックマーク
toshick氏:パフォーマンスについての発表を始めたいと思います。はじめまして。世界のtoshickといいます。私は2020年の3月に株式会社メルペイにジョインして、開発を続けています。カポエイリスタです。もしカポエイリスタがいたら、次のホーダでお会いしましょう。ホーダとはカポエイリスタの会合みたいなものです。
それでは始めます。この回では、Merpay Frontendがどのようにパフォーマンスに取り組もうとしているのか、現状のパフォーマンスをどのように把握しているのかを発表したいと思います。結論から言うと、Web Vitalsのスコアをベースにしています。
Jakob Nielsen氏の言葉を引用すると、「遅延が10秒までになると、ユーザーがコンピュータに振り回されている気持ちになり、ストレスを感じ始める。10秒以上遅くなると、サイトからの離脱率が高くなる」。これを、コンテンツ以外の要因で離脱されることを防ぐためには、パフォーマンスは非常に重要になると解釈しました。
ところで、お客さまが満足するパフォーマンスが出せているのか、いったいどうやったら証明できるのでしょうか?
この答えはWeb Vitalsにあると思います。Web Vitalsは、「Google」が主導している品質指標のガイダンスで、どれだけ良好なユーザー体験を提供できているのかを標準化し、計測できるものです。中でもこの「LCP」「FID」「CLS」というバイタルは「Core Web Vitals」と呼ばれていて、かなり重要視されています。
私たちMerpay Frontendは、4つの指標を計測して追いかけていくことにしました。LCP(Largest Contentful Paint)、CLS(Cumulative Layout Shift)、TBT(Total Blocking Time)、そしてTTI(Time To Interactive)です。
それらを非常に簡単に説明すると、こうなります。LCPは「メインのコンテンツをなるべく速くロードせよ」ということです。CLSは「Stop layout shifts!」。layout shiftはガタツキのことです。ロードがし終わったあとに、カクついたりするあの現象のことです。それをなるべく減らすこと。TBTは、ページをロードする際に、インタラクティブじゃない状態の時間をなるべく少なくすること。TTIも非常に似ていて、ユーザーに対してのレスポンスを可能なかぎり素早く行うこと。これらが4つの指標です。
先ほど重要だと言っていた「FID」(First Input Delay)は、Lighthouseというコマンドがあって、それがスコアを弾き出してくれるんですが、シミュレートされた環境でしか弾き出せないので、ユーザーをトリガーとしたアクションを測ることはできません。そのため、4つの指標から外しています。
「field metric」と呼ばれているものは、現場で起きるパフォーマンスのことで、私たちが今から測ろうとしている、CIなどのいろいろな実行結果のスコアのことを「lab metric」と呼ぶそうです。
一方で、lab metricであるTBTの改善が、直接FIDの改善につながるというWeb Vitalsのドキュメントもあるので、私たちはFIDをいったん諦めて、TBTにフォーカスしています。
「Looker」のグラフがありますが、1つのURLに対して、追っかけようとしている4つの指標の結果をグラフ化しています。
Lookerのグラフの生成は「Lighthouse」というコマンドで、対象ページのさまざま指標のスコアをJSONで出力できます。これを加工して「BigQuery」に保存します。そのBigQueryのデータを吸い上げて、Lookerでビジュアライゼーションを行っています。
JSONにはさまざまなデータがあるのですが、その中で重要なのはscoreとnumericValueの2つだと思います。scoreは、実際の指標を100点満点で結果を出力してくれます。numericValueは、scoreのミリセカンドなど、リアルな数値を出力してくれます。これらを使ってグラフを生成します。
青いバーと赤い折れ線グラフが見えると思います。青いバーは、0~100の100点満点のスコアで、赤いラインがミリセカンドの数値です。スコアをパッと見た時に、良いのか悪いのかが直感的にわかるように、後ろにバーを表示しています。バーが上下最大になっている場合は、100点に近くてとても良いパフォーマンスが出ているということです。
スコアはいったいどう決まっているのかをお話しします。赤いラインと緑のラインで、それぞれ4,000ミリ秒と2,500ミリ秒になっていますが、これはWeb Vitalsチームが決めている指標ごとのGood/Needs Improvement/Poorの境界値です。
LCPは、2,500ミリ秒よりも少なければGoodということになります。このスコアを目指すことによってサイトの健全化の指標を追っかけられます。
改善の確認についてです。自分の修正の結果が実際にうまくいったかどうか、1回のスコア算出で喜んでよいのでしょうか。実際、スコアはかなりブレがあって、毎回変動します。なので、数日から1週間ぐらいの単位で改善したかどうかを見る必要があると思います。
私たちはテスト環境に対してチェックを行っていて、オリジナルのグラフとは別に、改善の施策を講じたものもグラフ化しています。Lookerのグラフを手動で作成するとかなりコストがかかるので、ビルドスクリプトを用意して、簡単にグラフが出力できるようになっています。
メルペイでは、テスト環境のPR(Pull Request)ごとにそれぞれのバージョンを好きなだけデプロイできるので、それを使って既存のものと改善したもののスコアを見比べて、改善したかどうかを確認しています。
パフォーマンスチームの次のアクションとして、ベストプラクティスを探して共有すること、ペイロードサイズを監視してパフォーマンスが悪くならないようにすること、あとはパフォーマンスがビジネスに与える影響を計測したり、先ほど諦めたユーザーのfield metricsであるFirst Input Delayなどの項目もチェックしたりといったような仕組みを整えていきたいと思っています。
Merpay Frontendではパフォーマンス改善に興味のある仲間を募集しているので、ぜひ応募をよろしくお願いします。一緒にベストプラクティスを見つけましょう。以上でパフォーマンスの説明を終わります。
関連タグ:
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略