用途:go-reviewer 是 Go 代码审查助手,目标是让代码不仅可用,还符合惯用法并且易于维护。它基于 Go Code Review Comments 整理出一份检查清单,在出现 review、idiomatic、refactor 等触发词时启用。
主要能力:按五类规则审查代码。接口方面,要求接口由使用方定义而非实现方,函数一般返回具体结构体而非接口,以便后续添加方法而不破坏 API。并发方面,要求每个 go func() 都有明确的退出策略(context 取消或 channel 信号),检查 sync.Mutex 是否持有过久,并区分 channel 用于编排和信号、mutex 用于数据访问。错误处理方面,包装错误使用 %w,如 fmt.Errorf("context: %w", err);错误字符串小写且不带标点;panic 仅用于不可恢复的启动错误。命名与风格方面,使用 MixedCaps(如 userID 而非 user_id),缩写全大写(ServeHTTP、ID),小作用域可用 ctx、i、r 等短名,包级变量要描述清楚。复杂度方面,清晰优先于巧妙,若控制流需要想两遍就是太复杂;除编写序列化库外避免 reflect。
工作方式:先通过 explain_symbol / smart_read 深入理解代码,再对照上述规则分析,最后给出可操作反馈,例如提示接口应在使用方包中定义、goroutine 可能因循环内未检查 ctx 而泄漏;还会用 modernize_code 检查是否有可自动应用的现代化改写。
适用场景:Go 项目的代码评审、重构前检查、并发与错误处理规范落地。
限制:资料未提供安装方式、运行环境、支持版本、是否收费及价格信息,也未提供具体平台支持情况,这些暂未提供。