其他建议规范
研发开发规范
仓库卫生
发布 SOP
前后端协同
本篇学习指南
读完你能
- 保持仓库整洁(该忽略的忽略、该清理的清理)
- 了解一个版本从开发到现场部署的完整流程
- 知道前后端怎么高效协同(接口先行、版本对齐)
概念入门
理解工程规范
- 仓库卫生
- 保持代码仓库整洁,就像保持工位整洁。不该入库的文件(日志、IDE 配置、构建产物)要通过
.gitignore排除。 - SOP Standard Operating Procedure
- 标准操作流程。把重复性工作固定为标准步骤,减少遗漏和出错。
- .gitignore
- 告诉 Git「这些文件不要跟踪」的配置文件。就像告诉保洁阿姨「这个抽屉不用打扫」。
仓库就像你的工位 —— 保持整洁,别人才能快速找到东西
应该入库
源代码
配置文件
SQL 脚本
文档
不该入库
日志文件
IDE 配置
编译产物
.DS_Store
1
其他建议规范
5.1 仓库卫生
目录合并:
docs/(当前仅含superpowers,疑似误建)应合并入doc/。- 规范类文档统一归
doc/规则/,业务文档按模块分子目录。
.gitignore 补全(当前缺失以下条目):
GITIGNORE
# JVM 崩溃日志 hs_err_pid*.log replay_pid*.log # 运行日志 logs/ *.log log.bin spy.log # 系统/IDE .DS_Store *.iml .idea/ # 构建产物 target/
已入库文件清理(需执行):
BASH
# 从 git 移除但保留本地文件(-r --cached) git rm --cached hs_err_pid12168.log hs_err_pid51356.log hs_err_pid55536.log hs_err_pid58404.log hs_err_pid9340.log git rm --cached replay_pid*.log spy.log log.bin git rm --cached .DS_Store # 之后再 commit
该入库的文件
*.java/*.vue/*.js— 源代码*.xml/*.sql— 配置、数据库脚本*.md/*.html— 文档pom.xml/package.json— 依赖声明
原则:人手写的、需要团队共享的,才入库
不该入库的文件
target//node_modules/— 构建产物,可重新生成*.log/hs_err_pid*— 运行日志、崩溃日志.idea//*.iml— IDE 个人配置.DS_Store— macOS 系统文件
原则:机器生成的、个人环境的,一律 .gitignore
为什么构建产物不能入库?① 它们能从源码重新生成,入库是冗余;② 它们体积大、变动频繁,会让仓库膨胀、拉取变慢;③ 不同人本地构建的产物可能不同,造成无意义的冲突。只入库「源」,产物由各人本地构建。
5.2 文档规范
- 新文档归位:规范类 →
doc/规则/;业务设计类 →doc/<模块>/;驱动文档 →doc/驱动设计文档/。 - 文件头部统一信息块:
```markdown
# <标题>
> 作者:xxx 日期:YYYY-MM-DD 版本:v1.0
```
- 空文件清理:
doc/待优化.md(当前 0 字节)应填充内容或删除。
5.3 发布流程 SOP
版本发版的完整动作按 09·发版检查单 逐阶段勾选执行,主干流程如下:
1
版本开发完成
release/x.x.x 冻结(禁止合入新 feature,仅允许 hotfix)
release/x.x.x 冻结(禁止合入新 feature,仅允许 hotfix)
2
SQL 定稿 + 回归测试通过
CHANGELOG 登记完整、幂等抽查通过;
CHANGELOG 登记完整、幂等抽查通过;
sql/release/<版本>/ 冻结复制为 sql/tag/<版本>/3
打 tag
annotated tag,带变更摘要;tag 号 = 安装包版本号
vX.Y.Zannotated tag,带变更摘要;tag 号 = 安装包版本号
4
出集成安装包 → 现场部署
安装包附带
安装包附带
sql/tag/<版本>/ SQL,现场按序执行并登记 CHANGELOG5
现场发现问题
从
从
release/x.Y.Z 分支头拉 hotfix/x.Y.Z/<问题>(基线 = 现场已验证状态)6
修复 → 现场验证 → 回流 + 清理
只改代码不改库;验证记录落
只改代码不改库;验证记录落
doc/branch/ 后回流 release/x.Y.Z + 下个开发中 release,然后删除 hotfix 分支5.4 前后端协同
- 接口先行:后端先定义 API(路径、入参 DTO、出参 VO),前端据此 mock 开发。
- scope 对齐:前后端在 commit、分支、模块命名上共用同一套 scope(见 2.5)。
- 分支命名同源:前端工程的分支同样遵循
release/、feature/、hotfix/、custom/、dev/前缀规范。 - 版本号联动:前后端版本号在发布时对齐(如后端
v2.1.1对应前端v2.1.1),便于现场配对部署。
新手常见问题
仓库卫生、发布流程、协同方面的常见困惑
我不小心把 target/ 构建产物提交进去了,怎么清理?
构建产物不该进仓库——先在
.gitignore 里加上 target/、node_modules/、*.log 等,然后用 git rm --cached -r target/ 从版本控制移除(文件还在本地,只是不再跟踪),再提交这次清理。已入库的文件即使加进 .gitignore 也不会自动忽略,必须 rm --cached。前端和后端版本号为什么要对齐?各干各的不行吗?
因为现场部署是前后端配对的——后端 v2.1.1 的安装包对应前端 v2.1.1。如果版本错位(后端 2.1.1 配前端 2.1.0),接口可能对不上、功能可能异常。版本号联动让现场运维能一眼确认「这俩是一套的」,避免装错组合。
「接口先行」具体怎么做?后端还没写完前端怎么开发?
后端先定义接口契约(路径、入参 DTO、出参 VO),用 Swagger 注解写清楚。前端拿到接口定义后,据此 mock 数据开发页面,不用等后端实现完成。后端实现好后联调替换 mock 即可。这样前后端能并行推进,而不是前端干等后端。