112 lines
2.3 KiB
Markdown
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`
|