zee-solution/docs/general.md
2025-06-05 21:21:28 +07:00

3.1 KiB

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
git clone [repo-url] my-project
cd my-project
  1. Thiết lập môi trường
cp .env.example .env
# Chỉnh sửa file .env theo nhu cầu
  1. Khởi động dev server
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]