团队开发中最怕什么?不是需求变,也不是工期紧,而是打开同事的代码像在读天书。变量命名五花八门,缩进风格乱七八糟,一个函数几百行还嵌套七八层——这时候,真想问一句:咱能不能好好说话?
好代码自己会说话,但前提是大家说同一种话
编码规范文档就是团队的“编程方言说明书”。它不教你写算法,也不告诉你用哪个框架,但它能确保所有人写出的代码看起来像一个人写的。比如,你们约定所有函数名用驼峰式:getUserInfo,而不是get_user_info或GetUserInfo,那整个项目读起来就顺溜多了。
别一上来就整本《编码宪法》
见过太多团队,一提规范就搞出几十页PDF,从缩进空格数到注释字体颜色全规定一遍。结果呢?没人看,更没人执行。真正有效的规范文档,往往是从几个核心点开始的。
比如先统一这三件事:
1. 缩进用 2 个空格还是 4 个?
2. 字符串用单引号还是双引号?
3. 每行最多多少字符?
把这些写清楚,放进项目根目录的 CODESTYLE.md 里,新人第一天就能上手。
让工具替你较真
人总会犯懒,但机器不会。ESLint、Prettier 这类工具,可以自动检查并格式化代码。与其开会强调“注意格式”,不如在项目里配好配置文件,提交代码时自动修复。
# .prettierrc
{
"semi": true,
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 80
}
谁要是提交了没分号的代码,CI 直接拒绝合并。几次下来,大家自然就习惯了。
注释不是越多越好,关键是要讲人话
别写那种“这个函数用来加法”的注释。真正有用的注释是解释“为什么”。比如:
// 因为后端返回时间戳可能为 null,
// 所以默认设为当前时间,避免前端崩溃
const timestamp = data.time || Date.now();
这种注释才是救命稻草。
把规范变成新人入职包的一部分
很多团队等项目做大了才想起补规范,结果历史代码改不动,只能将就。聪明的做法是,从第一个 commit 就定好基本规则,并把它塞进新人的开发环境配置里。
比如用 Husky 配置 git hooks,新员工克隆完代码,跑一遍 npm install,自动就把 Lint 规则装好了。他第一次提交代码时,工具就会提醒:“兄弟,你这括号前少了个空格。”
定期翻翻旧文档,别让它长霉
规范不是刻在石头上的。半年前觉得必须每函数都写 JSDoc,现在发现 TS 类型标注更靠谱,那就改。别怕调整,关键是让所有人知道变了,并且能方便地看到最新版。
放在 Wiki 上也行,但最简单的办法还是直接维护一个 docs/coding-guide.md,每次更新顺便发个群消息:“注意,接口返回值类型校验从本周起强制开启。”