ITSUKI.
技術730 文字2 分

Day 25|再トリアージ — 古い報告を、今の実装で問い直す

#Codex#ソースコードリーディング#図解

この章しょうの答こたえ

昔むかしの再現手順さいげんてじゅん・原因げんいん仮説かせつ・現在げんざい守まもるべき条件じょうけんを切り離きりはなして評価ひょうかする。

Issue に詳くわしい分析ぶんせきがあっても、時間じかんが経へてば実装じっそうは変かわります。同おなじ症状しょうじょうが残のこっているか、原因げんいんだけ変かわったか、再現さいげん条件じょうけんが成立せいりつしなくなったかを、現在げんざいの状態遷移じょうたいせんいから判断はんだんします。

01|図でつかむ

図25|再トリアージ

名前なまえが消きえたことだけで、問題もんだいが解決かいけつしたとは言いえない。

02|3つのポイントで理解する

1. 古い手順をそのまま実行する前に読む

対象たいしょうバージョン、必要ひつような状態じょうたい、失敗しっぱいする操作そうさを抽出ちゅうしゅつします。存在そんざいしなくなったコマンドや処理しょり名めいがあれば、現在げんざいの操作そうさへ対応付たいおうづける必要ひつようがあります。

2. 変わらず守りたい条件を決める

例たとえば「送信そうしん可能かのうな待機たいき入力にゅうりょくが、回復後かいふくごに取り残とりのこされない」という条件じょうけんは、関数名かんすうめいが変かわっても意味いみがあります。これを invariant として現在げんざいの経路けいろを読み直よみなおします。

3. 結論を証拠に合わせる

再現さいげんした、手順てじゅんの前提ぜんていが成立せいりつしない、別べつの原因げんいん候補こうほがある、まだ確認かくにんできない、を分わけます。再現さいげんしなかった一回いっかいだけで、あらゆる経路けいろが直なおったとは結論けつろんしません。

03|ソースで確かめる

以下いかの検索けんさくは Codex リポジトリのルートで実行じっこうします。最初さいしょに対象たいしょう commit を記録きろくし、検索結果けんさくけっかから定義ていぎと呼び出よびだし元もとを一ひとつずつ開ひらいてください。

git rev-parse --short HEAD
rg -n "on_task_complete|maybe_send_next_queued_input" codex-rs

読よむ入口いりぐち: codex-rs/tui/src/chatwidget/turn_runtime.rs 。リンク先さきは照合しょうごうに使つかった固定こてい commit のファイルです。手元てもとの版はんと異ことなる場合ばあいは、上うえの検索語けんさくごから探さがし直なおします。

小さく試す

古ふるい Issue の説明せつめいから関数名かんすうめいを外はずし、利用者りようしゃが観察かんさつできる症状しょうじょうと期待きたいだけで二に文ぶんにまとめます。

04|30秒で復習

  • 症状しょうじょうと古ふるい原因げんいん仮説かせつを分わける。
  • 現在げんざいの状態遷移じょうたいせんいで条件じょうけんを確認かくにんする。
  • 再現さいげん結果けっかに見合みあう結論けつろんを出だす。

全ぜん30章しょうの目次もくじへ