# 🛠️ Implementation Specification > **แนวทางการพัฬนาและมาตรฐานทางเทคนิคของระบบ LCBP3-DMS** > > เอกสารชุดนี้รวบรวมมาตรฐานการเขียนโปรแกรม แนวทางการพัฒนา และรายละเอียดการนำสถาปัตยกรรมไปใช้งานจริง ทั้งในส่วนของ Backend และ Frontend --- ## 📊 Document Status | Attribute | Value | | ------------------ | -------------------------------- | | **Version** | 1.8.0 | | **Status** | Active | | **Last Updated** | 2026-02-24 | | **Owner** | Nattanin Peancharoen | | **Classification** | Internal Technical Documentation | --- ## 📚 Table of Contents - [🛠️ Implementation Specification](#️-implementation-specification) - [📊 Document Status](#-document-status) - [📚 Table of Contents](#-table-of-contents) - [🎯 หลักการพัฒนาหลัก (Core Principles)](#-หลักการพัฒนาหลัก-core-principles) - [📖 คู่มือการพัฒนา (Implementation Guides)](#-คู่มือการพัฒนา-implementation-guides) - [1. FullStack JS Guidelines](#1-fullstack-js-guidelines) - [2. Backend Guidelines](#2-backend-guidelines) - [3. Frontend Guidelines](#3-frontend-guidelines) - [4. Document Numbering System](#4-document-numbering-system) - [🧪 Testing Strategy](#-testing-strategy) - [🛠️ Technology Stack Recap](#️-technology-stack-recap) - [🔗 Related Documents](#-related-documents) --- ## 🎯 หลักการพัฒนาหลัก (Core Principles) เพื่อให้ระบบมีความมั่นคง ยืดหยุ่น และดูแลรักษาง่าย การพัฒนาต้องยึดหลักการดังนี้: 1. **Type Safety Everywhere** - ใช้ TypeScript อย่างเข้มงวด ห้ามใช้ `any` 2. **Modular Dependency** - แยก Logic ตาม Module หลีกเลี่ยง Circular Dependency 3. **Idempotency** - การสร้างหรือแก้ไขข้อมูลต้องรองรับการกดซ้ำได้ (Idempotency-Key) 4. **Security by Default** - ตรวจสอบ Permission (RBAC) และ Validation ในทุก Endpoint 5. **Fail Fast & Log Everything** - ดักจับ Error ตั้งแต่เนิ่นๆ และบันทึก Audit Logs ที่สำคัญ --- ## 📖 คู่มือการพัฒนา (Implementation Guides) ### 1. [FullStack JS Guidelines](./05-01-fullstack-js-guidelines.md) **แนวทางการพัฒนาภาพรวมทั้งระบบ (v1.8.0)** - โครงสร้างโปรเจกต์ (Monorepo-like focus) - Naming Conventions & Code Style - Secrets & Environment Management - Two-Phase File Storage Algorithm - Double-Lock Mechanism for Numbering ### 2. [Backend Guidelines](./05-02-backend-guidelines.md) **แนวทางการพัฒนา NestJS Backend** - Modular Architecture Detail - DTO Validation & Transformer - TypeORM Best Practices & Optimistic Locking - JWT Authentication & CASL Authorization - BullMQ for Background Jobs ### 3. [Frontend Guidelines](./05-03-frontend-guidelines.md) **แนวทางการพัฒนา Next.js 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](../01-Requirements/business-rules/01-02-02-doc-numbering-rules.md) **รายละเอียดการนำระบบออกเลขที่เอกสารไปใช้งาน** - 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 --- ## 🧪 Testing Strategy รายละเอียดอยู่ในเอกสาร: **[Testing Strategy](./05-04-testing-strategy.md)** - **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 (Node.js) | TypeORM, BullMQ | | **Frontend** | Next.js 14+ | Shadcn/UI, Tailwind | | **Database** | MariaDB 11.8 | Redis 7 (Cache/Lock) | | **Search** | Elasticsearch | - | | **Testing** | Jest, Vitest | Playwright | --- ## 🔗 Related Documents - 📋 [Requirements Specification](../01-Requirements/README.md) - 🏗️ [Architecture Specification](../02-Architecture/README.md) - 🚀 [Operations Specification](../04-Infrastructure-OPS/README.md) ---