这是一套关于代码注释取舍的规范,核心是把注释分为两类。接口注释面向调用方,说明参数、返回值、错误、前置条件、单位、所有权、线程安全等,默认应存在,以完整性为评判标准;调用方若需读函数体才能知道这些信息即属失败。非公开表面即便有文档标记,也按实现注释的规则处理。
实现注释面向一年后、正在排查另一个 bug、只看本行及附近约二十行的称职开发者。触发条件包括:值可能缺失或无效而类型未体现;状态可被多线程触及而安全纪律不可见;相邻语句顺序重要;无推导过程的常量;针对外部缺陷的绕过;读者会用显然实现替换;签名无法表达的前置条件;看似疏漏的写法;看似多余的分支或参数。任一为是只是必要条件。测试方法:遮住注释、读代码、指出读者会误解什么;若没有,则删除。注释必须处于比代码更高或更低的细节层级,与代码同层即复述。失败的注释应删除而非缩短。
设计理由与被拒材料应放入提交信息;跨行成立的通用事实归其唯一归属处。评审差异时须一并检查注释,先判定类型,接口注释查完整性,实现注释过触发与测试,无法判定则报告删除,位置放错则指出应去处。多数注释保持单行;结构复杂时依 chalk:mindmap 规则处理。原文未提供具体工具调用方式、价格或平台限制等信息。