Skip to content

Volume 0 · Getting Started

เล่มนี้เขียนเป็นเล่มสุดท้ายของคู่มือฉบับนี้ — ตอนที่เขียน Volume 3 ถึง 20 เสร็จหมดแล้ว จึงเป็นการสังเคราะห์ (synthesis) จากทุกสิ่งที่เอกสารทั้งหมดค้นพบ ไม่ใช่การสำรวจโค้ดจากศูนย์ ถ้าข้อความใดในเล่มนี้ดูขัดกับ volume ต้นทาง ให้ถือ volume ต้นทางเป็นความจริง แล้วแจ้งแก้ที่นี่

Deep Redo status (2026-07-14): Per-service volumes (Vol 3–9) ถูกเขียนใหม่ให้ใกล้ความลึกของ docs-v1-archive/ แล้ว (~52k บรรทัดรวม cross-cutting). Critical security ชุดใหม่ดู Vol 12.5. ตัวเลข debt 275 ใน Vol 17 ยังเป็น baseline จาก shallow pass — ใช้ร่วมกับ 17.4 addendum จนกว่าจะ reconcile. VitePress npm run build ผ่านแล้วหลังแก้ mustache/N:M:path fences.


เล่มนี้คืออะไร สำหรับใคร

VTRC Knowledge Manual v2 เป็นคู่มืออ้างอิงภายในสำหรับแพลตฟอร์ม HR/Welfare ของสภากาชาดไทย ครอบคลุม 31 repositories ที่มีโค้ดจริง (บวก 8 repositories placeholder ที่ยังไม่มีโค้ด) กระจายอยู่ใน 7 กลุ่มแพลตฟอร์ม — ดูรายชื่อทั้งหมดที่ repo fact-sheet index

ผู้อ่านหลักคือ วิศวกรที่เข้ามาดูแลระบบต่อ ไม่ว่าจะเป็นคนใหม่ที่ไม่เคยเห็นระบบนี้มาก่อน หรือวิศวกรเดิมที่ต้องการแผนที่ข้ามบริการที่ไม่มีใครเขียนไว้มาก่อน เอกสารนี้ไม่ต้องใช้ความรู้เฉพาะทางมาก่อน แต่ถือว่าผู้อ่านเขียนโค้ดเป็นและคุ้นเคยกับ concept ทั่วไปของเว็บ/API (HTTP, database, authentication)

เอกสารนี้ ไม่ใช่ product manual สำหรับผู้ใช้ปลายทาง (พนักงาน/HR) และไม่ใช่ marketing material — น้ำเสียงคือ senior engineer ที่ทำระบบจริงเขียนให้เพื่อนร่วมทีมอ่าน


โครงสร้างคู่มือ — ทำไมถึงแบ่งเป็น 21 volume, 4 ชั้น

คู่มือแบ่งเป็น 21 volume (0 ถึง 20) จัดเป็น 4 ชั้นตามลำดับตัวเลข — การจัดลำดับนี้ไม่ใช่อำเภอใจ แต่สะท้อนลำดับที่ผู้อ่านควรซึมซับข้อมูล จากภาพกว้างไปเจาะลึก แล้ววนกลับมาที่ภาพกว้างอีกครั้งในรูปของ findings/roadmap

ชั้นที่ 1 — Foundation (Vol 0-2)
  │  ปูพื้น: คู่มือนี้คืออะไร (0) → ธุรกิจคืออะไร (1) → สถาปัตยกรรมเป็นอย่างไร (2)

ชั้นที่ 2 — Per-service deep dive (Vol 3-10)
  │  ลงรายละเอียดทีละกลุ่มแพลตฟอร์ม 8 เล่ม ตามลำดับที่ระบบถูกแยกออกจาก legacy core:
  │  Legacy Core (3) → Frontends (4) → 2way (5) → Domain Microservices (6)
  │  → Meeting (7) → Mobile (8) → OCR/Aux (9) → Placeholder repos (10)

