用途:评审 Go 项目架构,检查包结构、依赖方向、分层、关注点分离、领域建模和模块边界。
三种模式:布局评审(默认),按章节检查代码库并按严重程度报告违规;重构计划,输出从小步安全迁移开始的有序迁移方案;新服务咨询,把 1-3 节作为规范性建议而非检查项。
大型代码库审计:先用 go list ./... 获取包列表,再通过 import 语句追踪依赖方向;可按布局、依赖方向、装配与配置、包设计分多轮独立检查,环境支持时并行执行再汇总;每条发现需引用包路径和 file.go:line。
核心规则:internal/ 强制封装;pkg/ 仅放真正可复用包;cmd/ 下每个二进制一个 main.go 且保持精简。依赖必须向内流动:handlers → services → domain ← stores,domain 不导入项目内任何包,service 依赖 domain 类型与接口而非具体存储,接口定义在消费方。循环依赖为阻断级问题。main 包是组合根,显式装配依赖,避免 DI 框架,复杂时可用 Google wire。包设计遵循一包一责,避免 utils/common/models 等大杂烩包和命名重复(stuttering),优先内聚而非拆小。配置集中在 internal/config,全部来自环境变量,启动时校验并快速失败,禁止硬编码。避免带副作用的 init(),仅允许注册驱动等例外。
检查清单:无循环依赖、domain 无基础设施依赖、cmd/ 无业务逻辑、init() 无副作用、internal/ 用于私有包、接口在消费方、配置集中校验、依赖向内流动、包名简短单数、无 utils/common/helpers、main 包为精简组合根。
限制:资料未提供具体安装命令、平台支持、收费或效果数据。