网络宝典
第二套高阶模板 · 更大气的阅读体验

注释规范培训资料:让代码更易读懂

发布时间:2025-12-14 21:12:28 阅读:123 次

为什么写注释也很重要

刚入行那会儿,我总觉得只要代码能跑通,怎么写都行。直到有次项目上线前,组长让我改一段“老代码”,打开文件一看,满屏都是变量和函数调用,没有一句解释。我愣是花了三个小时才搞明白那段逻辑是干啥的。后来才知道,那代码就是我自己三个月前写的……

好注释像便签条,随手一贴就明白

写代码不是写天书,团队协作时,别人要看,过几个月你自己也得看。这时候,注释就是贴在代码边上的小便签,告诉别人“这里为啥这么写”。

比如你看到一段处理时间戳的代码:

// 将用户提交的时间转换为服务器本地时间,避免跨时区显示错误
let localTime = new Date(timestamp * 1000 + timezoneOffset * 3600 * 1000);

没这句注释,别人可能以为你在修bug;有了它,一眼就知道这是为了兼容时区。

注释不是越多越好

见过那种每行代码下面都跟一句注释的项目吗?比如:

let sum = 0; // 定义一个变量sum,初始值为0
for (let i = 0; i < arr.length; i++) { // 循环遍历数组
    sum += arr[i]; // 把每个元素加到sum里
}
// 返回总和
return sum;

这种注释纯属多余,代码自己已经说得很清楚了。真正需要注释的是那些“看起来奇怪但有原因”的地方。

这些情况值得加注释

当你写出以下类型的代码时,不妨停下来写句注释:

  • 绕过某个框架限制的“奇技淫巧”
  • 修复了一个隐蔽的bug,怕以后被人误删
  • 用了不太常见的算法或数学公式
  • 临时方案,后续要重构

比如:

// FIXME: 用户中心接口暂时不支持分页,先拉全量数据(仅限内部管理端)
const users = await fetchAllUsers();

不同语言的注释习惯

JavaScript 通常用 ///** */

// 计算折扣价格,注意:此规则仅适用于会员日
function getDiscount(price) {
    return price * 0.8;
}

Python 喜欢用三引号写文档字符串:

def calculate_tax(income):
    """
    根据年收入计算应缴税款
    :param income: 年收入金额
    :return: 应缴税额
    """
    return income * 0.15

Java 或 TypeScript 中常见 JSDoc 风格:

/**
 * 检查用户是否有权限执行操作
 * @param userId 当前用户ID
 * @param action 要执行的操作类型
 * @returns {boolean} 是否允许
 */
function checkPermission(userId, action) { ... }

别把注释当遮羞布

有人觉得“反正有注释解释,代码乱点也没事”,这就本末倒置了。清晰的变量名、合理的函数拆分,比一百行注释都有用。

与其写:

// temp 是用来存筛选后的结果,a 是状态标记
let temp = [], a = true;

不如直接写成:

let filteredItems = [];
let isActive = true;

团队里的注释约定

我们组在项目初期就定了几条简单规则:

  • 公共函数必须有说明注释
  • 复杂逻辑块开头加一段解释
  • // TODO: 标记待办事项
  • // FIXME: 标出已知问题
  • 删除无用代码时,顺手把注释也清掉

时间一长,大家看代码就像看说明书,谁都不用再问“这段是干啥的”。