Files
pos-system/docs/vi/guides/development.md

112 lines
2.3 KiB
Markdown

# Hướng Dẫn Development
## Cấu Trúc Dự Án
```
├── apps/ # Frontend applications
├── services/ # Backend microservices
├── packages/ # Shared libraries
├── infra/ # Infrastructure configs
├── deployments/ # Deployment configs
├── scripts/ # Automation scripts
└── docs/ # Documentation
```
## Quy Trình Development
### 1. Tạo Feature Branch
```bash
git checkout -b feature/my-feature
```
### 2. Thực Hiện Thay Đổi
- Viết code tuân theo TypeScript strict mode
- Thêm tests cho chức năng mới
- Cập nhật tài liệu nếu cần
### 3. Chạy Tests Locally
```bash
# Tất cả tests
pnpm test
# Service cụ thể
pnpm --filter @goodgo/iam-service test
```
### 4. Lint và Format
```bash
pnpm lint
pnpm format
```
### 5. Tạo Pull Request
- Push branch của bạn
- Tạo PR target `develop`
- CI/CD sẽ chạy tự động
## Thêm Service Mới
1. Sử dụng template:
```bash
./scripts/utils/create-service.sh my-new-service
```
2. Cập nhật cấu hình service
3. Implement business logic
4. Thêm tests
5. Cập nhật tài liệu
## Thêm Package Mới
1. Tạo package trong `packages/new-package`
2. Thêm vào workspace trong `pnpm-workspace.yaml`
3. Export từ `index.ts`
4. Thêm tests
5. Ghi lại cách sử dụng
## Database Migrations
## Database Migrations
```bash
# Tạo migration (dev)
./scripts/db/migrate.sh iam-service dev
# Áp dụng migrations (production)
./scripts/db/migrate.sh iam-service deploy
```
## Kubernetes Deployment
### Local Kubernetes (Docker Desktop)
```bash
# Enable Kubernetes trong Docker Desktop
# Settings → Kubernetes → Enable Kubernetes
# Deploy service
cd deployments/local/kubernetes
./deploy.sh
# Verify deployment
kubectl get pods -n iam-local
kubectl logs -f -n iam-local -l app=iam-service
# Port forward để test
kubectl port-forward svc/iam-service 5002:80 -n iam-local
curl http://localhost:5002/health/live
```
**Xem hướng dẫn chi tiết**: [Kubernetes Local Deployment Guide](./kubernetes-local.md)
## Debugging
- Sử dụng logger từ `@goodgo/logger`
- Kiểm tra Traefik logs: `docker logs traefik-local`
- Kiểm tra service logs: `./scripts/dev/logs.sh iam-service`