Skip to content

命名规范 ​

文件 / 目录 ​

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

Python 标识符 ​

类型规范示例
类PascalCaseUserController / ProductCreate
函数 / 方法snake_caseget_user() / create_product()
模块级常量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 后缀ProductCreate / ProductSearch
Tortoise 模型PascalCase 单数Product / Warehouse
Tortoise Meta.table<scope>_<module>_<entity>biz_inventory_product / 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 / /warehouses / /system-manage/users
子资源复数 + 父 ID/roles/{id}/menus
集合动作资源 + /<verb-noun>/roles/batch-offline / /apis/refresh
实例动作/{id}/<verb-noun>/products/{id}/transition
派生查询/<noun>/menus/tree / /menus/pages
不要尾斜杠、camelCase、复数 + 单数混用❌ /users/ / ❌ /userList / ❌ /user

业务码 ​

B_<MODULE>_<RESOURCE>_<ACTION>  # 按钮编码
R_<UPPER>                       # 角色编码
例含义
B_INVENTORY_PRODUCT_CREATE库存 / 商品 / 创建
B_INVENTORY_PRODUCT_TRANSITION库存 / 商品 / 状态流转
R_INVENTORY_ADMIN库存管理员
R_DEPT_MGR通用仓库主管
R_SUPER超级管理员(保留)

路由名(菜单 route_name) ​

<module>               # 顶级目录
<module>_<page>        # 二级页面
<module>_<page>_<sub>  # 三级
例路径
home/home
inventory/inventory
inventory_warehouse/inventory/warehouse
inventory_product_detail/inventory/product/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_INVENTORY_ADMIN:apis
业务模块自有<module>_<resource>:<scope>dict_options:tag_category
启动协调app:<purpose>app:init_lock / app:init_done

事件名 ​

<aggregate>.<verb>  # 小写 + 点
例含义
product.created商品创建
product.status_changed商品状态流转
order.refunded订单退款

数据库 ​

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

其他 ​

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

基于 MIT 协议发布