Naming Styles

计算机领域中所有主流的命名风格(Naming Styles)完整列表,按使用频率排序并附典型场景说明:


一、基础命名风格(8种核心类型)

命名风格 格式示例 主要应用场景 特点
1. 蛇形命名 user_name Python变量、SQL字段、Linux文件系统 全小写 + 下划线分隔
2. 小驼峰命名 userName Java/JS变量、JSON键名、Swift属性 首字母小写 + 单词首字母大写
3. 大驼峰命名 UserName Java/C#类名、TypeScript接口、Go类型 所有单词首字母大写
4. 烤肉串命名 user-name HTML属性、CSS类名、URL slug 全小写 + 连字符分隔
5. 常量命名 MAX_SIZE 全局常量、环境变量、预处理器宏 全大写 + 下划线分隔
6. 匈牙利命名 strUserName Win32 API(历史)、旧版C++ 类型前缀 + 小驼峰
7. 点分隔命名 user.profile.email 命名空间、配置路径、对象属性访问 层级结构 + 点连接符
8. 大写蛇形 USER_NAME 汇编语言、COBOL变量、旧系统常量 全大写 + 下划线(无类型前缀)

二、特殊场景命名风格(6种专用类型)

命名风格 格式示例 典型应用场景 规则说明
9. 逆域名命名 com.company.project Java包名、Android应用ID、iOS Bundle ID 从顶级域名开始反向书写
10. 首字母缩写 XMLHttpRequest 技术术语缩写(XML/HTTP) 全大写或首字母大写
11. 单字母命名 i, j, k 循环计数器、数学公式、lambda参数 极简上下文
12. 双下划线前缀 __internal_var Python魔术方法、C++编译器保留 系统级保留标识
13. 前缀分组命名 btn_submit UI组件(btn_/lbl_/txt_)、CSS BEM 功能类型前缀 + 蛇形/烤肉串
14. 骆驼蛇混合 AWS_AccessKeyId 云服务SDK(AWS/Azure) 常量部分大写 + 小驼峰

三、新兴命名风格(4种现代变体)

命名风格 格式示例 应用场景 创新点
15. 中缀表达式命名 user->profile->email PHP箭头语法、C++智能指针 符号连接代替分隔符
16. 表情符号命名 🚀launch_config 命令行工具别名、测试数据标记 Unicode增强可读性
17. 零分隔命名 username 域名、短标识符、微服务名称 无分隔符(依赖大小写敏感)
18. 链式调用命名 select().from().where() Fluent API设计、Builder模式 方法链 + 动词开头

四、领域特定命名风格(按技术栈分类)

数据库系统

风格 示例 数据库
全大写蛇形 EMPLOYEE_ID Oracle传统规范
方括号转义 [Order Date] SQL Server保留字
反引号转义 `user` MySQL保留字

前端开发

风格 示例 框架
$前缀响应式 $refs Vue.js
钩子函数命名 useState() React Hooks
组件名多单词 <DatePicker/> Vue/React规范

系统编程

风格 示例 语言
下划线后缀 type_t C/C++类型定义
全小写无分隔 getchar C标准库
感叹号后缀 save! Ruby危险方法

五、命名风格转换对照表

原始格式 → 蛇形命名 → 小驼峰 → 常量格式
UserName user_name userName USER_NAME
order-item order_item orderItem ORDER_ITEM
HTTPResponse http_response httpResponse HTTP_RESPONSE
MAX_BUFFER max_buffer maxBuffer MAX_BUFFER

六、选择命名风格的黄金原则

  1. 语言主导

    • Python:强制蛇形命名 (model.save())
    • Java:强制驼峰命名 (userService.updateProfile())
  2. 平台约束

    • SQL:蛇形命名兼容大小写敏感 (SELECT user_id)
    • JSON:小驼峰保证JS兼容性 ({"orderId": 1001})
  3. 可读性优先

    • 超过3个单词:推荐蛇形命名 (customer_payment_history)
    • 布尔值:前缀增强语义 (is_valid, hasPermission)
  4. 历史兼容

    • 旧系统:保留匈牙利命名 (lpszFileName - Win32)
    • 新项目:禁用匈牙利命名

终极建议:在项目启动时通过 .editorconfigeslintrc 等工具强制统一规范。例如:

// .eslintrc.json
{
  "rules": {
    "camelcase": ["error", { "properties": "always" }] // 强制小驼峰
  }
}

可根据具体技术栈(如:Python + PostgreSQL + React)提供定制化命名规范方案。