ก่อนเขียนโค้ด ต้องเลือกก่อนว่า จะสร้างบนอะไร — Framework ตัวไหน, Database แบบไหน, ออกแบบโครงสร้างข้อมูล (Schema) ยังไง. การตัดสินใจชุดนี้ เปลี่ยนทีหลังแพงมาก
สำหรับคนที่อยากเข้าใจว่าทำไมช่วงแรก ๆ ทีมถึง "ยังไม่เห็นโค้ดสักบรรทัด" — เพราะกำลังตัดสินใจเรื่องที่กระทบทั้งโปรเจกต์
ADR (Architecture Decision Record) คือการออกแบบโครงสร้างระบบและ บันทึกว่าทำไมถึงเลือกแบบนั้น. มันบังคับให้ทีมคิดและจดเหตุผลของการตัดสินใจสำคัญ — เพื่อที่ในอนาคตจะได้รู้ว่า "ทำไมตอนนั้นเลือกแบบนี้" ไม่ใช่มาเดาทีหลัง
ADR หนึ่งใบไม่ต้องยาว — แค่ 5 หัวข้อก็พอ. ลองสั่ง AI ร่างให้ตามแบบนี้:
ช่วยร่าง ADR สำหรับการตัดสินใจนี้ ในรูปแบบ: - หัวข้อ: เรื่องที่กำลังตัดสินใจ - บริบท: ตอนนี้เจอปัญหา/ข้อจำกัดอะไร - ทางเลือก: มีกี่ทาง แต่ละทางข้อดี-ข้อเสีย - ตัดสินใจ: เลือกอะไร เพราะอะไร - ผลที่ตามมา: ได้อะไร เสียอะไร แลกอะไร เรื่องที่จะตัดสินใจคือ: [พิมพ์เรื่องของคุณ]
Tech Stack คือชุดเครื่องมือที่ใช้สร้าง — Framework (โครงหลักของโปรแกรม), Database (ที่เก็บข้อมูล), และ Schema (โครงสร้างว่าข้อมูลจะจัดเก็บแบบไหน มีตารางอะไร เชื่อมกันยังไง). เลือกให้เหมาะกับงานและทีม ไม่ใช่เลือกตามกระแส
| ดูที่ | SQL (ตาราง) | NoSQL (ยืดหยุ่น) |
|---|---|---|
| รูปแบบข้อมูล | มีความสัมพันธ์ชัด เชื่อมหลายตาราง | โครงไม่ตายตัว เปลี่ยนบ่อย |
| รายงาน/การเงิน | รวมยอด-ตรวจสอบง่าย | ต้องเขียนเพิ่มเอง |
| โตระดับมหาศาล | ต้องวางแผนดี | กระจายโหลดง่ายกว่า |
| ตัวอย่างงาน | บัญชี · สต๊อก · HR | แชต · log · แคตตาล็อก |
งานธุรกิจทั่วไป (ขาย/สต๊อก/บัญชี/พนักงาน) SQL คือคำตอบเริ่มต้นที่ปลอดภัย — เลือก NoSQL ต่อเมื่อมีเหตุผลชัดว่าทำไม
เลือกฐานผิด = เหมือนสร้างตึกผิดเสาเข็ม. พอระบบโตขึ้น การจะเปลี่ยน Database หรือรื้อ Schema กระทบโค้ดแทบทุกส่วน ต้องรื้อและเทสใหม่หมด. นี่คือเหตุผลที่ด่านนี้ "ช้าแต่ต้องคิดให้รอบคอบ" ดีกว่ารีบแล้วมาเจ็บทีหลัง
AI ช่วย เสนอทางเลือกและข้อดี-ข้อเสียของแต่ละ Stack ได้ดี และช่วยร่าง Schema เบื้องต้นได้. แต่การ "เคาะ" ว่าจะเอาตัวไหน — เพราะมันผูกกับทีม งบ ทักษะ และอนาคตธุรกิจ — ยังต้องเป็นคนที่รับผิดชอบโปรเจกต์ตัดสินใจ
| ADR คือ | ออกแบบโครงสร้าง + จดเหตุผลที่เลือก |
| ต้องเลือก | Framework · Database · Schema |
| ถ้าเลือกผิด | เปลี่ยนทีหลังแพงมาก รื้อทั้งระบบ |
| AI ช่วย | เสนอทางเลือก คนเคาะเอง |