開發流程
本文檔說明使用 AppFuse 框架的日常開發流程,聚焦一個功能從分支建立到合併的完整工作流。
功能開發流程
1. 建立分支
git checkout main
git pull
git checkout -b feature/US-101-product-list
分支命名規範
| 類型 | 格式 | 範例 |
|---|---|---|
| 功能 | feature/US-xxx-description | feature/US-101-product-list |
| 修復 | fix/issue-description | fix/login-redirect-error |
| 改善 | improve/description | improve/product-search-performance |
2. 開發功能
後端開發順序
- Entity — 定義資料模型
- Repository — 資料存取層
- Service — 業務邏輯
- Controller — REST API
- 測試 — 單元測試、整合測試
前端開發順序
- Mock Handler — 定義 API 回應格式(
src/mocks/handlers/) - Service + Query Hook — API 服務層與 React Query Hook(
src/services/) - Component — UI 組件
- Applet 或 Page — 功能整合
- Applet:CRUD 業務模組,包含 Finder/Editor/Detail(
src/applets/) - Page:獨立頁面,如 Login、Dashboard 等(
src/pages/)
- Applet:CRUD 業務模組,包含 Finder/Editor/Detail(
- 測試 — 組件測試
3. 提交前檢查
提交前確認以下檢查通過:
| 檢查項目 | 前端指令 | 後端指令 |
|---|---|---|
| Lint | npm run lint | — |
| 格式化 | npm run format:check | — |
| 測試 | npm run test | ./gradlew test |
| 建置 | npm run build | ./gradlew build |
4. 提交變更
遵循 Conventional Commits 規範,以繁體中文撰寫:
<type>(<scope>): <subject>
<body>
| Type | 說明 |
|---|---|
feat | 新功能 |
fix | 修復 bug |
docs | 文檔更新 |
style | 程式碼風格調整 |
refactor | 重構 |
test | 測試 |
chore | 雜項維護 |
範例:
git add .
git commit -m "feat(product): 新增商品列表頁面
- 實作商品列表 API 整合
- 新增搜尋與篩選功能
- 支援分頁"
5. 推送與建立 PR
git push -u origin feature/US-101-product-list
gh pr create --title "feat(product): 新增商品列表頁面" \
--body "## 變更內容
- 實作商品列表 API
- 新增搜尋與篩選功能
## 測試
- [ ] 單元測試通過
- [ ] 手動測試通過"
6. Code Review 與合併
- 至少一位團隊成員 Review
- 若已設定 CI,確認 CI 檢查通過
- 解決所有 Review 意見
- 合併:
gh pr merge --squash
疑難排解
資料庫狀態不一致
H2 資料庫重置(會清除所有資料):
rm -rf $APP_HOME/var/data/myapp-server/myappdb.*
# 重新啟動後端,Hibernate 會重建 Schema
cd myapp-server
./gradlew bootRun
$APP_HOME的預設值與設定方式請參閱環境設定 — APP_HOME。
快取問題
# 清除 Gradle 快取
cd myapp-server
./gradlew clean
# 清除 Vite 快取
rm -rf myapp-office/node_modules/.vite
更多故障排除請參閱本地運行 — 故障排除。