不鸽工程队 —— 代码规范、冲刺任务与计划
不鸽工程队 —— 代码规范、冲刺任务与计划
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 202601-福大-软件工程实践-W班 |
| 这个作业要求在哪里 | 软件工程实践团队作业-站立式会议+α冲刺 |
| 这个作业的目标 | 制定团队代码规范、明确 α 冲刺任务与计划 |
| 其他参考文献 | 邹欣.《构建之法:现代软件工程》(第4版)、《阿里巴巴 Java 开发手册(终极版)》 |
目录
- 不鸽工程队 —— 代码规范、冲刺任务与计划
- 一、 团队代码规范
- 1. 命名规范
- 2. 代码格式规范
- 3. 注释规范
- 4. 异常处理与日志规范(强制)
- 5. Spring Boot 与数据库规范
- 6. Git 提交与协作规范
- 二、 α 冲刺任务与计划
- 1. 团队分工安排
- 2. 冲刺排期表(每日计划)
- 3. 敏捷协作机制
- 三、 引入 AI 技术员
- 1. AI 程序员(辅助编码)
- 2. AI 测试员(辅助测试)
- 3. AI 设计师(辅助设计)
- 四、 冲刺决心
一、 团队代码规范
为了保证团队 4 名成员在并行开发时的代码质量,减少代码合并冲突,提高代码的可读性与可维护性,本团队严格参考《阿里巴巴 Java 开发手册(终极版)》及业界主流规范,结合本次「不鸽组队」项目的技术栈(Spring Boot + MyBatis + Vue),制定了以下开发红线与规范。
1. 命名规范
| 类型 | 规范 | 正例 | 反例 |
|---|---|---|---|
| 包名 | 全小写,点分隔,单数形式 | com.bugedu.user.controller | com.bugedu.User.Controller |
| 类名 | 大驼峰(UpperCamelCase) | UserController、ActivityService | userController、activity_service |
| 方法名 | 小驼峰(lowerCamelCase),动词开头 | getUserInfo()、publishActivity() | UserInfo()、publish_activity() |
| 变量名 | 小驼峰,见名知意,禁止拼音 | activityList、creditScore | list、huodong |
| 常量名 | 全大写,下划线分隔 | MAX_PEOPLE_LIMIT、DEFAULT_CREDIT | maxPeopleLimit、defaultCredit |
| 布尔类型 | 禁止加 is 前缀(防序列化错误) | deleted、status | isDeleted、isStatus |
| POJO 类 | 类名加后缀,区分层级 | UserDTO、ActivityVO、UserDO | User1、UserData |
2. 代码格式规范
- 缩进:统一使用 4 个空格。
- 行宽:单行代码字符数不超过 120 个字符,超长需换行。
- 括号:左大括号
{前不换行,右大括号}后需换行。 - 空行:不同逻辑块之间、方法与方法之间必须空一行。
- 魔法值:不允许任何未经定义的魔法值直接出现在代码中(如状态码
1、2),必须定义为枚举或静态常量。
// 正例:格式规范,消除魔法值
public class ActivityService {
private static final int STATUS_RECRUITING = 1;
public void checkStatus(Activity activity) {
if (activity.getStatus() == STATUS_RECRUITING) {
// 执行业务逻辑
}
}
}
3. 注释规范
- 类注释:所有 Controller、Service、Entity 类顶部必须使用 Javadoc 注释,说明该类的业务用途。
- 方法注释:所有 public 方法必须使用 Javadoc 说明其功能、
@param参数和@return返回值。 - 行内注释:复杂逻辑(如并发防超卖、定时任务扣分)必须写行内注释,且注释应放在代码上方,不放在行尾。
- 及时更新:修改代码时,必须同步修改对应的注释,杜绝“注释与代码不符”的现象。
/**
* 报名业务服务类。
* 负责处理用户的报名、退出及信用分校验逻辑。
*/
@Service
public class RegistrationService {
/**
* 用户报名活动。
* @param activityId 活动ID
* @param userId 用户ID
* @return 报名结果
*/
public Result<Void> register(Long activityId, Long userId) {
// 1. 校验用户信用分是否低于 60
// 2. 使用乐观锁扣减活动名额
return Result.success(null);
}
}
4. 异常处理与日志规范(强制)
- 全局异常拦截:业务代码中不允许出现大量的
try-catch吞异常,统一抛出BusinessException,交由全局异常处理器(@RestControllerAdvice)统一捕获并返回标准格式。 - **禁止
e.printStackTrace()**:所有异常必须使用 SLF4J 记录日志(如log.error("报名失败: {}", e.getMessage())),严禁在生产环境使用System.out.println。 - 资源释放:IO 流、数据库连接等资源,必须使用
try-with-resources语法,防止内存泄漏。
5. Spring Boot 与数据库规范
- 分层架构:严格遵循
Controller(接收请求与校验) ->Service(业务逻辑与事务) ->Mapper(SQL 操作)三层架构,禁止跨层调用。 - 依赖注入:必须使用构造器注入(配合
@RequiredArgsConstructor),禁止使用@Autowired字段注入,保证依赖的不可变性。 - RESTful 路径:接口路径使用名词复数形式,如
GET /api/activities,禁止使用动词(如/getActivity)。 - SQL 规范:MyBatis 的 Mapper 中,严禁使用
${}拼接 SQL(防止 SQL 注入),必须使用#{}预编译占位符。 - 实体类:统一使用 Lombok 的
@Data注解简化 get/set 方法,但 VO/DTO 类建议使用@Builder建造者模式。
6. Git 提交与协作规范
- Git 前准备:每天开工前,先执行
git pull拉取最新代码;推代码前,必须先测试本地能运行。 - 防冲突边界:各成员只在自己负责的包(如
com.bugedu.user)下写代码,严禁修改他人包内的文件。 - Commit Message 格式:必须遵循
<type>: <subject>的格式。 -
feat:新增功能(如:feat: 新增活动发布接口) -
fix:修复 Bug(如:fix: 修复报名并发超卖问题) -
docs:仅修改文档(如:docs: 更新接口文档) -
style:仅修改代码格式(不影响逻辑) -
refactor:代码重构
本文档自 2026 年 10 月 23 日 α 冲刺启动之日起执行。
二、 α 冲刺任务与计划
本次 α 冲刺周期为 7 天(10月23日 - 10月29日)。我们的核心目标是:跑通“登录 → 发布活动 → 报名 → 云端联调”的主流程,并完成进阶功能开发与系统测试。
为了保证前后端并行开发的效率,避免互相干等,团队制定了详细的每日排期、明确的成员分工以及敏捷协作机制。
1. 团队分工安排
在本次编码冲刺阶段,具体分工如下:
| 成员 | 开发岗位 | 主要负责部分 | 具体开发任务安排 |
|---|---|---|---|
| 李佳 | 后端/测试 | 数据库、信用模块、全流程测试 | 数据库实施:负责建表脚本的执行、索引优化与测试数据导入。 信用模块:实现活动互评接口并联动更新信用分;编写定时任务扫描“放鸽子”行为,自动扣除信用分并写入流水。 测试统筹:负责全系统接口测试、功能验收及 Bug 排查。 |
| 施乐山 | 前端开发 | 前端页面与交互 | 负责项目的前端开发。包含登录注册、活动广场、详情页、个人主页等页面的 UI 还原与路由;开发“为你推荐”展示区、“评价队友”星级打分组件及消息未读角标联动逻辑。 |
| 林严泽 | 后端开发 | 报名与消息模块 | 报名管理:实现活动的报名与退出接口,攻克高并发下的名额超卖问题(采用数据库乐观锁与唯一索引防重)。 消息通知:基于 Spring Event 事件机制,在报名成功、活动被取消、活动结束后待评价等关键节点,触发站内信并落库。 |
| 徐鑫 | 后端开发 | 用户与活动模块 | 用户模块:实现用户的注册、登录(JWT 签发)、个人信息修改等接口,保障数据安全。 活动模块:实现活动的发布、多条件筛选列表、活动详情查询,以及基于用户标签和常去地点的活动兴趣推荐接口。 |
2. 冲刺排期表(每日计划)
| 天数 | 李佳(组长/DB/测试/后端:信用) | 施乐山(前端开发) | 林严泽(后端:报名/消息) | 徐鑫(后端:用户/活动) |
|---|---|---|---|---|
| Day 1 10.23 (启动日) | 基建设置:建库并导出 SQL 脚本;搭好 Spring Boot 框架;撰写《代码规范与开发计划》博客。 | 前端架构:Vue3 初始化,配置路由与 Axios。画【登录注册】与【广场列表】静态 UI。 | 环境与实体:在本地搭建环境,编写报名与消息模块的实体类。 | 环境与实体:在本地搭建环境,编写用户与活动模块的实体类。 |
| Day 2 10.24 | 信用功能:编写互评接口的 Service 层逻辑(加分与流水记录)。 | 画详情与发布页:完成【活动详情】、【发布活动】UI。(在 Apifox 建项目,利用 Mock 功能造假数据渲染)。 | 报名核心:编写报名接口(乐观锁防超卖),实现退出与签到。在 Apifox 录入接口并自测。 | 用户核心:完成注册与登录接口(JWT、密码加密)。在 Apifox 录入接口并自测。 |
| Day 3 10.25 | 定时扫描功能:编写“放鸽子”自动扣分的定时任务扫表逻辑,测试限制拦截。 | 画剩余页面:完成【个人主页】、【我的活动】、【消息中心】的 UI。(继续用 Apifox 填充假数据)。 | 消息通知:基于 Spring Event 编写报名成功等消息触发与落库。更新 Apifox 文档。 | 活动发布:完成活动发布、详情查询接口。更新 Apifox 文档。 |
| Day 4 10.26 (部署日) | 云端部署:在华为云服务器装好环境;将前后端代码打包部署上云,配置云端 MySQL。 接口自测:用 Apifox 测试自己的评价接口。 | 第一阶段联调:将 API 请求地址指向云端 IP,对接【登录】、【列表】、【详情】真实接口。 | 接口自测:测试报名并发防超卖、退出、签到。 | 列表与筛选:完成多条件筛选与搜索接口。 |
| Day 5 10.27 | 全量接口测试:用 Apifox 跑全组接口的黑盒测试,记录 Bug 清单。 | 第二阶段联调:对接【发布活动】、【多条件筛选】;调试报名按钮交互。 | 前后端联调:配合前端调试报名报错提示、退出交互及消息已读。 | 前后端联调:配合前端调试发布活动、筛选功能,修复前端反馈的数据问题。 |
| Day 6 10.28 | 功能验收:在云端造几个“信用分低于60”的假用户数据,测试限制报名边界。 | 进阶组件联调:开发“为你推荐”展示区;联调“评价队友”星级组件。 | 修复与优化:解决联调中的接口异常,优化消息通知查询性能。 | 修复与优化:修复前端反馈的分页或数据格式问题。 |
| Day 7 10.29 (收尾日) | 冲刺总结:导出 Apifox 接口文档,写总结博客和制作评审表。 | 做汇报答辩准备 | 准备答辩 PPT | 准备答辩 PPT |
3. 敏捷协作机制
为了在 7 天高压冲刺下保持高效产出,减少沟通内耗,团队确立了以下三大协作机制:
- 每日站立式会议:每晚 21:00 准时在腾讯会议召开,同步“昨日进展、今日计划、遇到的困难”,会议上会进行截图打卡,作为每日冲刺博客的素材。
- 接口契约先行(Apifox):后端开发人员需优先在 Apifox 上定义好接口文档;前端利用 Apifox 的 Mock 数据功能并行开发页面。避免“前端干等后端接口”或“字段对不上”的问题。
- 云端部署联调:冲刺第四天(Day 4)将前后端代码统一打包,部署至华为云服务器,并连接云端 MySQL。确保大家能在真实的云端环境下进行集成测试,提前暴露并解决跨域、网络请求等环境问题。
三、 引入 AI 技术员
为了在 7 天的冲刺中提高效率、降低开发门槛,团队引入 “AI 技术员” 参与我们的开发流程。我们不仅把 AI 当作搜索引擎,也将其视为团队的“虚拟结对编程伙伴”。根据团队成员的技术栈与工具偏好,我们为 AI 分配了以下三大具体岗位:
1. AI 程序员(辅助编码)
- 选用工具:通义灵码、WorkBuddy(后端使用)、Seed-Code(前端使用)
- 具体职责:
- 模板代码生成:利用 IDEA 插件(如通义灵码)快速生成 Java 实体类、Mapper 接口等重复度高的代码;前端利用 Seed-Code 辅助生成复杂的 Vue 组件代码。
- 架构适配与重构:在多端协作时,利用 WorkBuddy 辅助进行代码迁移、包名批量重写以及返回格式适配。
- Bug 代码诊断:遇到框架版本冲突、依赖报错或跨域拦截时,将错误日志抛给 AI 快速定位并给出修复方案。
2. AI 测试员(辅助测试)
- 选用工具:DeepSeek、WorkBuddy
- 具体职责:
- 边界测试用例生成:在测试“报名防超卖”和“信用分<60限制报名”等核心逻辑时,利用 AI 快速生成覆盖各种边界情况的测试用例。
- 自动化压测脚本编写:借助 AI 辅助编写并发自测脚本(如模拟高并发报名),并辅助排查脚本本身的逻辑漏洞。
- 环境部署与排错:利用 AI 辅助排查本地环境问题(如数据库部署、Git 推送凭据问题),辅助编写一键建库导表的自动化流程。
3. AI 设计师(辅助设计)
- 选用工具:Seed-Code、DeepSeek
- 具体职责:
- UI 组件辅助实现:前端开发时,借助 AI 快速实现如“报名进度条(el-progress)”、“状态自动隐藏”等复杂的交互逻辑与样式设计。
- 技术选型与版本兼容:利用 AI 辅助评估前端依赖库的版本兼容性(如规避过新的 UI 库引发的崩溃),给出合理的版本降级建议。
四、 冲刺决心
在接下来的 7 天里,不鸽工程队将严格执行本次制定的代码规范,在开发过程中充分借助 AI 工具来提升效率。面对时间紧、任务重的 α 冲刺阶段,团队成员会保持顺畅的沟通与紧密的配合,做到遇到问题及时反馈、当天任务当天推进。
我们将用扎实的代码和严谨的态度,努力交付一个功能完整、运行稳定、体验流畅的校园搭子平台。
...全文


