無料サンプルレッスン · 登録不要
約4分 · ブラウザで実際のPython
支払いの再試行が危険な理由 危険 — そしてそれを修正する一行。
01ステーク
チェックアウト中に顧客の接続が切れ、アプリが静かに 支払いを再試行 —3回。単純なコードは3回実行され、顧客は1つの注文に対して 3× 3回請求され、今やあなたの深夜のページです。このバグは実際の企業に実際の損害を与えています。これを不可能にしましょう。
02メンタルモデル
冪等性:同じリクエスト、同じ効果 — 何回でも。
操作は 冪等 1回実行しても10回実行しても同じ結果になること。コツは、各リクエストに一意の キー, remember the keys you've handled, and make a repeat key a no-op. Retries become safe.
03見る
キーがない場合 — リトライのたびに課金される
クライアント
リトライ×3
課金3冪等キーがある場合 — リトライは何もしない
クライアント
リトライ×3
idem-key課金104あなたの番 — 修正しましょう
壊れたコードはこちら charge(). 実行すると3回課金されます。次に、同じキーが何もしないようにガードを追加して、再度実行してください。実際のPythonがここで動作します。
05証明する — 雰囲気ではなく
緑は意味する 3回の再試行 → 1回の課金. あなたは冪等性について読んだのではなく、実装し、チェックで確認しました。それがすべてのSageレッスンです:メンタルモデル、図、そして懐疑論者が実行できる証明。自己採点のクイズも「わかった気がする」もありません。