Skip to content

命名规范

文件 / 目录

规范示例
前端文件 / 目录kebab-caseuser-list.vuehooks/use-table.ts
后端文件 / 目录snake_caseinit_helper.pyhr/api/manage.py
业务模块名snake_case,单词hr / inventory / notify

Python 标识符

类型规范示例
PascalCaseUserController / EmployeeCreate
函数 / 方法snake_caseget_user() / create_employee()
模块级常量UPPER_SNAKE_CASESECRET_KEY / SUPER_ADMIN_ROLE
模块级私有_snake_case_safe_update_or_create()
字段(DB / Schema 内部)snake_caseuser_name / created_at
字段(HTTP 边界)camelCase(自动转换)userName / createdAt
Pydantic 模型PascalCase + Create / Update / Search / Out 后缀EmployeeCreate / EmployeeSearch
Tortoise 模型PascalCase 单数Employee / Department
Tortoise Meta.table<scope>_<module>_<entity>biz_hr_employee / sys_dictionary

TypeScript 标识符

类型规范示例
组件名PascalCaseUserCard
Composable / hookuseXxxuseTable / useAuth
函数camelCasegetUser()
常量UPPER_SNAKE_CASEMAX_COUNT
API 请求函数fetchXxxfetchUserList() / fetchLogin()
类型 / 接口Api.<Module>.<Type>Api.User.UserOut

URL / 路径

类型规范示例
资源段复数 + kebab-case/users / /departments / /system-manage/users
子资源复数 + 父 ID/roles/{id}/menus
集合动作资源 + /<verb-noun>/roles/batch-offline / /apis/refresh
实例动作/{id}/<verb-noun>/employees/{id}/transition
派生查询/<noun>/menus/tree / /menus/pages
不要尾斜杠、camelCase、复数 + 单数混用/users/ / ❌ /userList / ❌ /user

业务码

B_<MODULE>_<RESOURCE>_<ACTION>      # 按钮编码
R_<UPPER>                           # 角色编码
含义
B_HR_EMP_CREATEHR / 员工 / 创建
B_HR_EMP_TRANSITIONHR / 员工 / 状态流转
R_HR_ADMINHR 管理员
R_DEPT_MGR通用部门主管
R_SUPER超级管理员(保留)

路由名(菜单 route_name)

<module>               # 顶级目录
<module>_<page>        # 二级页面
<module>_<page>_<sub>  # 三级
路径
home/home
hr/hr
hr_department/hr/department
hr_employee_detail/hr/employee/detail
function_multi-tab/function/multi-tab(多词在段内用 kebab)

route_name 是前端 vue-router 的 name,也是后端 Menu.route_name 唯一键,务必稳定——改名意味着所有引用它的角色 seed 都要改。

i18n key

route.<route_name>             # 路由 / 菜单标题
page.<module>.<key>            # 页面内文案
common.<key>                   # 全局通用

缓存键

范围模板示例
系统级权限role:{code}:* / user:{uid}:*role:R_HR_ADMIN:apis
业务模块自有<module>_<resource>:<scope>dict_options:tag_category
启动协调app:<purpose>app:init_lock / app:init_done

事件名

<aggregate>.<verb>           # 小写 + 点
含义
employee.created员工创建
employee.status_changed员工状态流转
order.refunded订单退款

数据库

类型规范
表名<scope>_<module>_<entity>(小写 + 下划线,单数)
主键id(int)
外键字段<entity>_id(如 department_id
时间字段created_at / updated_at / deleted_at
状态字段statusstatus_type(按前端期望)

其他

  • Python 模块的 __all__ 仅暴露真正的"公开符号",私有用 _ 前缀
  • 测试文件与被测模块同名 + test_ 前缀(tests/test_employee_service.py
  • 不要用单字母变量名(l, O, I 在某些字体下会混淆);循环计数允许 i, j

基于 MIT 协议发布