编程语言命名规范汇总
本文档汇总了主流编程语言的命名规范,涵盖项目名、包名、类名、方法名、变量名等场景。
Java
| 类型 | 规范 | 示例 |
|---|
| 项目名 | kebab-case 或 kebab-case,全部小写 | my-project, user-service |
| 包名 | 全部小写,点分隔层级,反域名格式 | com.example.project |
| 类名 | UpperCamelCase,每个单词首字母大写 | UserService, OrderController |
| 接口名 | UpperCamelCase,可加 I 前缀(可选) | UserRepository, IUserService |
| 方法名 | lowerCamelCase,首单词小写 | getUserById, saveOrder |
| 变量名 | lowerCamelCase,简洁有意义 | userName, orderList |
| 常量 | UPPER_SNAKE_CASE,下划线分隔 | MAX_RETRY_COUNT, DEFAULT_TIMEOUT |
| 枚举值 | UPPER_SNAKE_CASE | READ_ONLY, ACTIVE_STATUS |
JavaScript / TypeScript
| 类型 | 规范 | 示例 |
|---|
| 项目名 | kebab-case 或 kebab-case | my-project, user-service |
| 目录名 | kebab-case 或 PascalCase(组件) | utils/, components/UserCard/ |
| 文件名 | kebab-case(普通文件),PascalCase(组件) | date-utils.ts, UserCard.tsx |
| 类名 | PascalCase | UserService, OrderController |
| 接口名 | PascalCase,可加 I 前缀(TS常用) | User, IUserProps |
| 类型名 | PascalCase | ApiResponse, UserRole |
| 方法名 | lowerCamelCase | getUserById, fetchData |
| 变量名 | lowerCamelCase | userName, isActive |
| 常量 | UPPER_SNAKE_CASE 或 lowerCamelCase | MAX_RETRIES, apiEndpoint |
| 枚举 | PascalCase(类型),UPPER_SNAKE_CASE(值) | enum UserRole { ADMIN = 'admin' } |
Python
| 类型 | 规范 | 示例 |
|---|
| 项目名 | snake_case,全部小写 | my_project, user_service |
| 包名 | 全部小写,短横线(实际用下划线) | my_package, utils |
| 模块名 | snake_case,全部小写 | date_utils.py, user_controller.py |
| 类名 | PascalCase(CapWords) | UserService, OrderController |
| 函数名 | snake_case,全部小写 | get_user_by_id(), save_order() |
| 方法名 | snake_case | def calculate_total() |
| 变量名 | snake_case | user_name, order_list |
| 常量 | UPPER_SNAKE_CASE | MAX_RETRY_COUNT, DEFAULT_TIMEOUT |
| 私有成员 | 下划线前缀 | _internal_method, _private_var |
Go
| 类型 | 规范 | 示例 |
|---|
| 项目名 | 全部小写,snake_case 或单词连用 | my-project, user service(不常用) |
| 包名 | 全部小写,短小简洁,无下划线 | utils, user, httputil |
| 目录名 | 全部小写,snake_case(不推荐),常用单词 | user_service/, httputil/ |
| 文件名 | 全部小写,snake_case | user_service.go, date_utils.go |
| 结构体名 | PascalCase,首字母大写导出 | UserService, OrderItem |
| 接口名 | PascalCase,一般以 er 结尾 | Reader, Writer, UserRepository |
| 函数名 | PascalCase(导出),小写(不导出) | GetUserByID(), saveOrder() |
| 变量名 | lowerCamelCase,简洁 | userName, orderList |
| 常量 | 导出用 PascalCase,不导出用 CamelCase | MaxRetries, defaultTimeout |
| 错误类型 | err 变量 + PascalCase 类型 | err := errors.New("not found") |
C#
| 类型 | 规范 | 示例 |
|---|
| 项目名 | PascalCase | MyProject, UserService |
| 命名空间 | PascalCase,点分隔 | MyProject.Services, Company.Product |
| 类名 | PascalCase | UserService, OrderController |
| 接口名 | PascalCase,可加 I 前缀 | IUserService, IUserRepository |
| 方法名 | PascalCase | GetUserById(), SaveOrder() |
| 属性名 | PascalCase | UserName, IsActive |
| 变量名 | CamelCase(局部),PascalCase(成员) | userName, _internalField |
| 常量 | PascalCase | MaxRetryCount, DefaultTimeout |
| 枚举 | PascalCase(类型),PascalCase(值) | enum UserRole { Admin, Guest } |
| 私有字段 | CamelCase 或下划线 + CamelCase | _userName, userName |
Rust
| 类型 | 规范 | 示例 |
|---|
| 项目名 | snake_case,全部小写 | my_project, user_service |
| 包名(Crate) | snake_case | my_crate, serde_json |
| 模块名 | snake_case | user_service, date_utils |
| 文件名 | snake_case | user_service.rs, mod.rs |
| 结构体名 | PascalCase | UserService, OrderItem |
| 枚举名 | PascalCase | UserRole, OrderStatus |
| 枚举值 | PascalCase 或 snake_case(常用) | Active, pending |
| 函数名 | snake_case | get_user_by_id(), save_order() |
| 方法名 | snake_case | fn calculate_total(&self) |
| 变量名 | snake_case | user_name, order_list |
| 常量 | UPPER_SNAKE_CASE | MAX_RETRIES, DEFAULT_TIMEOUT |
| ** trait 名** | PascalCase | Serialize, Deserializable |
通用原则
-
见名知意 — 名称应清晰表达含义,避免模糊缩写
-
避免缩写 — 除非是通用公认缩写(如 id, db, api)
-
保持一致 — 同一个项目/团队内命名风格要统一
-
语言惯例 — 遵循各语言社区约定俗成的风格
-
简短清晰 — 在保证清晰的前提下尽量简洁
命名风格对照表
| 风格 | 格式 | 示例 |
|---|
| PascalCase | 单词首字母大写,无分隔符 | UserService, OrderItem |
| camelCase | 首单词小写,后续单词首字母大写 | userName, getUserById |
| snake_case | 单词小写,下划线分隔 | user_name, get_user_by_id |
| kebab-case | 单词小写,连字符分隔 | user-name, user-service |
| UPPER_SNAKE_CASE | 全大写,下划线分隔 | MAX_RETRIES, DEFAULT_TIMEOUT |