1.6 KiB
1.6 KiB
Why
项目复杂度增长后,AI 编写代码时经常忽略基本编码规范(如使用指定日志工具、正确处理错误等)。依赖 prompt 约定是"软约束",无法可靠防止违规。需要引入静态分析工具,将编码规范从"约定"升级为"机器可检查的硬约束",在提交时自动拦截问题代码。
What Changes
- 新增
.golangci.yml配置文件,启用 13 个 linter 并配置项目专属规则 - 引入 lefthook 作为 Git hook 管理器,在 pre-commit 时自动运行 lint
- 修复存量代码中的规范违规(约 31 处)
- 解决 embedfs 模块导致 golangci-lint 无法运行的阻塞问题
- 更新 README.md 补充代码规范说明
Capabilities
New Capabilities
code-lint: 后端代码静态分析规则配置,包括 13 个 linter 的启用、参数配置、测试/正式代码的差异化规则、生成代码排除等pre-commit-hook: 基于 lefthook 的 pre-commit hook 配置,提交时自动运行 lint 检查
Modified Capabilities
module-logging: 新增 zap.Error(err) 优于 zap.String("error", err.Error()) 的规范要求error-handling: 新增必须使用 errors.Is/As 而非直接 == 比较的强制要求structured-logging: 补充 zap.Error(err) 的使用约定
Impact
- 新增开发依赖:lefthook(二进制工具,不影响生产代码)
- 修改文件:约 15 个 Go 源文件(存量修复)、README.md、Makefile
- 新增文件:
.golangci.yml、lefthook.yml、embedfs/assets/.gitkeep、embedfs/frontend-dist/.gitkeep - 开发流程影响:git commit 时自动触发 lint 检查,lint 不过则提交被拒绝