ชั้นที่ 3 — Cross-cutting (Vol 11-16)
  │  สังเคราะห์ข้ามทุก repo ในแต่ละ "เลนส์": data (11), security (12), API (13),
  │  business logic (14), infrastructure (15), runbook สำหรับ on-call (16)

ชั้นที่ 4 — Findings & Roadmap (Vol 17-20)
     รวมหนี้ทางเทคนิคทั้งหมด (17) → เจาะ security ต่อ (18) → แผนแก้ (19) → ดัชนีค้นหา (20)

เหตุผลของลำดับนี้ — Volume 3-10 แต่ละเล่มตอบคำถาม "repo นี้ทำงานอย่างไร" ได้ดี แต่ไม่มีเล่มไหนตอบคำถามระดับแพลตฟอร์มเช่น "ถ้า secret ตัวหนึ่งรั่ว กระทบกี่ repo" หรือ "ใครเรียกใครทั้งระบบ" — Volume 11-16 จึงเกิดขึ้นเพื่ออุดช่องว่างนั้นโดยเฉพาะ (ดู Volume 11 § ทำไมต้องมี Volume แยก เป็นตัวอย่างของการให้เหตุผลนี้ซ้ำในทุกเล่มชั้น 3) ส่วน Volume 17-20 แปลง finding ทั้งหมดที่สะสมมาจากชั้น 2-3 เป็นทะเบียนที่ตรวจสอบย้อนกลับได้และแผนงานที่ลงมือทำได้จริง

Volume 0-2 (ชั้นที่ 1) เขียนเป็นลำดับสุดท้าย เพราะต้องมีเนื้อหาของชั้น 2-4 ครบก่อนถึงจะสังเคราะห์ภาพรวมได้อย่างซื่อตรงกับหลักฐาน — นี่คือเหตุผลที่ผู้อ่านเล่มนี้จะเห็น citation ชี้ไปยัง volume อื่นเป็นส่วนใหญ่ แทนที่จะเป็น file:line ตรงเหมือนเล่มอื่น


แผนที่ 7 กลุ่มแพลตฟอร์ม (โดยย่อ)

กลุ่มRepositoryVolume
Legacy Corevtrc-api, cu-central-api, centralize-apiVol 3
Web Frontendsvtrc-web, vtrc-rc-backoffice, vtrc-backoffice, vtrc-backoffice-newVol 4
2way Platform2way-api, 2way-batch, 2way-line-service, 2way-meeting-backoffice, 2way-vtrc-apiVol 5
Domain Microservicesbenefit-api, chat-center-api, job-scheduler-api, workflow-api, recruitment-api, ai-recruitment-api, pms-api, sso-api, vtrc-commonVol 6
Meeting Platformmeeting-vtrc-api, meeting-backoffice, meeting-backoffice-newVol 7
Mobilevtrc-mobile, new-vtrc-mobile, vtrc-application-frontVol 8
OCR & Auxiliaryvtrc-ocr-api, report-log, recruitment-web, interns_playgroundVol 9
(Placeholder — ไม่มีโค้ด)attendance-api, auth-api, career-api, hrservice-api, learning-api, notification-api, payroll-api, performing-apiVol 10

รายละเอียดของแต่ละกลุ่ม (stack จริง, ความสัมพันธ์ข้าม repo, ข้อคลาดเคลื่อนที่พบระหว่างตรวจสอบ) อยู่ที่ Volume 2 — เล่มนี้ให้แค่แผนที่สำหรับนำทางไปเล่มที่ถูกต้อง


วิธีนำทาง — ถามคำถามนี้ก่อนเปิดเล่มไหน

