On this page
System Design
👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ
ออกแบบระบบขนาดใหญ่ — สำคัญมากสำหรับระดับ mid-senior
รอบ system design ทดสอบความสามารถในการออกแบบระบบที่รองรับผู้ใช้จำนวนมาก ไม่มีคำตอบเดียวที่ถูก ผู้สัมภาษณ์ดูว่าคุณคิดถึง trade-off ต่าง ๆ อย่างไรและสื่อสารได้ชัดแค่ไหน รอบนี้มักเริ่มมีน้ำหนักตั้งแต่ระดับ mid-level ขึ้นไป
กรอบการตอบ (Framework)
- Requirements — ถามให้ชัดทั้ง functional (ระบบต้องทำอะไรได้) และ non-functional (scale, latency, ความพร้อมใช้งาน)
- Estimation — ประเมินจำนวนผู้ใช้, QPS, ปริมาณข้อมูล/storage แบบคร่าว ๆ
- API design — กำหนด endpoint หลัก ๆ และรูปแบบ request/response
- High-level design — วาด component หลัก: client, load balancer, service, database, cache
- Deep dive — เจาะส่วนสำคัญ เช่น schema ฐานข้อมูล, การ scale, การจัดการ bottleneck
- Trade-offs — สรุปข้อดีข้อเสียของแต่ละทางเลือก
แนวคิดพื้นฐานที่ต้องรู้
- Load balancing — กระจาย request ไปหลายเครื่อง
- Caching — ลดภาระ database ด้วย Redis/Memcached (เข้าใจ cache invalidation)
- Database — เลือกระหว่าง SQL กับ NoSQL ตามรูปแบบข้อมูลและ query
- Replication & Sharding — ทำสำเนาและแบ่งข้อมูลเพื่อ scale
- Message queue — แยกงานแบบ async ด้วย Kafka/RabbitMQ
- CAP theorem — เข้าใจ trade-off ระหว่าง consistency กับ availability
โจทย์ที่เจอบ่อย
ออกแบบ URL shortener, ระบบแชต, news feed, ระบบจองตั๋ว, rate limiter, ระบบอัปโหลดวิดีโอ — ฝึกอธิบายแต่ละอันให้ครบกรอบด้านบน
SQL vs NoSQL
| ประเด็น | SQL | NoSQL |
|---|---|---|
| โครงสร้าง | schema ตายตัว มีความสัมพันธ์ | ยืดหยุ่น schema-less |
| Consistency | แข็งแรง (ACID) | มักเป็น eventual |
| Scale | scale แนวตั้งง่ายกว่า | scale แนวนอนง่ายกว่า |
| เหมาะกับ | ธุรกรรมการเงิน ข้อมูลสัมพันธ์กัน | ข้อมูลมหาศาล อ่าน/เขียนเร็ว |
หัวข้อใหม่ที่ถูกถามเพิ่มในปี 2026
ระบบยุคใหม่มี AI เข้ามาเกี่ยวข้องมากขึ้น ผู้สัมภาษณ์ที่บริษัท product เริ่มถามหัวข้อกลุ่มนี้ — เข้าใจระดับแนวคิดก็พอ ไม่ต้องลงลึกระดับ implement
- Vector database (Pinecone, Weaviate, pgvector) — เก็บ embedding เพื่อค้นแบบ semantic search
- RAG (Retrieval-Augmented Generation) — ต่อ LLM เข้ากับฐานความรู้ของบริษัท
- Event-driven architecture — ออกแบบระบบที่สื่อสารผ่าน event/stream
- Observability — logging, metrics, tracing (เช่น OpenTelemetry) เพื่อมองเห็นปัญหาใน production
- CDN & edge computing — ลด latency ด้วยการประมวลผลใกล้ผู้ใช้
- Rate limiting & idempotency — กันระบบล่มและกัน request ซ้ำ
ระบบที่ควรฝึกออกแบบ
ฝึกอธิบายแต่ละระบบให้ครบกรอบด้านบน เรียงจากง่ายไปยาก
- URL shortener (เริ่มง่ายที่สุด เข้าใจ hashing + redirect)
- Rate limiter
- News feed / Twitter timeline
- ระบบแชต (WhatsApp / LINE)
- ระบบจองตั๋ว / ที่นั่ง (จัดการ concurrency)
- YouTube / ระบบอัปโหลดและสตรีมวิดีโอ
- Google Drive / ระบบเก็บไฟล์
- Search autocomplete