编程语言命名规范汇总

本文档汇总了主流编程语言的命名规范,涵盖项目名、包名、类名、方法名、变量名等场景。


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_CASEREAD_ONLY, ACTIVE_STATUS

JavaScript / TypeScript

类型规范示例
项目名kebab-case 或 kebab-casemy-project, user-service
目录名kebab-case 或 PascalCase(组件)utils/, components/UserCard/
文件名kebab-case(普通文件),PascalCase(组件)date-utils.ts, UserCard.tsx
类名PascalCaseUserService, OrderController
接口名PascalCase,可加 I 前缀(TS常用)User, IUserProps
类型名PascalCaseApiResponse, UserRole
方法名lowerCamelCasegetUserById, fetchData
变量名lowerCamelCaseuserName, isActive
常量UPPER_SNAKE_CASE 或 lowerCamelCaseMAX_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_casedef calculate_total()
变量名snake_caseuser_name, order_list
常量UPPER_SNAKE_CASEMAX_RETRY_COUNT, DEFAULT_TIMEOUT
私有成员下划线前缀_internal_method, _private_var

Go

类型规范示例
项目名全部小写,snake_case 或单词连用my-project, user service(不常用)
包名全部小写,短小简洁,无下划线utils, user, httputil
目录名全部小写,snake_case(不推荐),常用单词user_service/, httputil/
文件名全部小写,snake_caseuser_service.go, date_utils.go
结构体名PascalCase,首字母大写导出UserService, OrderItem
接口名PascalCase,一般以 er 结尾Reader, Writer, UserRepository
函数名PascalCase(导出),小写(不导出)GetUserByID(), saveOrder()
变量名lowerCamelCase,简洁userName, orderList
常量导出用 PascalCase,不导出用 CamelCaseMaxRetries, defaultTimeout
错误类型err 变量 + PascalCase 类型err := errors.New("not found")

C#

类型规范示例
项目名PascalCaseMyProject, UserService
命名空间PascalCase,点分隔MyProject.Services, Company.Product
类名PascalCaseUserService, OrderController
接口名PascalCase,可加 I 前缀IUserService, IUserRepository
方法名PascalCaseGetUserById(), SaveOrder()
属性名PascalCaseUserName, IsActive
变量名CamelCase(局部),PascalCase(成员)userName, _internalField
常量PascalCaseMaxRetryCount, DefaultTimeout
枚举PascalCase(类型),PascalCase(值)enum UserRole { Admin, Guest }
私有字段CamelCase 或下划线 + CamelCase_userName, userName

Rust

类型规范示例
项目名snake_case,全部小写my_project, user_service
包名(Crate)snake_casemy_crate, serde_json
模块名snake_caseuser_service, date_utils
文件名snake_caseuser_service.rs, mod.rs
结构体名PascalCaseUserService, OrderItem
枚举名PascalCaseUserRole, OrderStatus
枚举值PascalCase 或 snake_case(常用)Active, pending
函数名snake_caseget_user_by_id(), save_order()
方法名snake_casefn calculate_total(&self)
变量名snake_caseuser_name, order_list
常量UPPER_SNAKE_CASEMAX_RETRIES, DEFAULT_TIMEOUT
** trait 名**PascalCaseSerialize, Deserializable

通用原则

  1. 见名知意 — 名称应清晰表达含义,避免模糊缩写

  2. 避免缩写 — 除非是通用公认缩写(如 id, db, api

  3. 保持一致 — 同一个项目/团队内命名风格要统一

  4. 语言惯例 — 遵循各语言社区约定俗成的风格

  5. 简短清晰 — 在保证清晰的前提下尽量简洁


命名风格对照表

风格格式示例
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