作為「高級酒店管理系統」專案組長,帶領團隊完成從需求分析到上線部署全流程。專案雖小,但暴露的協作問題極具代表性。本文提煉四大核心經驗:***規範先行、數據庫腳本化、架構先搭、分工閉環***,適用於任何中小型團隊專案。
| 規範項目 | 統一標準示例 | 執行方式 |
|---|---|---|
| 命名規範 | 類 PascalCase、方法 camelCase、常量 UPPER_SNAKE、包全小寫 | IDE 導入共享 codeStyle.xml,CI 檢查 |
| 註釋規範 | 類/公共方法強制 Javadoc,邏輯複雜處行內註釋 | 模板生成,Code Review 硬性指標 |
| 格式化 | 縮進 4 空格、大括號風格、import 排序 | Ctrl+Alt+L 統一格式化,提交前掃描 |
| 異常處理 | 業務異常自定義、系統異常向上拋、日誌 ERROR 級別記錄堆棧 | 封裝 BaseException 體系,禁止 e.printStackTrace() |
| 日誌規範 | 關鍵業務節點 INFO、參數 DEBUG、異常 ERROR+堆棧 | 統一 logback.xml,禁止 System.out |
核心心法:規範是**減少認知負擔**的工具,而非束縛。新成員入組第一天跑通 CheckStyle,比講十遍規範都有效。
VARCHAR(20) 有用 VARCHAR(50))、索引缺失、外鍵缺失,合併代碼時 SQL 報錯頻發。schema.sql (DDL) + data.sql (初始數據)@Sql 或 Flyway/Liquibase 自動執行mvn clean test 跑通數據庫遷移測試
hotel-manage/
├─ hotel-common // 公共模塊:常量、異常、工具類、VO/DTO 基類
├─ hotel-dao // 數據訪問層:MyBatis Mapper、Entity、Repository
├─ hotel-service // 業務邏輯層:Service 接口/實現、事務邊界
├─ hotel-web // 表現層:Controller、View、Interceptor
└─ hotel-api // 對外接口:REST 契約、Feign Client
關鍵動作:
BaseEntity/BaseMapper/BaseService 抽象骨架Result 封裝、統一分頁 PageInfo效果:後續並行開發零衝突,新成員只需實現具體接口,架構演進不破壞邊界。
| 儀式 | 頻率 | 核心動作 | 產出物 |
|---|---|---|---|
| 每日站會 | 每天 9:30 | 昨日完成、今日計劃、阻塞求助 | 看板卡片流轉 |
| 任務拆解 | 迭代開始 | 故事拆解為 <4h 任務,掛負責人 | Jira/GitLab Issue |
| 代碼評審 | 每次 MR | 強制 1 人審核,跑單測+規範掃描 | MR 通過才能合併 |
| 迭代復盤 | 雙週 | 燃盡圖分析、流程改進、最佳實踐沉澱 | Wiki 文檔更新 |
鐵律:任務狀態只有三態 —— To Do / In Progress / Done,沒有「進行中 80%」。當日承諾當日交付,交付定義 = Code Complete + Unit Test Pass + Self Review + Merge to Develop。
DEVELOPMENT_GUIDE.md:規範、流程、工具鏈、常見坑點ARCHITECTURE_DECISIONS.md:為什麼選 MyBatis 不選 JPA、為什麼用 Redis 做 SessionDATABASE_CHANGELOG:Flyway 遷移腳本全歷史DEPLOY_CHECKLIST.md:上線前檢查項(配置、索引、監控、回滾預案)專案管理的本質是**用確定性對抗不確定性**。這四大經驗看似平常,落地卻需鐵腕執行。希望能為正在或即將啟動中小型專案的你,提供一套可直接複製的「啟動清單」。