ถ้าอยากรู้...ไปที่
เข้าใจ repo หนึ่งตัวโดยเฉพาะ (เช่น benefit-api ทำงานอย่างไร)Volume ของกลุ่มนั้น (ดูตารางด้านบน) → subfolder ของ repo นั้น
"ใครเรียกใคร" ข้ามทั้งแพลตฟอร์มVolume 13 · API Reference § 13.3 Inter-service map — 34 ความสัมพันธ์ caller→callee ที่ยืนยันจากโค้ด
service ไหนต่อ database ของ service อื่นตรง (ไม่ผ่าน API)Volume 11 · Data Model § 11.2 Cross-service coupling
ระบบตอนนี้พังตรงไหน / เสี่ยงอะไรVolume 17 · Technical Debt Register (ภาพรวมทุก category) หรือ Volume 18 · Security Review Findings (เฉพาะ security)
กำลังจะวางแผนแก้ไข ควรเริ่มตรงไหนก่อนVolume 19 · Modernization Roadmap — จัดตามขอบฟ้า 90 วัน / 6 เดือน / 12 เดือน จาก deep ROI
กำลัง debug incident ที่เกิดขึ้นจริง ไม่รู้ต้องดูโค้ดตรงไหนVolume 16 · Operational Runbooks
อยากรู้ว่า secret ตัวหนึ่งรั่วแล้วกระทบใครบ้างVolume 11 · Data Model § 11.4 Shared secrets & credentials
อยากเข้าใจ business process (การลา, การเบิกสวัสดิการ, การสรรหา) ก่อนเปิดโค้ดVolume 1 · Business Context หรือ Volume 14 · Business Logic & Workflows
ไม่รู้จะเริ่มตรงไหนเลยอ่านเล่มนี้ต่อจนจบ แล้วดู "ถ้าจะอ่านแค่ 5 อย่าง" ด้านล่าง

ถ้าจะอ่านแค่ 5 อย่างในคู่มือทั้งเล่ม

ถ้าเวลาน้อยมาก นี่คือ 5 หน้าที่ให้ผลตอบแทนสูงสุดต่อเวลาที่ใช้อ่าน:

  1. Canonical Truths — ข้อเท็จจริงยืนยันจากโค้ดที่ผิดพลาดบ่อยที่สุดถ้าอ่านแบบผิวเผิน (พอร์ต, ชื่อ service ที่คล้ายกัน, branch canonical) อ่านก่อนเชื่อ claim ใดๆ ในคู่มือ
  2. Volume 13 § 13.3 Inter-service map — แผนที่ "ใครเรียกใคร" ทั้งแพลตฟอร์ม เห็นภาพเดียวว่า vtrc-api/cu-central-api คือ hub ที่ถ้าล่มกระทบทุกอย่าง
  3. Volume 12 § 12.3 + 12.5 Deep Redo addendum — Critical security ชุด baseline + ชุดใหม่หลัง deep scorecards (backdoors, secrets-in-git, SQLi)
  4. Volume 11 § 11.2 Cross-service coupling — เหตุผลว่าทำไม VTRC ไม่ใช่ microservices ตามตำรา แต่เป็น "distributed monolith" ที่ schema เปลี่ยนจุดเดียวกระทบหลาย repo
  5. Volume 2 · Architecture & Topology — ภาพรวมสถาปัตยกรรมระดับ platform-group พร้อม topology diagram สรุปจากทั้ง 4 ข้อข้างต้น

Citation convention — วิธีอ่านการอ้างอิงในคู่มือนี้

ทุก claim ในคู่มือ (ยกเว้นเนื้อหาสังเคราะห์ในเล่มนี้กับ Vol 1-2 ที่ชี้กลับไปยัง volume ต้นทางเป็นหลัก) ต้องมี citation แบบ file:line ตัวอย่าง:

cu-central-api ใช้ LDAP สำหรับ authentication (cu-central-api/main-api/src/config.js:20)

Branch annotation — repo จำนวนมากมี default branch (main/master) ที่ว่างหรือมีโค้ดน้อยกว่า branch ที่ deploy จริง เมื่อ citation อ้างถึง repo เหล่านี้ ต้องระบุ branch ด้วยเสมอ:

benefit-api/src/main.ts (branch: prod):42

ดูตาราง branch canonical ของทุก repo ที่ไม่ตรงกับ default branch ที่ Canonical Truths § Branch topology

