计算机领域中所有主流的命名风格(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 |
六、选择命名风格的黄金原则
-
语言主导
- Python:强制蛇形命名 (
model.save()) - Java:强制驼峰命名 (
userService.updateProfile())
- Python:强制蛇形命名 (
-
平台约束
- SQL:蛇形命名兼容大小写敏感 (
SELECT user_id) - JSON:小驼峰保证JS兼容性 (
{"orderId": 1001})
- SQL:蛇形命名兼容大小写敏感 (
-
可读性优先
- 超过3个单词:推荐蛇形命名 (
customer_payment_history) - 布尔值:前缀增强语义 (
is_valid,hasPermission)
- 超过3个单词:推荐蛇形命名 (
-
历史兼容
- 旧系统:保留匈牙利命名 (
lpszFileName- Win32) - 新项目:禁用匈牙利命名
- 旧系统:保留匈牙利命名 (
终极建议:在项目启动时通过
.editorconfig和eslintrc等工具强制统一规范。例如:// .eslintrc.json { "rules": { "camelcase": ["error", { "properties": "always" }] // 强制小驼峰 } }
可根据具体技术栈(如:Python + PostgreSQL + React)提供定制化命名规范方案。