zq践地组 —— 凡事预则立(Beta 冲刺计划)
zq践地组 —— 凡事预则立(Beta 冲刺计划)
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 202601福大-软件工程实践-W班 |
| 这个作业要求在哪里 | 团队作业—beta冲刺+事后诸葛亮 |
| 团队名称 | zq践地组 |
| 项目名称 | 校园活动报名 OA 系统 |
| 这个作业的目标 | 在 Beta 开始前明确"做什么、谁来做、怎么做、什么时候做完",把 Alpha 的问题转成可验收的计划 |
| 其他参考文献 | 《构建之法》 |
Alpha 的结论很直接:主链路是通的,但管理端有缺口、测试启动太晚、发布靠手工、角色只有开发。Beta 不再追求"功能更多",而是把这三件事补上,并把每个目标写成可验收的标准。
首要整改项:答辩指出的并发测试问题
计划的第一条不是新功能,而是 Alpha 答辩现场老师直接指出的问题:
老师的问题:"你们联合测试的并发量只有 10 个,怎么证明系统能扛高并发?"
Alpha 用 10 并发抢 5 个名额,只能证明"没有超卖、没有 500",属于并发正确性,不能当作性能结论。因此 Beta 把并发与容灾强化列为 P0 的 F8,并给出硬指标:
| 项 | Alpha | Beta 必须做到 |
|---|---|---|
| 并发档位 | 10 / 50 | 100 / 500,另加 5 分钟持续压测 |
| 指标 | 只看有无 500、是否超卖 | P95/P99、错误率、QPS、CPU/内存 |
| 数据规模 | 少量种子数据 | 批量造活动与报名记录,让索引与分页承压 |
| 环境 | 本机 + 开发库 | 独立 campus_activity_oa_verify 库,压完 seed 重置 |
| 结论口径 | 未区分 | 报告必须区分"并发正确性"与"性能结论" |
验收不看"跑过脚本",只看报告:没有指标、没有与 Alpha 10 并发的对比,F8 不算完成(见 F8 与第七节验收清单)。
一、Beta 的功能范围
1.1 要改进完善和新增的功能
| # | 功能 | Alpha 现状 | Beta 目标 | 优先级 | 验收标准 |
|---|---|---|---|---|---|
| F1 | 管理端编辑用户资料 | 前端本地 state,刷新即丢;后端无更新接口 | 新增资料更新接口 + 前端接入 | P0 | 改姓名/院系/班级/手机号后刷新仍在;学号冲突 409 |
| F2 | 分类新增/编辑 | 只有列表与启停(D5-1 降级) | 新增 POST/PUT /admin/categories + 前端表单 | P0 | 新增后学生端分类列表可见;重名 409;停用不影响历史活动 |
| F3 | 学生 CSV 批量导入 | D5-3 砍掉转 P2 | 恢复导入接口与页面,逐行失败不回滚 | P0 | 3 行(2 新 + 1 重复)返回 {total:3,created:2,failed:1};失败行有原因 |
| F4 | 审计日志页面 | 后端 /audit-records 已有,前端无入口 | 活动详情页展示提交/通过/驳回时间线 | P1 | 教师仅见本人活动;时间升序;空态有提示 |
| F5 | 教师统计图表 | 只有数字接口,无图表 | 报名/签到趋势图 + 签到率 | P1 | 数据与接口一致;空数据不空白;切换活动可刷新 |
| F6 | 通知已读与提醒 | 有列表/未读数/已读接口,前端展示不完整 | 已读态、未读数角标、活动开始前提醒 | P1 | 已读幂等;未读数实时;提醒去重(biz_id) |
| F7 | 真机扫码签到 | 主要在 Web/模拟器验证 | Android/iOS 真机扫码 + 相机权限 + 失败提示 | P0 | 真机扫码成功;伪造/过期令牌有明确提示;重复签到 409 |
| F8 | 并发与容灾强化 | 10/50 并发正确性;Etcd 三段式验证;答辩被老师指出并发量只有 10,无法证明高并发 | 100/500 两档 + 5 分钟持续压测,P95/P99、错误率、QPS、资源占用;备份恢复演练 | P0 | 压测报告含指标;无 500;压测只碰验证库;与 Alpha 10 并发结果对比 |
| F9 | 活动取消最终一致对账 | 失败重试 1 次后仅日志补偿,对账手工 | 定时对账任务 + 不一致告警 + 一键修复 | P1 | 人为制造计数不一致后 5 分钟内被发现并修复 |
| F10 | CI 与测试体系 | 本地 make verify,无 CI、无覆盖率 | fmt/vet/lint/build/test + 冒烟脚本入 CI | P0 | 合并请求红灯不合并;测试报告可下载 |
| F11 | 发布体系 | 手工 compose、镜像 tag 回滚、本机地址 | 生产密钥、HTTPS/域名、镜像版本化、回滚脚本可选服务 | P0 | 一条命令部署;冒烟脚本验收;回滚 3 分钟内完成 |
| F12 | 前端工程规范落地 | 无 ESLint/Prettier/husky 配置 | ESLint(flat config)、Prettier、lint-staged、commitlint | P1 | npm run lint 0 error;提交自动格式化 |
| F13 | 文档对齐 | 设计书仍是 Spring Boot/Vue;SRS 0 字节 | 设计书/数据库设计按 Go 实现修订,补 SRS | P0 | 文档与 api.md、表结构、代码无冲突 |
其中 F8 直接来自 Alpha 答辩现场老师的点评:"你们联合测试的并发量只有 10 个,怎么证明系统能扛高并发?" Alpha 的 10 并发只验证了"不超卖、不出 500"的并发正确性,既没有把连接池和队列压满,也没有 P95、错误率、资源占用等指标,数据规模与压测时长都不够。Beta 把这一条当作必须闭环的整改项,不通过就不算完成。
1.2 明确不做(避免范围膨胀)
| 不做项 | 原因 |
|---|---|
| 定位签到、人脸识别、动态码 | 一期范围外,涉及权限与硬件 |
| 聊天、短信/微信推送 | 需要第三方资质与审核,Beta 周期不够 |
| 富文本公告、附件上传到对象存储 | 本地受控目录已够演示,OS 接入属于二期 |
| 多语言、主题换肤 | 不影响主链路评分 |
| 拆更多微服务、上 Kubernetes | 当前 4 服务 + 网关已能说明架构,拆细只会增加联调成本 |
| 为演示造"假数据看板" | 所有页面必须走真实接口 |
二、团队分工的改进
2.1 Alpha 的问题
Alpha 实际只有 3 个开发角色(林嘉祚、张祺、甘羽潇),PM、测试、文档、部署由开发兼任,结果是指标性的工作(测试、文档)被挤到最后两天,且单点阻塞明显。
2.2 Beta 的 6 人角色
| 代号 | 姓名 | 学号 | 角色 | Beta 负责内容 | 关键交付物 |
|---|---|---|---|---|---|
| P1 | 张祺 | 102400432 | 博客总负责人 | 14 篇博客撰写与发布;每日日志 | 全部博客、置顶索引、发布台账 |
| P2 | 陈时文 | 102400313 | 答辩负责人 | PPT 制作 + 答辩主讲 | PPT 定稿、两次彩排记录、讲稿 |
| P3 | 林嘉祚 | 102400118 | 技术负责人 | 核心模块、Git 合并、封版、代码规范、技术问答 | 契约 v2、CI、封版记录、Release |
| P4 | 甘羽潇 | 102400437 | 开发/演示 | 第二模块、UI 改进、截图/gif/视频、现场演示 | 功能代码、演示素材、现场操作 |
| P5 | 梁鑫敏 | 102400438 | 测试/调研 | 每日测试与截图、问卷发放与统计 | 测试报告、缺陷清单、问卷数据 |
| P6 | 兰秀楠 | 102400316 | 项目经理 | 进度、Issue 看板、燃尽图、作业页与 CodeArt 提交、评审表 | 看板、燃尽图、台账、提交回执 |
2.3 分工原则与互备
| 原则 | 落地方式 |
|---|---|
| 博客与 PPT 专项 | P1、P2 不承担开发,避免"边写代码边赶稿" |
| 开发脏活分担 | P3 负责核心与合并,P4 负责第二模块与 UI,不出现"只做杂事"的角色 |
| owner + backup | 每个模块有 owner 和 backup:网关/IDL/部署的 backup 必须能独立操作;P3(林嘉祚)与 P4(甘羽潇)互为开发备份,P6(兰秀楠)备份博客账号 |
| 测试独立 | P5 不写业务代码,负责每日回归、截图与问卷,测试结果直接进当日博客 |
| 决策留痕 | 任何范围/接口/分工变更由 P6 记入看板与 DEV_LOG,群内公告 |
2.4 贡献度规则(11-15 公布,冲刺期不再改)
贡献度 = 实际工时占比 × 60%
+ 交付物验收得分 × 30%
+ 组员互评 × 10%
- 工时台账:每人每晚 22:30 填一行(日期 / 任务 / Issue 号 / 工时 / 产出链接),P6 每周日汇总;
- 交付物验收:组长与模块负责人按"是否按时、是否返工、完成度"打 0–5 分;
- 组员互评:匿名给其余 5 人打 1–5 分,去掉最高最低后取均值;
- 结果归一到 100%,单项浮动不超过 5%,超出需台账支撑。
三、工具与流程的改进
| 方面 | Alpha 做法 | Beta 改进 |
|---|---|---|
| 版本控制 | 按天/按人分支,跨日合并冲突较多 | 沿用 feature/backen/*,Beta 新功能用 feature/beta/<模块>;每天开工 git fetch && git pull --rebase;禁止强制推送;一个分支只做一件事 |
| 提交规范 | Conventional Commits + fix #工作项 | 保持;新增"每条 commit 只做一件事",禁止 git add -A,只 add 自己负责的路径 |
| 代码评审 | 主要靠自测,无强制 review | 跨人合并必须对方看 diff;每天 22:00 前完成当日 review |
| 任务管理 | 日报文字描述,无看板 | CodeHub Issue 看板 + 每日站会 + 燃尽图 + 任务总量变化图 |
| CI | 无,本地 make verify | 最小流水线:fmt-check / vet / lint / build / test / 冒烟脚本;红灯不合并 |
| 测试 | curl/Apifox 手工,冒烟脚本未入库 | 冒烟脚本入库并参数化;测试用例按"成功 + 401/403/404/409/422"组织;独立验证库 |
| 压测 | hack/stress 10/50 并发,只验正确性(答辩指出不足以证明高并发) | 补 100/500 两档 + 5 分钟持续压测,记录 P95/P99、错误率、QPS、CPU/内存;放大数据规模;压测报告入博客并与 Alpha 结果对比 |
| 发布 | 手工 compose + 冒烟 + tag 回滚 | 生产密钥清单、HTTPS/域名、镜像版本化、一键部署 + 一键冒烟 + 可选服务回滚 |
| 文档 | DEV_LOG + api.md,设计书滞后 | 文档与代码同一次提交;变更单模板;设计书按 Go 实现修订 |
| 素材 | 临时截图,晚间收集 | 每日 21:30 前提交运行截图/gif;站立会议照片每天新拍、不可复用 |
| 沟通 | 群公告 | 09:00 站会 15 分钟;22:30 素材到齐;23:30 博客发布;阻塞当天升级 |
3.1 每日冲刺 SOP
| 时间 | 动作 | 负责人 |
|---|---|---|
| 09:00 | 站立会议 15 分钟,拍非摆拍照片 | 全员,P6 组织 |
| 12:00 | 每人报进度:昨天完成什么、用了多久、剩余多少、卡在哪 | 全员 → P6 |
| 21:30 | 当天签入或测试截图完成,链接发群 | 全员 |
| 22:00 | 跨人合并完成 review | P3/P4 |
| 22:30 | 每人把 3 段 Scrum 发给 P1;P6 把燃尽图发给 P1 | 全员 / P6 |
| 23:30 | 冲刺随笔发布 | P1 |
3.2 红线
- 每人每天必须有可入账的产出:写代码给 commit 链接,做测试给截图;
- 站立会议照片每天新拍,复用当天日志不计分;
- 博客当晚发,不留到第二天;
- 不提前占位提交,不伪造提交;
- 不套用组内相同模板句与图片;
- 群内通知 deadline 前必须完成。
四、博客计划(14 篇)
| # | 博客 | 分值 | 发布日期 | 素材提供方 |
|---|---|---|---|---|
| 1 | Beta 阶段置顶集合随笔 | 必需 | 11-13 建好,持续挂链接 | P6 汇总链接 |
| 2 | 换组交接博客 | 10' | 11-13(11-14 前) | P6 对接对方组 |
| 3 | Alpha 阶段问题总结 | 15' | 11-13(11-14 前) | 全员总结会 |
| 4 | 凡事预则立 | 5' | 11-13(11-14 前) | P3 功能清单、P6 七天计划 |
| 5 | 代码规范 | 10' | 11-13(11-14 前) | P3 技术规则 |
| 6 | 冲刺随笔 Day1 | 30'(7 篇合计) | 11-16 | 全员 Scrum + P6 燃尽图 |
| 7 | 冲刺随笔 Day2 | 同上 | 11-17 | 同上 |
| 8 | 冲刺随笔 Day3 | 同上 | 11-18 | 同上 |
| 9 | 冲刺随笔 Day4 | 同上 | 11-19 | 同上 |
| 10 | 冲刺随笔 Day5 | 同上 | 11-20 | 同上 |
| 11 | 冲刺随笔 Day6 | 同上 | 11-21 | 同上 |
| 12 | 冲刺随笔 Day7 | 同上 | 11-22 | 同上 |
| 13 | 用户使用调查报告 | 10' | 11-23 | P5 问卷原始数据 |
| 14 | Beta 冲刺总结 | 20' | 11-23~11-24 | 全员心得 + P5 贡献度数据 |
每篇冲刺随笔固定包含:Scrum 表格(昨天到现在完成了什么、花了多久、还剩多久 / 问题 / 到明天的安排)、开发 commit 与 Issue 链接、测试截图或报告、当天站立会议照片、PM 报告(任务总量/已完成/剩余 + 燃尽图 + 任务总量变化图)、项目运行截图或 gif。
五、七天冲刺计划(11-16~11-22)
| 天 | 主题 | 核心目标 | P3/P4 开发 | P5 测试 | 联调节点 | 风险与对策 |
|---|---|---|---|---|---|---|
| Day1 | 基线重建 | 契约 v2、CI、环境清单、Issue 看板、部署基线 | 冻结接口与表;CI 跑通;镜像版本化 | 冒烟脚本入库 | 5 进程 + healthz | Etcd/Docker 不通 → 嵌入式 Etcd,当天写进文档 |
| Day2 | 管理端补全 I | F1 用户编辑、F2 分类 CRUD、F12 前端规范落地 | 后端接口 + 前端表单 + lint 配置 | 新增接口 DoD 用例 | 管理员改资料/分类全流程 | 学号冲突与事务回滚 |
| Day3 | 名单与统计 | F3 CSV 导入、F4 审计日志页、F5 教师图表 | 导入事务 + 时间线 + 图表 | 导入失败明细、图表对数 | 教师看名单/导出/统计 | 大量数据分页与性能 |
| Day4 | 通知与签到体验 | F6 已读/提醒、F7 真机扫码、四态 UI | 通知角标 + 相机权限 + 空态 | 真机截图、弱网与拒绝权限 | 学生扫码签到 | 相机权限/HTTPS 限制,准备录屏兜底 |
| Day5 | 质量强化 | F8 100/500/持续压测、F9 对账任务、权限矩阵自动化 | 对账 job + 压测脚本 | 压测报告、故障注入 | 全角色权限回归 | 压测误伤开发库 → 只连 verify 库 |
| Day6 | 联调与彩排 | 两轮回归(全链路/边界)、缺陷清零、代码冻结 | 只修 bug 不加功能 | 全量用例 + 截图 | 三端全流程彩排 | 发现跨服务缺口 → 当天补,不拖 D7 |
| Day7 | 发布与答辩准备 | F11 部署、生产冒烟、备份恢复、Release/二维码 | 部署与回滚演练 | 生产冒烟 + 恢复验证 | 最终彩排 | 环境不可用 → 本机 + 录屏兜底 |
六、风险与兜底
| 风险 | 影响 | 兜底 |
|---|---|---|
| 单点成员请假 | 模块停摆 | owner/backup 制;IDL、网关、部署有第二人 |
| 环境/中间件不可用 | 阻塞开发 | 嵌入式 Etcd、本机 MySQL、固定地址降级三套预案 |
| 范围膨胀 | 测试被压缩 | 红线 + 可砍顺序;新增需求必须换出同等工作量 |
| 部署失败 | 无演示地址 | 本机演示 + 录屏;compose 镜像 tag 回滚 |
| 博客素材迟到 | 当晚无法发布 | 22:30 素材截止;P6 备份账号;提前定模板 |
| 真实用户反馈差 | 报告无数据 | 问卷提前发放,保底 30 份有效样本;访谈补充 |
| 压测造成数据污染 | 演示数据异常 | 独立 campus_activity_oa_verify 库;压测后 seed 重置 |
七、Beta 验收清单
- 13 项功能按 P0/P1 全部有结论(完成/部分完成/未完成 + 原因)
- 每个 P0 功能有接口契约、401/403 用例、运行截图
- 冒烟脚本入库,一条命令跑通主链路
- CI 红灯不合并;测试报告可下载
- 100/500 压测报告含 P95/P99、错误率、QPS、资源占用,并与 Alpha 10 并发结果对比(答辩整改项)
- 备份恢复与对账任务演练通过
- 可运行地址/二维码可用;回滚演练完成
- 14 篇博客全部发布并挂入置顶索引
- 贡献度按台账 + 验收 + 互评结算并有记录
相关推荐
电池、AA‑CAES 与抽水蓄能多目标优化调度研究(三目标:成本、峰谷差、碳排放)(Matlab代码实现)
内容概要:本文针对电池、先进绝热压缩空气储能(AA-CAES)与抽水蓄能三种储能技术,构建了一个多目标优化调度模型,旨在协同优化电力系统的运行成本、负荷峰谷差和碳排放三个关键指标。研究采用Matlab进行代码实现,建立了综合考虑各类储能系统运行特性的精细化数学模型,并通过多目标优化算法求解Pareto最优前沿,深入分析了不同优化目标间的内在权衡与博弈关系。文中系统阐述了各储能单元的数学建模方法、系统运行约束条件的设定以及多目标优化问题的规范化处理流程,最终通过详细的仿真算例验证了所提模型与方法的有效性,充分展示了该调度策略在促进新能源消纳、降低系统综合运行成本和减少碳排放方面的巨大潜力与应用价值。; 适合人群:具备电力系统、能源经济或优化理论基础知识的研究生、科研人员及从事能源规划与调度的工程技术人员。; 使用场景及目标:①研究包含多种新型储能技术的综合能源系统协调调度问题;②学习如何建立电力系统多目标优化模型(涵盖经济性、环保性和运行稳定性);③掌握利用Matlab实现多目标优化算法并进行结果可视化分析与决策的方法。; 阅读建议:此资源以Matlab代码为核心,不仅提供了严谨的理论模型,更有完整的可运行代码实现。读者在学习时应结合代码深入理解模型构建的每一个细节,包括变量的定义、复杂约束的处理以及目标函数的加权聚合方法,并建议尝试修改模型参数或调整目标权重,以观察系统行为的动态变化,从而深化对多目标优化本质和工程应用的理解。
产业园区运营负责人如何精准匹配企业技术需求与科研成果?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
A股分钟数据涵盖股票、ETF、可转债及指数四大类 每条数据记录包含精确到分钟的时间戳,以及开盘价、最高价、最低价、收盘价、成交量、成交额六个核心字段 部分数据还提供前收盘价作为参考 股票与ETF数据细
A股分钟数据涵盖股票、ETF、可转债及指数四大类。每条数据记录包含精确到分钟的时间戳,以及开盘价、最高价、最低价、收盘价、成交量、成交额六个核心字段。部分数据还提供前收盘价作为参考。股票与ETF数据细分至1分钟、5分钟等周期,可转债在交易时段内逐笔生成分钟快照,指数数据则同步覆盖上证、深证等主要宽基指数,便于观察市场整体走势。 数据源:CMES金融数据库
产业园区运营负责人如何借助平台实现创新资源的动态配置与精准对接?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
国央企创新负责人如何实现科技创新资源的系统化管理和高效配置?.docx
国央企创新负责人如何实现科技创新资源的系统化管理和高效配置?


