Praktisches System Design
Im großen Maßstab entwerfen - und deine Abwägungen verteidigen.
Der Höhepunkt: Systeme entwerfen, die skalieren, und die Abwägungen laut durchdenken - die Fähigkeit, die in jedem Senior-Interview und jedem echten Design-Review geprüft wird. Ein wiederholbarer Ansatz für jedes Design-Problem, Kapazitätsabschätzung im Kopf, Caching, Datenbanken im großen Maßstab, Queues zur Entkopplung und Lastglättung und ein vollständiges durchgearbeitetes Design, das alles zusammenführt.
Lektionen in dieser Stufe
- 01
Ein wiederholbarer Ansatz
FortgeschrittenEin Rahmen für jedes Design-Problem oder Interview: funktionale und nicht-funktionale Anforderungen klären, den Maßstab abschätzen, ein grobes Design skizzieren, die schweren Teile vertiefen und dann die Engpässe finden.
14 Min. - 02
Kapazitätsabschätzung
ExperteÜberschlagsrechnung: Anfragen pro Sekunde, Speicher und Bandbreite, Lese/Schreib-Verhältnisse und die Latenzzahlen, die jeder Entwickler im Kopf haben sollte.
15 Min. - 03
Caching
ExperteDas erste Werkzeug im großen Maßstab: Cache-Aside vs. Write-Through vs. Write-Behind, Eviction und TTLs, das schwere Problem der Invalidierung und wo ein CDN passt.
16 Min. - 04
Datenbanken im großen Maßstab
ExperteWenn eine Datenbank nicht reicht: Read-Replicas, Sharding und Partitionierung, SQL vs. NoSQL und die vom CAP-Theorem erzwungene Wahl zwischen Konsistenz und Verfügbarkeit unter einer Partition.
16 Min. - 05
Queues & Lastglättung
ExperteMessage-Queues als Stoßdämpfer eines Systems: Produzenten von Konsumenten entkoppeln, stoßweise Last glätten, Back-Pressure und At-least-once-Zustellung mit idempotenten Konsumenten.
14 Min. - 06
Ein durchgearbeitetes Design
ExperteAlles zusammen an einem Problem - der Entwurf eines skalierbaren URL-Shorteners - von Anforderungen und Abschätzung über das Datenmodell, Caching, Sharding bis zu den Abwägungen, die du verteidigen würdest.
16 Min.