デバッグ実戦
고객사에서 받는 코드에는 테스트가 없고 문서는 코드와 다릅니다. 이 코스는 그런 코드를 증상에서 출발해 고치는 세 가지 기술을 다룹니다. HTTP 응답만 보고 계산 로직의 결함을 좁히는 법, 트레이스백을 읽고 실패 지점을 특정한 뒤 다음번을 위한 계측을 심는 법, 그리고 코드가 아니라 환경이 원인일 때 그것을 가려내는 법입니다.
중급 · 레슨 30 · 실습 10
커리큘럼
症状から原因へ
- ドキュメントとコードが違うとき何を信じるか reading
- 引き継いだAPIを直す lab
- クイズ: 症状から原因へ quiz
コードレベルのデバッグ
- トレースバックは下から上へ読む reading
- トレースバックから計装まで lab
- クイズ: コードレベルのデバッグ quiz
環境の問題を切り分ける
- うちのサーバでは動くんですが reading
- 環境の差を絞る lab
- クイズ: 環境の問題を切り分ける quiz
「遅い」という報告を絞る
- 遅いという言葉を数字に変える reading
- 「遅いです」の一行を四つの数字に lab
- クイズ: 「遅い」という報告を絞る quiz
半分ずつ狭める
- 半分に切れば64版が6回になる reading
- いつから壊れたか — 64版を6回で絞る lab
- クイズ: 二分探索で範囲を縮める quiz
違いの表
- 動くものと動かないものを並べて置く reading
- 動く顧客と動かない顧客 — 差分表で候補を消す lab
- クイズ: 成功と失敗の差分表 quiz
向こうの問題か、こちらの問題か
- 「向こうが落ちてる」の六つの意味 reading
- 向こうが落ちてる — 六つの顔を分けて責任の場所を決める lab
- クイズ: 向こうの問題か、こちらの問題か quiz
資源が尽きるときの症状
- 尽きたのはこちらなのに、エラーはあちらで出る reading
- 午後になると落ちる — 尽きる資源をデータで捕まえる lab
- クイズ: 資源が尽きるときの症状 quiz
順序が保証されないと起きること
- 数が合わないのは順序のせいだ reading
- 8件届いて1件しか残らなかった lab
- クイズ: 順序が保証されないと何が起きるか quiz
やり直せば通る問題
- もう一度やったら通りました reading
- やり直せば通る問題 — 何回回せば直ったと言えるか lab
- クイズ: 間欠的な失敗をデータとして扱う quiz