命名规范不是小事
变量名起得好不好,直接决定半年后你还能不能看懂自己的代码。比如用 userData 比 obj 清楚得多,函数名 validateEmail 也比 check 明确。团队里有人喜欢缩写,像把 config 写成 cfg,时间一长就容易懵。统一规则,别靠猜。
缩进和空格要一致
有人用两个空格,有人用四个,还有人坚持用 Tab。项目一合并,格式全乱套,看着就像被狗啃过。评审时得盯紧这点,最好配个 .editorconfig 文件,让编辑器自动对齐。别小看这事儿,格式整齐的代码读起来就是顺。
注释不是越多越好
写一堆“这里定义一个变量”这种废话注释没意义。真正该写的是“为什么这么做”。比如某个算法绕了个弯,是因为历史接口不兼容,这时候一句说明能救队友一命。但像下面这种就纯属多余:
// 定义 i 变量
let i = 0;
// 循环 10 次
for (i = 0; i < 10; i++) {
console.log(i);
}函数长度要克制
一个函数干十件事,调来调去还带嵌套,查问题时根本理不清。评审时看到超过 50 行的函数就得警惕。拆成小块,每个只做一件事,测试和复用都方便。就像做饭,切菜、炒菜、装盘分开来,总比一股脑扔锅里强。
错误处理不能糊弄
有些代码 catch 了异常,然后打个 log 就完事,程序接着跑,结果数据错了都不知道。评审时得看异常有没有合理处理,比如网络请求失败要不要重试,文件打不开是不是提示用户。别让错误悄悄溜走,最后变成线上事故。
避免硬编码
把 API 地址、超时时间、开关状态这些写死在代码里,换环境就得改源码,太危险。应该提到配置文件或环境变量中。比如:
const TIMEOUT = process.env.REQUEST_TIMEOUT || 5000;
const API_URL = process.env.API_BASE_URL;这样运维切换测试和生产环境时,不用碰代码一行。
代码评审时多问一句
看到不理解的地方,别怕问“这块为啥这么写?” 有时候是历史原因,有时候是疏忽。交流多了,团队的习惯自然就拉齐了。编码标准不是贴在墙上的文档,而是每天写代码时的实际动作。