🛠️ Implementation Specification
แนวทางการพัฬนาและมาตรฐานทางเทคนิคของระบบ LCBP3-DMS
เอกสารชุดนี้รวบรวมมาตรฐานการเขียนโปรแกรม แนวทางการพัฒนา และรายละเอียดการนำสถาปัตยกรรมไปใช้งานจริง ทั้งในส่วนของ Backend และ Frontend
📊 Document Status
| Attribute | Value |
|---|---|
| Version | 1.8.6 |
| Status | Active |
| Last Updated | 2026-04-10 |
| Owner | Nattanin Peancharoen |
| Classification | Internal Technical Documentation |
📚 Table of Contents
- 🛠️ Implementation Specification
🎯 หลักการพัฒนาหลัก (Core Principles)
เพื่อให้ระบบมีความมั่นคง ยืดหยุ่น และดูแลรักษาง่าย การพัฒนาต้องยึดหลักการดังนี้:
- Type Safety Everywhere - ใช้ TypeScript อย่างเข้มงวด ห้ามใช้
any - Modular Dependency - แยก Logic ตาม Module หลีกเลี่ยง Circular Dependency
- Idempotency - การสร้างหรือแก้ไขข้อมูลต้องรองรับการกดซ้ำได้ (Idempotency-Key)
- Security by Default - ตรวจสอบ Permission (RBAC) และ Validation ในทุก Endpoint
- Fail Fast & Log Everything - ดักจับ Error ตั้งแต่เนิ่นๆ และบันทึก Audit Logs ที่สำคัญ
📖 คู่มือการพัฒนา (Implementation Guides)
1. FullStack JS Guidelines
แนวทางการพัฒนาภาพรวมทั้งระบบ (v1.8.1 — includes NestJS 11 Patterns)
- โครงสร้างโปรเจกต์ (Monorepo-like focus)
- Naming Conventions & Code Style
- Secrets & Environment Management
- Two-Phase File Storage Algorithm
- Double-Lock Mechanism for Numbering
2. Backend Guidelines
แนวทางการพัฒนา NestJS 11 Backend
- Modular Architecture Detail
- DTO Validation & Transformer
- TypeORM Best Practices & Optimistic Locking
- JWT Authentication & CASL Authorization
- BullMQ for Background Jobs
3. Frontend Guidelines
แนวทางการพัฒนา Next.js 16 Frontend
- App Router Patterns
- Shadcn/UI & Tailwind Styling
- TanStack Query for Data Fetching
- React Hook Form + Zod for Client Validation
- API Client Interceptors (Auth & Idempotency)
4. Document Numbering System
รายละเอียดการนำระบบออกเลขที่เอกสารไปใช้งาน
- Table Schema: Templates, Counters, Audit
- Double-Lock Strategy (Redis Redlock + Database VersionColumn)
- Reservation Flow (Phase 1: Reserve, Phase 2: Confirm)
- API Specs for Numbering Management
5. Git Conventions
มาตรฐานการใช้ Git และ Commit Messages
- Branch Naming (feature/, fix/, hotfix/)
- Commit Message Format (Conventional Commits)
- PR/Merge กระบวนการ
- Git Cheatsheet — คำสั่งที่ใช้บ่อย
6. Code Snippets
ตัวอย่างโค้ดที่ใช้ซ้ำบ่อย (Reusable Patterns)
- Backend DTO Pattern with
@IsUUID() - Frontend RHF + Zod Form Pattern
- UUID Safe Pattern
- Backend Error Handling Pattern
- Workflow Transition Pattern
- Redis Cache Pattern
- Frontend TanStack Query Pattern
7. UUID Implementation Plan
แผนการ Implement Hybrid Identifier (ADR-019)
- Migration Strategy (INT → UUIDv7)
- Backend:
UuidBaseEntityPattern - Frontend:
publicIdUsage Guidelines - API Response Standardization
8. i18n Guidelines
แนวทางการทำ Localization
- i18n Key Structure (Thai/English)
- Error Message Keys vs Hardcoded Text
- Frontend Locale Organization
- Comments Language Policy (Thai for business, English for technical)
🧪 Testing Strategy
รายละเอียดอยู่ในเอกสาร: Testing Strategy
- Unit Testing: NestJS (Jest), React (Vitest)
- Integration Testing: API Endpoints (Supertest)
- E2E Testing: Playwright สำหรับ Critical Flows
- Special Tests: Concurrency Tests สำหรับ Document Numbering
🛠️ Technology Stack Recap
| Layer | Primary Technology | Secondary/Supporting |
|---|---|---|
| Backend | NestJS 11 (Express v5) | TypeORM, BullMQ |
| Frontend | Next.js 16.2.0 (React 19.2.4) | Shadcn/UI, Tailwind 4.2.2 |
| Database | MariaDB 11.8 | Redis 7 (Cache/Lock) |
| Search | Elasticsearch | - |
| Testing | Jest, Vitest | Playwright |