一、通用基础原则

  1. 见名知意:禁止单字母无意义命名(除循环临时变量 i,j,k),避免 a,b,c,data,temp 模糊命名

  2. 禁止中文、空格、特殊符号;仅允许字母、数字、下划线;不能以数字开头

  3. 区分大小写:绝大部分编程语言大小写敏感

  4. 避免语言关键字classifreturnint 等不能用作变量名

  5. 名词 / 名词短语:变量存储数据使用名词;方法 / 函数使用动词

错误示例:snum1(含义不明)

正确示例:userAgeorderList

二、常见命名风格

1. 小驼峰

小驼峰:camelCase

规则:首字母小写,后续每个单词首字母大写

使用场景:Java、JavaScript、TypeScript、C#(变量 / 方法)

userName
orderTotalPrice
isEnabled

2. 大驼峰

大驼峰:PascalCase / UpperCamelCase,也叫帕斯卡命名法

规则:所有单词首字母大写

使用场景:Java 类名、C# 类 / 结构体、JypeScript /TypeScript 类、前端组件名

UserInfo
OrderService
StudentController

3. 蛇形命名

蛇形命名:snake_case,下划线命名

规则:全部小写,单词之间用下划线 _ 分隔

使用场景:Python 变量/函数、Shell、PHP、数据库字段

user_name
order_total_price
is_valid

4. 常量命名

常量命名: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 = 200

5. C / C++

  • 风格不统一,两套主流:

    方案 A(Linux 内核风格):snake_case

    方案 B(Windows/VC 风格):camelCase

  • 宏常量:强制大写下划线 UPPER_SNAKE_CASE

int user_age;
#define MAX_BUFFER 1024

6. SQL

统一推荐:snake_case

禁止驼峰!很多数据库(MySQL 默认)大小写不敏感,驼峰会产生歧义

-- 推荐
user_name, order_total, create_time
-- 不推荐
userName, OrderTotal

四、布尔变量规范

布尔变量建议以 is/has/can/should 开头,语义清晰

正确示例isDeletedhasPermissioncanSubmit

错误示例deletedpermission

五、缩写使用规范

  1. 通用公认缩写可直接使用:

    id(ID)url(URL)api(API)httpmsg(message)

userId, requestUrl
  1. 自定义词汇不要随意缩写,避免歧义

六、避免的现象

  1. 不要混用风格:同一个项目不要同时 userNameuser_name

  2. 不要过长:控制在 2~4 个单词,杜绝超长变量

  3. 不要使用英文简写玄学:usrNm(不推荐)→ userName(推荐)

  4. 循环变量仅单层循环可用 i,j,k;多层建议 index,rowIndex