diff --git a/refactor.md b/refactor.md new file mode 100644 index 0000000..3d703e5 --- /dev/null +++ b/refactor.md @@ -0,0 +1,29 @@ +```mermaid +. +├── build/ # [Infrastructure] 存放 Dockerfile 與建置相關腳本 +├── docker-compose.yml # [Infrastructure] 本地開發環境編排 (Mongo, Redis, etc.) +├── etc/ # [Configuration] 存放各環境的 yaml 設定檔範本 +├── generate/ # [Contract] Interface First 定義區 +│ └── api/ # 存放 .api 原始定義,作為服務間的通訊契約 +│ └── database/ # 如果有必要,請幫我放建立db 的檔案 +├── internal/ # [Framework Layer] 強依賴 go-zero 框架的實作區 +│ ├── config/ # 框架層的 Config mapping +│ ├── logic/ # Adapter: 負責將框架 Request 轉接至 pkg/usecase +│ ├── server/ # Transport: gRPC/HTTP Server 實作 (僅處理協議) +│ └── svc/ # DI Center: 依賴注入中心,管理全域 Resource (DB, Client) +├── pkg/ # [Core Domain] 核心業務邏輯 (不依賴 go-zero 框架) +│ ├── domain/ # +│ │ ├── entity/ # 純粹的業務物件 (POJO/POCO),不含資料庫標籤 +│ │ ├── repository/ # Repository Interface: 定義資料存取規範 (DIP) +│ │ ├── const/ # 常數 +│ │ └── usecase/ # Usecase Interface: 定義業務功能的 API 契約 +│ ├── repository/ # +│ │ ├── *_test.go # 使用 Testcontainers (Real DB) 進行整合測試 +│ │ └── *.go # 實作 domain/repository 接口 (MongoDB/Redis) +│ └── usecase/ # +│ ├── *_test.go # 核心業務邏輯的 Unit Test (使用 Mock) +│ └── *.go # 實作業務流程,協調 Repository 與 Utils +├── Makefile # [Automation] 封裝 protoc, test, build 等常用指令 +├── go.mod # [Dependency] +└── main.go # [Entry] 服務啟動進入點 +``` \ No newline at end of file