連載Index(読む順・公開済(リンク)はここが最新): S00_門前の誓い_総合Index
原因は後でいい。まず15分で「止血」と「切り分けの土俵」を作る。
このページはそのための、症状別の最短リンク集。
このページでできること(1分で把握)
- 症状から「まず読む1本」を即決する
- 事故を広げずに、止血(応急処置) → 切り分けへ戻す
- 報告テンプレ/ログ観点をコピペして使う
まず読む3本(迷ったらここから)
止血(応急処置)の15分ループ(全事故共通)
影響を止める → 証拠を残す → 再現条件を固定する
- 影響を止める: 戻す/絞る/失敗を早く返す(タイムアウト/キャンセル)
- 証拠を残す: エラー文/スタック/時刻/端末差/設定差/バージョン差
- 再現条件を固定する: いつから/どこで/誰の環境で/何を変えたか
症状別 まず疑う順番(早見表)
🧩 ビルド/参照/依存(端末差が出やすい)
| 症状(検索される言い方) | まず疑う順番(3手) | 最短リンク |
|---|---|---|
| ビルドが通らない / NuGetが壊れた / 端末差 | 依存解決のズレ → キャッシュ/復元 → 競合/固定 | E02 |
| 変更影響が読めない / 参照が増殖 / 後で地獄 | 参照方向 → 境界/配布単位 → 循環の芽を潰す | K27 |
| 項目を1つ足しただけで壊れる / 互換性/セキュリティ | 破壊的変更 → バージョン戦略 → 攻撃面/運用固定 | K30 |
🧨 実行時例外/再現不能(調査が終わらない系)
| 症状(検索される言い方) | まず疑う順番(3手) | 最短リンク |
|---|---|---|
| 実行時だけ落ちる / 再現不能 / 例外が見えない | 握り潰し疑い → 境界で変換 → throw;で証拠保持 | R04 |
| "異常なし"なのに追えない / ログが足りない | 相関ID → 入力条件/境界ログ → レベル運用 | R05 |
| 突然死する / 例外ログが残らない / Win32連携 | WndProc/ハンドル寿命 → 例外経路 → 最短切り分け | E06 |
🧵 UI/非同期/WinForms(固まる・戻らない・残る)
| 症状(検索される言い方) | まず疑う順番(3手) | 最短リンク |
|---|---|---|
| UIが固まる / 応答なし / フリーズ | UIスレッド占有 → Invoke/await → ループ/ポンプ | E04 |
| awaitで挙動が変 / デッドロック | 同期混在 → 帰還(SynchronizationContext) → 典型パターン | R06 |
| 閉じたのにプロセスが残る | Dispose漏れ → イベント解除 → ライフサイクル固定 | R07 |
| 仕組みから腹落ちしたい(UIが固まる理由) | メッセージループ → 同期/非同期 → 実戦の落とし穴 | G11 / G13 |
🧾 文字/データ/比較(地味に燃えるやつ)
| 症状(検索される言い方) | まず疑う順番(3手) | 最短リンク |
|---|---|---|
| 文字化け / Shift_JIS / UTF-8 / BOM | 入出力境界 → 既定値 → BOM/エディタ差 | G21 |
| 同じに見えるのに一致しない / 大小/文化圏 | StringComparison固定 → 文化圏/大小 → 正規化 | R03 |
| CSV/TSV/JSON/XML選定で地雷 | 壊れ方(改行/エスケープ) → 運用(差分/手編集) → 相性 | K29 |
🧠 コード読解/レビュー(止まるポイントを先に潰す)
| 症状(検索される言い方) | まず疑う順番(3手) | 最短リンク |
|---|---|---|
| ラムダが読めなくて止まる | 受け口で型固定 → 長いなら名前付き → 読み筋を守る | K26 |
| varで揉める / 読めない | 推論の基準固定 → 読み筋優先 → 例外を決める | R02 |
| out/戻り値を捨てたい(意図が伝わらない) | discardで意図明示 → 判定は戻り値へ → 読み筋を守る | R14 |
| 数値の丸め/誤差/金額ズレ | 目的(誤差許容/金額)固定 → 型選定 → 丸め位置/表示 | K28 |
📋 コピペで使う: 障害報告テンプレ(最小で詰まらない)
【発生時刻】:
【影響範囲】(誰が/どの機能が/どの頻度で):
【直近変更】(コード/設定/配布/環境):
【再現手順】(最小):
【端末差】(OS/.NET/設定/プロキシ等):
【エラー/ログ/スタック】:
【いまの止血策】(戻した/制限した/タイムアウト設定等):
【仮説】(疑っている順番):
【次の確認】(何を見れば否定/確定できるか):
🧾 コピペで使う: まず増やすログ観点(最低限)
- 相関ID(1操作=1ID)
- 入力条件(キー/件数/サイズ/バージョン)
- 外部境界(HTTP/DB/ファイル/プロキシ/タイムアウト)
- 例外(スタック込み、握り潰し禁止)
関連: R05 ログ設計の掟(証拠を残す / 構造化ログ)
⚠️ 事故を増やす"よくある止血ミス"(やると詰む)
- 例外を握り潰して"異常なし"を作る → 次に起きた時、再現できずに詰む
関連: R04 / R05 - "とりあえずリトライ"で負荷を倍にする → 上限/間隔/タイムアウト無しのリトライは事故を広げる
- UIスレッドで重い処理を回す → 固まった後に"なぜか戻る"が一番厄介
関連: E04 / R06
迷ったらここへ戻る
体系で探す/公開済の最新: S00
用語で詰んだら(壁を壊す): S01
更新方針(この表を最新に保つ)
- 新規公開のたびに、該当行を表へ追加する
- 行は「症状(検索語)→最短リンク」の形で増築する