良いサービスを作る CS — 教科書の概念を計測で学び直す
データ構造・並行性・キャッシュ・時計を測って選ぶ
중급 · レッスン 30 · ラボ 10
カリキュラム
計算量を実測で確かめる
- ビッグオーは暗記せず、倍にして測る reading
- 倍化実験で隠れた二次を見つけて直す lab
- クイズ: 計算量を実測で quiz
データ構造の選択が遅延とコストを変える — ハッシュ・木・ヒープ
- 何を問うかが構造を選ぶ — 探査回数と高さで先に数える reading
- ハッシュ・木・ヒープを自分で作って数える lab
- クイズ: ハッシュ・木・ヒープの選び方 quiz
LRU キャッシュとブルームフィルタを自分で作る
- LRU は最近を信じ、ブルームフィルタは「ない」だけを確信する reading
- LRU とブルームフィルタを作って測る lab
- クイズ: LRU とブルームフィルタ quiz
競合状態は await の間にも起きる — スレッド・GIL・asyncio
メモリと GC が遅延のテールを作る
- 参照カウント、循環コレクタ、そして増える行 reading
- GC の一時停止と漏れる行を数字で見つける lab
- クイズ: メモリと GC が作る遅延のテール quiz
文字列の長さは三つ — バイト・コードポイント・文字、そしてタイムゾーン
浮動小数点がサービスを欺く場所
キャッシュが DB より長く嘘をつく瞬間 — キャッシュの一貫性
- 無効化の順序が作る古い値 reading
- 割り込み順序でキャッシュの嘘を測る lab
- クイズ: キャッシュの一貫性と割り込み quiz
時計と順序 — ランポート時計・ベクトル時計・再試行
- 番号は因果を守り、ベクトルは並行を見分ける reading
- ランポート・ベクトル時計を付けて失われた更新と再試行を数える lab
- クイズ: 時計と順序 quiz
不変条件はデータベースが守る — 制約と再試行ループ
- 確認してから書くと壊れ、制約にすれば守られる reading
- 制約で防ぎ、40001 だけを再試行する lab
- クイズ: 不変条件はデータベースが守る quiz