一、通用基础原则
见名知意:禁止单字母无意义命名(除循环临时变量
i,j,k),避免a,b,c,data,temp模糊命名禁止中文、空格、特殊符号;仅允许字母、数字、下划线;不能以数字开头
区分大小写:绝大部分编程语言大小写敏感
避免语言关键字:
class、if、return、int等不能用作变量名名词 / 名词短语:变量存储数据使用名词;方法 / 函数使用动词
错误示例:
s、num1(含义不明)正确示例:
userAge、orderList
二、常见命名风格
1. 小驼峰
小驼峰:camelCase
规则:首字母小写,后续每个单词首字母大写
使用场景:Java、JavaScript、TypeScript、C#(变量 / 方法)
userName
orderTotalPrice
isEnabled2. 大驼峰
大驼峰:PascalCase / UpperCamelCase,也叫帕斯卡命名法
规则:所有单词首字母大写
使用场景:Java 类名、C# 类 / 结构体、JypeScript /TypeScript 类、前端组件名
UserInfo
OrderService
StudentController3. 蛇形命名
蛇形命名:snake_case,下划线命名
规则:全部小写,单词之间用下划线 _ 分隔
使用场景:Python 变量/函数、Shell、PHP、数据库字段
user_name
order_total_price
is_valid4. 常量命名
常量命名:UPPER_SNAKE_CASE,大写字母+下划线
规则:全部大写,下划线分隔单词
使用场景:全局常量、静态常量(所有语言通用规范)
MAX_PAGE_SIZE
DEFAULT_TIMEOUT
HTTP_OK_CODE三、流编程语言规范
1. Java
变量、方法:camelCase
类、接口:PascalCase
常量:UPPER_SNAKE_CASE
成员变量禁止下划线开头(不推荐
_userName)
private Integer userAge;
public List<Order> getOrderList(){}
public static final Integer MAX_COUNT = 100;
public class UserService {}2. Python
普通变量、函数:snake_case
类名:PascalCase
常量:UPPER_SNAKE_CASE
私有变量约定:单下划线开头
_user_id
user_name = "zhangsan"
def get_order_list():
pass
class UserInfo:
pass
MAX_RETRY_TIMES = 5
3. JavaScript / TypeScript
变量、函数:小驼峰 camelCase
Class、React/Vue 组件:大驼峰 PascalCase
常量:大写下划线
const userAddress = "";
function getUserList() {}
class UserModel {}
const DEFAULT_STATUS = 1;4. Go 语言
变量:小驼峰
导出变量:大驼峰;私有变量小驼峰
常量:推荐驼峰,也可大写下划线
var userName string
var UserName string // 包外可访问
const MaxLimit = 2005. C / C++
风格不统一,两套主流:
方案 A(Linux 内核风格):snake_case
方案 B(Windows/VC 风格):camelCase
宏常量:强制大写下划线 UPPER_SNAKE_CASE
int user_age;
#define MAX_BUFFER 10246. SQL
统一推荐:snake_case
禁止驼峰!很多数据库(MySQL 默认)大小写不敏感,驼峰会产生歧义
-- 推荐
user_name, order_total, create_time
-- 不推荐
userName, OrderTotal
四、布尔变量规范
布尔变量建议以 is/has/can/should 开头,语义清晰
正确示例:isDeleted、hasPermission、canSubmit
错误示例:deleted、permission
五、缩写使用规范
通用公认缩写可直接使用:
id(ID)、url(URL)、api(API)、http、msg(message)
userId, requestUrl自定义词汇不要随意缩写,避免歧义
六、避免的现象
不要混用风格:同一个项目不要同时
userName和user_name不要过长:控制在 2~4 个单词,杜绝超长变量
不要使用英文简写玄学:
usrNm(不推荐)→userName(推荐)循环变量仅单层循环可用
i,j,k;多层建议index,rowIndex
评论