为什么函数命名这么重要
在开发一个项目时,你有没有遇到过这样的情况:翻出几个月前自己写的代码,看到一个叫 getData() 的函数,点进去发现它不仅获取数据,还处理校验、修改全局变量,甚至弹了个提示框?这时候只能一边挠头一边骂自己当初怎么起这么个模糊的名字。
函数命名不是小事。一个好的名字能让别人(包括未来的你)一眼看懂这段代码是干啥的,省下大量阅读和调试的时间。
命名要具体,别图省事
比如你正在写一个电商网站的购物车功能,有个函数用来计算总价。不要写成 calc() 或者 doMath(),这种名字等于没说。应该写成 calculateCartTotalPrice(),谁看了都知道这是算购物车总金额的。
再比如处理用户登录状态,与其叫 check(),不如叫 validateUserSession(),明确表达它的职责是验证用户会话是否有效。
使用动词开头,体现动作性
函数是“做事情”的,所以名字最好以动词开头。常见的有:get、set、update、delete、validate、format、send 等。
例如:
getUserProfileById(userId)
sendPasswordResetEmail(email)
formatCurrency(amount, locale)这些名字一看就知道函数会触发什么行为,参数也清晰对应。
避免缩写和拼音,保持可读性
有些开发者喜欢用缩写,比如把 calculate 写成 calc,虽然常见还能接受,但像 usrNmChk() 这种就完全看不懂了。更别说用拼音命名,比如 huoQuYongHu(),不仅外国人看不懂,连国内同事都可能拼错。
坚持用完整英文单词,团队协作时沟通成本更低。
统一风格,别混着来
一个项目里,要么全用驼峰命名法(camelCase),要么全用下划线(snake_case),别一会儿 get_user_info(),一会儿又 validateUserInput()。这样看起来杂乱无章,也容易让人怀疑是不是两个不同人写的。
前端常用 camelCase,后端 Python 偏好 snake_case,根据语言和团队约定选一种,并写进函数命名规范文档里。
把命名规则写进文档
很多团队只在口头上说“命名要清楚”,结果每个人理解不一样。建议在项目初期就建一份函数命名规范文档,明确列出:
- 使用哪种命名风格
- 哪些动词用于哪类操作
- 禁止使用的缩写或命名方式
- 提供正反例对照
这份文档可以放在 Wiki 或 README 里,新人一来就能快速上手,老成员也能随时对照。
实际例子对比
下面是一个反面例子:
function a(x) {
if (x < 0) return 0;
return x * 1.08;
}没人看得懂这是干啥。改成:
function calculateFinalPriceWithTax(originalPrice) {
const taxRate = 1.08;
if (originalPrice < 0) {
return 0;
}
return originalPrice * taxRate;
}不仅名字清晰,逻辑也更容易理解。
写代码不是写给自己一个人看的。花一分钟起个好名字,可能帮别人节省十分钟排查时间。函数命名规范文档不是形式主义,而是提升效率的实际工具。