starter-kit/docs/general.md
2025-05-21 12:39:40 +07:00

80 lines
3.1 KiB
Markdown

# Giới thiệu chung
## Tổng quan
- ULFlow Golang Starter Kit là một khung phát triển backend theo mô hình Domain-Driven Design (DDD)
- Được thiết kế để tạo ra các ứng dụng có thể bảo trì và mở rộng dễ dàng
- Mục tiêu: Cung cấp một cấu trúc dự án chuẩn, các thành phần cơ bản và công cụ phát triển hiệu quả
## Nguyên tắc thiết kế
- **User-Centric**: Ưu tiên trải nghiệm người dùng, giảm thiểu sự phức tạp
- **Data-Oriented Programming (DOP)**: Thiết kế xoay quanh luồng dữ liệu và các biến đổi dữ liệu
- **Domain-Driven Design (DDD)**: Áp dụng các khái niệm cốt lõi (Bounded Context, Aggregates, Domain Events)
## Tầm nhìn
- Tạo ra nền tảng phát triển linh hoạt, dễ mở rộng cho các dự án backend Golang
- Tích hợp các công nghệ hiện đại, best practices, và quy trình phát triển chuẩn
- Cung cấp môi trường phát triển thống nhất cho team
## Hướng dẫn cài đặt
### Yêu cầu hệ thống
- Go 1.23
- Docker và Docker Compose
- Git
### Cài đặt
1. Clone repository
```bash
git clone [repo-url] my-project
cd my-project
```
2. Thiết lập môi trường
```bash
cp .env.example .env
# Chỉnh sửa file .env theo nhu cầu
```
3. Khởi động dev server
```bash
make dev
```
## Cấu trúc thư mục
Dự án được tổ chức theo cấu trúc DDD chuẩn, với các thành phần chính:
```
│── .gitea/ # Gitea workflows & hooks
│── cmd/ # Điểm vào của ứng dụng
│ └── app/ # Main application
│── internal/ # Mã nguồn chính của ứng dụng
│ │── domain/ # Các đối tượng nghiệp vụ cốt lõi
│ │ │── resource/ # Resource (Aggregates/Entities)
│ │ └── transaction/ # Transaction (Use Cases)
│ │── adapter/ # Giao tiếp với bên ngoài
│ │ │── persistence/ # Repository implementations
│ │ └── externalapi/ # External API clients
│ │── helper/ # Tiện ích chung
│ │ │── config/ # Configuration
│ │ │── logger/ # Logging
│ │ │── security/ # Authentication/Authorization
│ │ └── validation/ # Input validation
│ └── transport/ # Giao tiếp với client
│ └── http/ # HTTP handlers & middleware
│── docs/ # Tài liệu
│── templates/ # Các file mẫu
│── configs/ # File cấu hình
│── migrations/ # Database migrations
│── api/ # API definitions (OpenAPI/Swagger)
│── scripts/ # Các tiện ích
│── test/ # End-to-end tests
└── tools/ # Development tools
## Hỗ trợ và đóng góp
- Báo lỗi và feature request: Tạo issue trên repository
- Đóng góp: Tạo pull request theo quy trình được mô tả trong workflow.md
- Liên hệ: [email/contact-info]