ก้าวต่อไป
คุณจบโปรเจกต์ที่ #2 แล้ว
หัวข้อที่มีชื่อว่า “คุณจบโปรเจกต์ที่ #2 แล้ว”DevBlog คือ โปรเจกต์ #2 ของซีรีส์ Real-World Projects เจ็ดโปรเจกต์บน Learn Hub และตอนนี้คุณสร้างจนจบแล้ว TaskFlow — โปรเจกต์ #1 — live อยู่แล้ว: บอร์ด Kanban แบบเรียลไทม์ใน Rust/Axum ด้วย PostgreSQL, Redis, เลเยอร์ WebSocket, frontend Astro และ JWT auth ถ้าคุณเคยสร้างตัวนั้นมาก่อน จะจำแพตเทิร์นที่ยกมาตรงนี้ได้ ทั้ง auth, testing และคอนเทนเนอร์ เพียงแต่หล่อใหม่ด้วย GraphQL, MongoDB และ Next.js แทน REST, PostgreSQL และ Astro นั่นคือจุดประสงค์ทั้งหมดของซีรีส์: ทักษะทบต้นจากโปรเจกต์หนึ่งไปอีกโปรเจกต์
การ deploy DevBlog ของจริงคือ CloudDeploy
หัวข้อที่มีชื่อว่า “การ deploy DevBlog ของจริงคือ CloudDeploy”คุณอาจสังเกตว่า DevBlog หยุดที่ docker compose up นั่นคือสแตกในเครื่องที่สมบูรณ์ แต่ยังไม่ใช่การ deploy ระดับ production — ไม่มี cloud provider ไม่มี CI/CD pipeline ไม่มี Infrastructure as Code และไม่มี observability นั่นเป็นความตั้งใจ เพราะ การพาแอปพลิเคชันไปจนถึง production เป็นโปรเจกต์แยกต่างหาก: CloudDeploy ที่เป็น capstone (#7) workload ที่ CloudDeploy นำไป deploy คือ Helm chart ของ ShopMicro แต่ศาสตร์ที่ใช้ก็คือศาสตร์เดียวกับที่ DevBlog ต้องการ — image แบบ multi-stage และไฟล์ Compose ที่คุณทำเสร็จตรงนี้คือ artifact แบบเดียวกับที่ CloudDeploy หยิบไปวางบน infrastructure จริง ดังนั้นคำถาม “จะส่งของนี้ขึ้นจริงยังไง?” ไม่ได้ถูกทิ้งไว้ไม่มีคำตอบ แต่ถูกตอบโดยโปรเจกต์ถัดไปในซีรีส์เดียวกัน
ส่วนที่เหลือของซีรีส์
หัวข้อที่มีชื่อว่า “ส่วนที่เหลือของซีรีส์”ซีรีส์รันตามลำดับ — TaskFlow → DevBlog → ShopMicro → FitTrack → Mosaic → OfflineNotes → CloudDeploy — ทั้งเจ็ด live แล้ว และนี่คือสิ่งที่มาต่อจาก DevBlog:
3 · ShopMicro — ตัวถัดไป backend e-commerce ที่สร้างเป็น microservices: เซอร์วิส Go หลายตัวที่สื่อสารผ่าน gRPC ประสาน order flow ผ่าน Kafka และ RabbitMQ ด้วย saga และ outbox pattern แต่ละตัวมี PostgreSQL ของตัวเอง แล้ว deploy ขึ้น Kubernetes ด้วย Helm ต่อยอดจากคอร์ส Go, gRPC, Microservices, Kafka, RabbitMQ และ Kubernetes และแนะนำการแยกเซอร์วิส การสื่อสารระหว่างเซอร์วิส และ eventual consistency — ก้าวต่อยอดตามธรรมชาติจาก API เดียวของ DevBlog
4 · FitTrack แอปฟิตเนสแบบ mobile-first: client มือถือเป็น Flutter กับเว็บคู่กันเป็น Svelte บน backend Python/FastAPI ตัวเดียวที่ใช้ Supabase ต่อยอดจากคอร์ส Python, Supabase, Flutter และ Svelte และแนะนำการสร้างผลิตภัณฑ์เดียวให้สองไคลเอนต์บน backend ร่วมกัน
5 · Mosaic storefront แบบ micro-frontend: React shell จะ compose remote ของ React, Svelte และ Astro ตอน runtime ด้วย Module Federation 2.0, Web Components เป็นขอบเขตกลางที่เชื่อมทุก framework และแต่ละ slice มี BFF บาง ๆ ที่เขียนด้วย Hono ต่อยอดจากคอร์ส React, Svelte, Astro และ Web Components และแนะนำ design system ที่ใช้ร่วมกัน, การสื่อสารข้าม slice, routing ที่ host เป็นเจ้าของ, ความทนทานเมื่อ remote ล่ม และการ deploy แยกราย slice — ไอเดีย “service อิสระ” ของ ShopMicro ที่นำมาใช้กับฝั่ง frontend
6 · OfflineNotes PWA แบบ offline-first: client เขียนด้วย TypeScript จาก Web Components เก็บโน้ตใน IndexedDB รวมการแก้ไขด้วย CRDT แบบ Rust→WASM แล้ว sync ได้โดยไม่ conflict เมื่อการเชื่อมต่อกลับมา ต่อยอดจากคอร์ส TypeScript, Web Components, Browser Storage, PWA และ WebAssembly และแนะนำ conflict resolution, background sync และสถาปัตยกรรม local-first
7 · CloudDeploy capstone ที่อธิบายไว้ข้างบน: Terraform และ Terragrunt ข้าม AWS, GCP และ Azure, Kubernetes, CI/CD, Datadog, Keycloak และ GrowthBook ผูกซีรีส์เข้าด้วยกันโดย deploy Helm chart ของ ShopMicro บน infrastructure จริง
หาได้ที่ Learn Hub
หัวข้อที่มีชื่อว่า “หาได้ที่ Learn Hub”ทั้งเจ็ดโปรเจกต์อยู่ในหมวด Real-World Projects ของ Learn Hub เคียงข้างคอร์สเดี่ยวที่แต่ละโปรเจกต์ต่อยอด ถ้าส่วนใดของ DevBlog ทำให้คุณอยากรู้ลึกกว่านี้ — GraphQL, MongoDB, NestJS, Next.js, Docker — คอร์สเฉพาะหัวข้อที่อยู่เบื้องหลังโมดูลนั้นคือที่ที่ควรไปเจาะลึก ก่อนที่โปรเจกต์ถัดไปจะเรียกใช้ความรู้ชุดนั้น ทุกโปรเจกต์ live แล้ว และซีรีส์ไปต่อที่ ShopMicro
คุณสร้าง DevBlog เสร็จแล้ว โปรเจกต์ #2 ของซีรีส์ Real-World Projects และตอนนี้คุณรู้แล้วว่าโปรเจกต์นี้อยู่ตรงไหน: หลัง TaskFlow และก่อน ShopMicro โดยมี FitTrack, Mosaic กับ OfflineNotes ตามมา และปิดท้ายด้วย CloudDeploy ที่เป็นโปรเจกต์ที่พาซีรีส์นี้ขึ้น cloud จริง ทั้งหมดอยู่ในหมวด Real-World Projects ของ Learn Hub ขอบคุณที่สร้าง DevBlog มาด้วยกัน — เอาไปต่อยอดให้เป็นของคุณได้เลย