ถ้าพบข้อความที่ไม่มี citation หรือดูน่าสงสัย ให้เปิดไฟล์ที่อ้างถึงเพื่อยืนยันก่อนเชื่อเสมอ — คู่มือเขียนจากโค้ดที่ commit ไว้ ณ วันที่ตรวจสอบ (2026-07-13) ไม่ใช่จากการสังเกต production จริง


Debt ID scheme — สัญกรณ์ที่ใช้ทั่วทั้งคู่มือ

ทุก finding ที่นับเป็นหนี้ทางเทคนิคจะได้ debt ID รูปแบบ {PREFIX}-{REPO}-{NUMBER} เช่น SEC-BENEFIT-02, CORR-WORKFLOW-01

Prefixหมวด
SEC-Security
PERF-Performance
CORR-Correctness / data integrity
LEG-Legacy / EOL / dependency
QUAL-Code quality
OBS-Observability

ID เหล่านี้เกิดครั้งแรกที่ scorecard ของแต่ละ repo (บทสุดท้ายของ Vol 3-9) ไหลเข้า Volume 17 · Technical Debt Register เป็นทะเบียนกลาง (275 จาก shallow pass + Critical ใหม่ใน 17.4 ที่ยังไม่ merge ครบ) รายการ SEC- ระดับ Critical/High ถูกขยายใน Volume 18 ส่วนแผนแก้ไขอยู่ใน Volume 19Volume 20 § Debt ID index มีดัชนี flat สำหรับค้นหาเร็ว


v1 vs v2 — ทำไมต้องเขียนใหม่ทั้งเล่ม

v1 (เก็บไว้ที่ docs-v1-archive/) ครอบคลุมเฉพาะ 5 legacy service (vtrc-api, cu-central-api, centralize-api, vtrc-web, vtrc-rc-backoffice) ด้วยความลึกที่ค่อนข้างมาก แต่แพลตฟอร์มจริงในปี 2026 ขยายออกเป็น 31 repositories ที่มีโค้ดจริง — v1 จึงไม่มีข้อมูลของ 2way Platform, Domain Microservices, Meeting Platform, Mobile รุ่นใหม่, และ OCR/Auxiliary เลย

v2 (เล่มนี้) ขยายให้ครอบทั้ง 31 repositories ที่มีความลึกใกล้เคียงกับที่ v1 ทำกับ 5 repo เดิม (per-repo deep dive อยู่ใน Volume 3-10) ส่วนอีก 8 repositories ที่เป็น placeholder ว่างเปล่าถูกบันทึกสถานะไว้ใน Volume 10 เพื่อความสมบูรณ์ ไม่ใช่เพราะมีเนื้อหาให้เจาะลึก

สิ่งที่ v2 เพิ่มเข้ามาซึ่ง v1 ไม่มี — 10 volume ที่ไม่มีใน v1 เลย: Volume 0-2 (foundation แบบขยาย), Volume 11-16 (cross-cutting synthesis ข้าม repo ทั้งหมด — data model, security, API, business logic, infrastructure, runbook), และ Volume 17-20 (findings/roadmap แบบรวมศูนย์) — เหตุผลคือเมื่อจำนวน repo เพิ่มจาก 5 เป็น 31 คำถามที่สำคัญที่สุดไม่ใช่ "repo แต่ละตัวทำงานอย่างไร" (ตอบได้จาก deep dive) แต่คือ "ระบบทั้งก้อนเชื่อมกันอย่างไรและเสี่ยงร่วมกันตรงไหน" ซึ่งต้องมี volume สังเคราะห์แยกจึงตอบได้


ขั้นตอนถัดไป

  • ยังไม่คุ้นเคยกับธุรกิจของ VTRC เลย → ไป Volume 1 · Business Context
  • อยากเห็นภาพสถาปัตยกรรมก่อนลงรายละเอียด repo → ไป Volume 2 · Architecture & Topology
  • รู้ตัวเองต้องดูแล repo ไหนอยู่แล้ว → ไปที่ Volume ของกลุ่มนั้นตรง (ดูตารางด้านบน)