为什么代码要格式化?
刚入行那会儿,我接手过一个老项目。打开文件的一瞬间,差点没认出这是JavaScript——缩进乱七八糟,括号位置五花八门,有的用单引号,有的用双引号,甚至同一文件里都不统一。读代码像解谜,改一行怕崩三块。
后来才明白,这不是代码能不能跑的问题,而是人能不能看懂的问题。代码格式化规范,本质上是程序员之间的“普通话”。大家按同一套规则写代码,沟通成本直接降下来。
常见的格式化规则有哪些?
不同语言有不同习惯,但核心原则差不多。比如缩进,有人爱用两个空格,有人坚持四个空格,还有人非Tab不用。关键是整个项目保持一致。
以JavaScript为例:
function calculateTotal(items) {<br> return items.reduce((total, item) => {<br> return total + item.price;<br> }, 0);<br>}<br>上面这段用了4个空格缩进、ES6箭头函数、尾逗号省略。如果团队定的是2个空格+传统function写法,就得改成这样:
function calculateTotal(items) {<br> return items.reduce(function(total, item) {<br> return total + item.price;<br> }, 0);<br>}<br>功能完全一样,只是写法统一了。就像同事穿工服上班,不为好看,只为一眼认出来。
自动工具比人靠谱
靠人自觉维持格式太难了。新人来了记不住规则,赶工期时随手一通乱改。好在现在有Prettier、ESLint、Black这些工具,保存文件时自动帮你格式化。
比如在VS Code里装上Prettier插件,再配上项目根目录的.prettierrc配置文件:
{<br> "semi": true,<br> "trailingComma": "es5",<br> "singleQuote": true,<br> "tabWidth": 2<br>}<br>只要勾选“Format on Save”,每次保存代码都会自动对齐、加引号、补分号。再也不用在Code Review时揪着同事问“你这括号为啥这么放?”
团队怎么落地这套规范?
光说“我们要规范”没用。最好在项目初始化阶段就把规则定下来,写进README,再配好.lintstagedrc或husky钩子,提交代码前自动检查格式。不合规矩的,连Git都拒绝接收。
新成员入职,拉下代码就能看到统一风格,潜移默化就学会了。时间一长,看到不规范的代码自己都觉得别扭,这才是真正的文化落地。
格式化不是追求完美主义,而是减少无谓争论。把精力省下来,去解决真正复杂的业务问题,不香吗?