常用代码命名规范

4 阅读3分钟

先思考:为什么代码要有命名规范?

  首先代码是写给人看的,然后才给机器执行。其次团队协作间统一语言可以减少沟通成本。同时最重要的是,规范命名便于长期维护代码。核心目的就是让别人(以及未来的你)在最短时间内看懂代码。

1.大驼峰 PascalCase(帕斯卡命名法)

规则:每个单词首字母大写,无分隔符

示例:UserInfo、OrderService、StudentScoreList

2.小驼峰 camelCase(驼峰命名法)

规则:第一个单词首字母小写,后续单词首字母大写,无分隔符

示例:userInfo、orderList、getUserById

3. 蛇形命名 snake_case(下划线命名)

规则:全部小写,单词之间用下划线 _ 分隔

示例:user_age`、`order_list

4. 大写蛇形 UPPER_SNAKE_CASE(宏命名)

规则:全部大写,下划线分隔 示例:MAX_PAGE_SIZE、DEFAULT_TIMEOUT

5. 短横线命名 kebab-case(烤串命名)

规则:全部小写,单词用 - 分隔 示例:user-name、page-header

⚠️ 绝大多数编程语言变量名不能用(减号会被识别成运算符) 适用场景:CSS class、URL、文件名、HTML 属性

6. 匈牙利命名法 Hungarian notation

规则:变量名前缀增加类型标识,后面接业务名称 示例:strUserName(str = 字符串)、nCount(n = 数字)

现状:现在不推荐,老 C++/Windows 代码多见,现代 IDE 可以直接看类型,冗余。

主流语言推荐命名规范

语言类 / 类型变量函数 / 方法常量
JavaPascalCasecamelCasecamelCaseUPPER_SNAKE_CASE
JavaScript/TSPascalCasecamelCasecamelCaseUPPER_SNAKE_CASE
PythonPascalCase(类)snake_casesnake_caseUPPER_SNAKE_CASE
C#PascalCasecamelCase(局部变量)PascalCase(方法)UPPER_SNAKE_CASE
GoPascalCase(导出)/ camelCase(私有)camelCasecamelCaseUPPER_SNAKE_CASE
SQLsnake_casesnake_case-UPPER_SNAKE_CASE

⚠️说明:Go 官方没有 camelCase 叫法,公开标识符大驼峰,私有标识符小驼峰。

通用命名原则(不管哪种风格都要遵守)

  1. 见名知意,不要单字母无意义命名(除循环 i,j)
  2. 不要拼音混合英文(尽量纯英文)
  3. 不要缩写滥用,通用缩写可以(id、url、ctx)
  4. 命名区分名词 / 动词:变量是名词(user),函数是动词短语(getUser)
  5. 保持项目内风格统一
  6. 布尔变量优先使用 is/has/can/should 前缀;集合、数组变量尽量使用复数形式
  7. 避免冗余重复词汇,少用泛化无意义单词:info、data、model
  8. 特殊缩写驼峰处理:缩写仅首字母大写,如 userId、userUrl,禁止写为 userID、userURL
  9. 函数动词语义明确;拒绝笼统模糊动词,如 handle、process

❌ 反面错误示例(避坑参考)

  1. 无意义命名:a、temp1、dataInfo,无法体现业务含义(循环 i/j 除外)
  2. 中英拼音混合:userXinXi、dingDanList
  3. 过度缩写:usrInf、ordSvc
  4. 语义模糊函数:handleData(),看不出新增、删除、查询逻辑,应改为 saveUserData()
  5. 命名冗余:userInfoModel(类本身就是 Model,无需重复后缀)、orderOrderNo单词重复
  6. 布尔语义模糊:flag、status、isOk;
    • ✅推荐:isEnabled、hasPermission、canSubmit、shouldRefresh
  7. 集合单数命名:用 user 存储数组集合;✅正确写法 userList、orderIds