CRL Team——Beta冲刺代码规范

CRLTeam 2025-11-24 22:17:07
这个作业属于哪个课程2501_CS_SE_FZU
团队名称CRL Team
这个作业要求在哪里团队作业—Beta冲刺
这个作业的目标Beta冲刺代码规范
其他参考文献

目录

  • 一、代码规范
  • 1. 通用规范
  • 1.1 命名原则
  • 1.2 注释要求
  • 1.3 版本控制
  • 2. Java后端规范(参考阿里巴巴Java开发手册)
  • 2.1 命名规范
  • 2.2 代码格式
  • 2.3 集合与数组
  • 2.4 异常处理
  • 2.5 数据库操作
  • 3. Vue 前端规范(参考华为前端规范及 Vue 官方风格指南)
  • 3.1 命名规范
  • 3.2 组件设计
  • 3.3 模板与样式
  • 4. 规范执行与监督

一、代码规范

1. 通用规范

1.1 命名原则

  • 可读性优先:命名需清晰表达含义,避免缩写(公认缩写如URLDTO除外)。
  • 一致性:同类型元素命名风格统一(如后端接口统一前缀、前端组件统一后缀)。
  • 避免关键字:不使用编程语言或框架的保留字(如classfunction)。

1.2 注释要求

  • 必须注释:公共接口、核心算法、复杂逻辑、异常处理需详细注释。
  • 注释格式:使用工具规范(Java用/** */,Vue用/** *///),注释与代码同步更新。
  • 禁用冗余注释:避免对显而易见的代码(如i++)加注释。

1.3 版本控制

  • 分支命名:feature/功能名(新功能)、fix/问题描述(修复)、release/版本号(发布)。
  • 提交信息:格式为[类型] 描述(如[feat] 新增用户登录接口[fix] 修复订单计算bug)。
  • 代码提交:每次提交聚焦单一功能或修复,避免大篇幅混合修改。

2. Java后端规范(参考阿里巴巴Java开发手册)

2.1 命名规范

  • 类名:使用UpperCamelCase(帕斯卡命名法),如UserControllerOrderService
  • 方法名/参数名/变量名:使用lowerCamelCase(驼峰命名法),如getUserByIdorderAmount
  • 常量:全大写+下划线分隔,如MAX_RETRY_COUNTORDER_STATUS_PAID
  • 包名:全小写,使用域名反转+模块名,如com.team.project.user.controller

2.2 代码格式

  • 缩进:4个空格(禁用Tab),一行代码不超过120字符(过长需换行)。
  • 括号:{ 不单独换行,如:
    ```java
    if (condition) { // 正确
    // 逻辑
    }
    空行:方法间空一行,逻辑块间空一行,避免连续空行。

2.3 集合与数组

  • 初始化指定容量:如List userList = new ArrayList<>(10);(避免频繁扩容)。
  • 禁用ArrayList的subList:其返回的是视图,可能导致内存泄漏。
  • 集合遍历:优先使用增强 for 循环,避免在循环中调用size()方法:
    for (User user : userList) { ... } // 正确

2.4 异常处理

  • 不捕获Exception基类:需精确捕获具体异常(如NullPointerException)。
  • 异常信息:需包含上下文(如"用户ID: " + userId + " 不存在"),禁止空异常(catch (Exception e) {})。
  • 自定义异常:业务异常需继承RuntimeException,并包含错误码和描述。

2.5 数据库操作

  • SQL 命名:SELECT语句变量名前缀query,UPDATE前缀update,如queryUserById。
  • 分页查询:必须包含limit和offset,避免全表扫描。
  • 事务:非查询操作(增删改)需加事务注解@Transactional,明确rollbackFor。

3. Vue 前端规范(参考华为前端规范及 Vue 官方风格指南)

3.1 命名规范

  • 组:
    全局组件:PascalCase(如UserForm),并注册在components目录。
    单文件组件(SFC):文件名与组件名一致(如UserForm.vue)。
    局部组件:kebab-case(如user-list)。
  • 变量 / 方法:camelCase(如userInfo、handleSubmit)。
  • 常量:UPPER_SNAKE_CASE(如const MAX_UPLOAD_SIZE = 10 * 1024 * 1024;)。
  • CSS 类名:kebab-case(如.user-avatar),避免使用id选择器。

3.2 组件设计

  • 拆分原则:单个组件代码不超过 300 行,功能单一(如UserForm只处理表单,UserList只处理列表)。
  • Props 规范:
    定义时指定类型和默认值:
    vue
    props: {
    userId: {
    type: Number,
    required: true,
    validator: (value) => value > 0 // 自定义校验
    }
    }
    避免直接修改props,通过$emit通知父组件更新。
  • 状态管理:
    全局状态(如用户信息)用 Vuex/Pinia,局部状态用组件data。
    Vuex/Pinia 中,state只通过mutation/action修改,禁止直接赋值。

3.3 模板与样式

  • 模板缩进:2 个空格,标签属性换行(超过 2 个属性时):
    vue
    <el-button
    type="primary"
    size="small"
    @click="handleSave"
    保存 样式作用域:组件内样式需加scoped,避免全局污染: vue 避免v-if与v-for同用:如需使用,v-for优先级更高(或用计算属性过滤)。 #### 3.4 性能优化
  • 列表渲染:必须加key(且唯一),如v-for="item in list" :key="item.id"。
  • 事件解绑:组件销毁前解绑自定义事件(如window.scroll),避免内存泄漏。
  • 图片优化:使用懒加载(v-lazy),指定width和height避免布局偏移。

4. 规范执行与监督

  • 工具强制约束:
    后端:使用CheckStyle插件(规则基于阿里巴巴手册),IDE 配置自动格式化。
    前端:使用ESLint + Prettier,配置vue-eslint-config,提交前自动校验。
  • 代码审查:
    提交 PR/MR 时,需至少 1 名团队成员审查,重点检查规范符合性。
    审查不通过的代码需修改后重新提交。
  • 定期更新:每季度根据团队反馈和技术演进更新规范,同步至所有成员。
...全文
58 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

103

社区成员

发帖
与我相关
我的任务
社区描述
2501_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_LQF
  • 木村修
  • 心态773
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