โหมดมืด
NestJS
NestJS คือ framework backend สำหรับ Node.js ที่ "เอาความเป็นระเบียบของ Spring Boot/Angular มาให้โลก TypeScript" — ใช้แนวคิดหลัก 3 อย่าง:
- decorator (ตัวตกแต่ง) — ฟังก์ชันที่เอาไป "แปะ" บน class/method เพื่อบอก Nest ว่าอันนี้คืออะไร เช่น
@Controller,@Get - dependency injection (DI — การ "ฉีด" สิ่งที่ class นี้ต้องพึ่งเข้ามาให้แทนการไปหยิบเอง)
- module system — โครงไฟล์แบบที่ Spring เคยทำกับ Java
หนังสือเล่มนี้สอน NestJS จากศูนย์ — เริ่มจาก "ทำไมต้องมี framework แบบนี้" ไปถึง production-grade microservices
ก่อนเริ่ม — ควรผ่าน TypeScript มาก่อน อย่างน้อยถึงบทที่ 8 (Class + Modifier) (ถ้าเคยใช้ Spring Boot มาก่อนจะคุ้นเร็วขึ้น แต่ไม่จำเป็น — ไม่เคยเขียน Spring Boot มาก็เริ่มได้ปกติ)
💡 แนะนำอย่างยิ่ง: ผ่าน Node.js มาก่อน — NestJS ยืนบน Node + Express (เฟรมเวิร์กเว็บของ Node ที่ Nest ใช้เป็นฐานอยู่ข้างใต้) ถ้ายังไม่รู้จัก
http, npm, middleware (โค้ดที่คั่นกลางระหว่าง request กับ response เช่น log หรือเช็ค token ก่อนเข้าจริง), async/error ฝั่ง server บทแรก ๆ ของ Nest จะกระโดดเร็วเกินไปNode track ปูพื้นตรงนั้นให้ครบก่อน แล้วค่อยกลับมาที่นี่ จะเข้าใจได้ง่ายขึ้นว่า decorator (เช่น
@Controller,@Get) ทำงานอยู่เบื้องหลังอย่างไร
โครงสร้างหนังสือ
- 00 — NestJS คืออะไร + ทำไมต้องมี — แนะนำ decorator, DI (Dependency Injection), และ IoC (Inversion of Control — การ "กลับทิศ" การควบคุม: แทนที่โค้ดของเราจะไปหยิบของเอง ให้ framework เป็นคนเอามายื่นให้)
- 01 — Modules + Providers (รากของ DI container)
- 02 — Controllers + Routing (REST API แรก)
- 03 — Middleware, Pipes, Guards, Interceptors, Filters
- 04 — Database (TypeORM + Prisma) — เลือกตัวไหน อย่างไร
- 05 — Authentication + Authorization (JWT, Passport, RBAC)
- 06 — Testing (unit + e2e + Test Doubles)
- 07 — Microservices + GraphQL (TCP/Redis/Kafka, code-first)
- 08 — Production Readiness (logging, config, health, deployment)
คุณจะได้อะไรเมื่ออ่านจบ
- เข้าใจ DI container ของ Nest ว่าทำงานยังไง (ไม่ใช่แค่ใช้เป็น)
- เขียน REST API + GraphQL + microservices ได้จริง
- รู้ว่าเมื่อไหร่ควรใช้ Nest เมื่อไหร่ไม่ควร
- เลือกระหว่าง TypeORM/Prisma/Drizzle เป็น
- ทำ auth ที่ปลอดภัยจริง (ไม่ใช่แค่ copy ตัวอย่าง)
- deploy ขึ้น production ได้