FIELD NOTES FOR AI-ERA DEVELOPERS

AI開発メモ

「AIを使え」に、現場の地に足ついた一歩で応える開発メディア

無料ツール|印刷用チェックリスト

AIにトランザクション境界と排他制御を相談するチェックリスト

全部に○が要るわけではありません。**気になった行だけ**で十分です。

① 囲む

  • 壊れてはいけない条件を、1行で書けたか
  • その条件を守るために同時に確定させたい更新を、洗い出したか
  • トランザクションの境界を、コードの上で指させるか
  • 外部API・メール送信・ファイル生成・AI推論を、境界の外に出したか
  • 人の入力や画面操作を、またいでいないか
  • 関係のない更新まで、囲みに入っていないか

② 守る

  • データベースの制約で守れる条件がないか、先に確かめたか
  • 「読んで・計算して・書く」を、条件つきの1文の更新にできないか試したか
  • 排他制御の方式(制約/1文UPDATE/楽観/悲観)を、先に1つ選んだか
  • 楽観ロックなら、更新件数が0だったときの処理を書いたか
  • 悲観ロックなら、押さえている間に重い処理を挟んでいないか
  • ロックを取る順番を、システム全体で1つに決めて書き残したか
  • 分離レベルを、動いている環境の実際の設定で確認したか
  • ロックの範囲が広がりすぎていないか、実行計画を見たか

③ 諦める

  • ロック待ちのタイムアウトを決めたか
  • デッドロック時の再試行の回数と待ち方を決めたか
  • 再試行してよい処理と、してはいけない処理を分けたか
  • 楽観ロックで負けたとき、利用者に伝えて読み直せるようにしたか
  • 例外時に、確実にロールバックされる形になっているか
  • 競合・デッドロックの件数をログに残しているか
  • 同時更新のテスト(同じ行に2件・残り1に2件・逆順で2件)を書いたか

この内容は記事「AIにトランザクション境界と排他制御を相談する|整合性の詰め方」のチェックリストです。印刷してそのままお使いいただけます。 / 無料ツール一覧へ