用途:作为紧凑的规则引擎使用,而非从头到尾阅读的书籍。适用于涉及 Go 语言或质量决策的场景,可补充专业技能的不足。
主要能力:按领域组织 100 条编号规则,覆盖代码/项目(1-16)、数据类型(17-29)、控制结构(30-35)、字符串(36-41)、函数/方法(42-47)、错误(48-54)、并发基础(55-60)、并发实践(61-74)、标准库(75-81)、测试(82-90)、优化/运行时(91-100)。每条规则自包含,附带解释与 Bad/Better 示例。
使用方式:先定位目标模块的 go.mod,依据其 go 指令确定语言语义;无目标模块或 go 指令时以 Go 1.26 为回退基线,且不得将其描述为已发现的项目版本。用户指定的版本约束优先。按需加载最小领域文件,普通任务加载一个,跨领域最多三个;针对具体规则号只加载其领域文件;完整审计时按顺序评估领域文件而非预加载全部。涉及版本敏感行为或项目目标非 1.26 时,读取 references/version-notes-go1.26.md。
代码审查输出:每个重要发现需给出严重级别(bug、风险、可维护性、性能)、位置或代码片段、规则编号与短标题、结合具体代码的简要说明、最小可行修复、必要时提供紧凑的前后对比片段,以及仅在行为跨版本不同时给出版本说明。避免堆砌无关规则;未发现相关违规时明确说明。
代码生成与重构:静默应用相关规则,仅在解释非显而易见的设计选择、权衡或兼容性约束时提及规则编号。
限制:每条规则是诊断启发式而非无条件法则;优先正确性与资源安全,其次 API 清晰/可维护,最后性能。需结合实际代码上下文验证,不得仅因关键词出现就报告,不得推荐无证据的推测性抽象或微优化。性能发现依赖工作负载时需使用或请求基准/性能分析。规则冲突时保持正确性并选择满足已证明需求的最简 API。Bad/Better 对仅为示例,需适配实际代码。规则分类与标题源自 Teiva Harsanyi 的 100 Go Mistakes and How to Avoid Them / 100go.co,本技能中的解释与代码片段为紧凑改编,非逐字复制。