164
社区成员
发帖
与我相关
我的任务
分享| Course of the Assignment | EE308FZ Software Engineering |
|---|---|
| Assignment Requirements | Assignment 6 - Beta Sprint (Backend Group Sprint Log) |
| Objectives of This Assignment | 记录后端组在冲刺阶段的服务器搭建,数据库调整,API接口调试 |
| Other References | 《阿里巴巴Java开发手册(终极版)v1.3.0》、《小程序设计指南·微信开放平台》、微信小程序开发文档、后端代码规范文档 |
| Project/Group Name | Group 2 —— PoopCare |
| Frontend Group Members | 李炳言、王洛森、苏子妍 |
| 成员 | 已完成任务 | 已用时间 | 剩余时间 | 遇到的问题 | 下一步计划 |
|---|---|---|---|---|---|
| 李炳言 | 搭建Express框架Web服务器,配置环境变量与监听端口;集成安全中间件;调试数据加载与日期筛选联动逻辑,修复页面首次进入未触发渲染的问题;构建系统安全防护体系并验证效果 | 6h | 0h | 初始未明确数据加载时机与日期筛选的联动机制,导致页面首次进入无法自动渲染数据,需手动操作触发 | 配合测试人员完成系统安全防护与数据加载功能的回归测试;整理逻辑优化说明文档与系统配置手册 |
| 王洛森 | 设计MySQL2/Promise数据库连接池,优化并发访问能力;定义用户、健康记录等核心数据模型;开发基于布里斯托大便分类法的健康评分加权算法;补充数据模型中缺失的字段映射关系 | 6h | 0h | 部分核心字段未在数据模型中明确映射关系,导致前端提交数据后无法正常渲染展示 | 同步后端字段定义文档至前端组;验证多场景下字段提交与显示效果,完善数据完整性校验规则 |
| 苏子妍 | 设计RESTful API路由架构,划分公开接口与认证接口权限;开发用户、健康记录、统计模块的控制器逻辑;集成Swagger文档并编写接口说明;调试路由参数传递逻辑 | 6h | 0h | 路由跳转时参数传递格式错误,导致目标页面接收的分工数据不匹配,影响前后端数据交互 | 配合测试人员完成多场景下的API接口测试;完善路由参数容错处理机制,添加参数校验与默认值兜底 |
作为整个后端系统的基础框架,负责服务器初始化、安全防护、中间件管理和系统稳定性保障。
主要组成:
技术特点:
示例代码:
// backend/app.js - 核心架构初始化
const app = express();
// 配置安全相关的HTTP头
app.use(helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "'unsafe-inline'"],
styleSrc: ["'self'", "'unsafe-inline'"],
imgSrc: ["'self'", 'data:', 'https:'],
},
},
}));
// 启用CORS
app.use(cors({
origin: config.cors?.origins || ['*'],
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
credentials: true,
}));
负责数据存储、业务逻辑处理和数据模型定义,是系统的核心业务处理层。
主要组成:
技术特点:
示例代码:
// backend/models/HealthRecord.js - 健康评分算法
exports.calculateHealthScore = (recordData) => {
let score = 100;
// 基于布里斯托大便分类法评分 (占40%)
const shapeScores = {
'type_1': 40, // 非常硬,严重便秘
'type_4': 100, // 正常
'type_7': 40 // 水样,严重腹泻
};
// 基于颜色评分 (占30%)
const colorScores = {
'brown': 100, // 最理想
'red': 30, // 可能带血
'black': 50 // 可能有问题
};
// 计算最终评分
score = Math.round(Math.min(100, Math.max(0,
(shapeScores[recordData.shape] || 0) * 0.4 +
(colorScores[recordData.color] || 0) * 0.3 +
(feelingScores[recordData.feeling] || 0) * 0.2 +
(recordData.has_blood ? 0 : 100) * 0.1
)));
return score;
};
作为前后端交互的桥梁,提供RESTful API接口,实现数据的输入输出和业务流程控制。
主要组成:
设计特点:
示例代码:
// backend/routes/index.js - API路由配置
const router = express.Router();
const authMiddleware = require('../middleware/authMiddleware');
// API文档路由(无需认证)
router.use('/api/docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
// 认证相关路由(无需认证)
router.use('/api/auth', authRoutes);
// 需要认证的路由
const protectedRoutes = express.Router();
protectedRoutes.use(authMiddleware.verifyToken);
// 注册受保护的路由
protectedRoutes.use('/user', userRoutes);
protectedRoutes.use('/health-record', healthRecordRoutes);
protectedRoutes.use('/statistics', statisticsRoutes);
// 将受保护的路由挂载到主路由
router.use('/api', protectedRoutes);




后端组3名成员参与Beta Sprint 1每日站会,同步3个核心问题的修改、协调协作细节
| 项目模块 | 预计工作量 |
|---|---|
| UI设计与规范整理 | 约20小时 |
| 前端功能页面实现 | 约40小时 |
| 后端接口与逻辑 | 约50小时 |
| 测试与优化 | 约20小时 |
| 总计 | ≈130小时 |
后端阶段已完成内容:
• 3个核心问题全量修复,覆盖所有核心场景与边缘场景
• 补充数据校验、容错处理与交互细节优化
• 完成前后端的连接,在小程序模拟器中输入的数据,可以在后端navicat成功连接的mysql数据库中查看到
• 已完成工作量:约23h
• 已完成任务数:3
• 后端模块剩余工作量:≈20小时(含后续功能开发、功能测试、兼容性测试、界面优化)
• 项目整体剩余工作量:≈90小时
| 时间 | 剩余任务数 | 已完成任务数 | 备注 |
|---|---|---|---|
| 0 | 3 | 0 | 明确核心问题范围、技术方案与分工计划 |
| 5 | 1 | 2 | 完成核心问题1(数据加载)、2(字段映射)修复,启动核心问题3(路由参数)开发 |
| 10 | 0 | 3 | 完成核心问题3修复、全量回归测试与系统细节优化 |
李炳言 —— 工作日志(Beta Sprint 阶段)
✅ 搭建Express框架Web服务器,配置环境变量与监听端口(1.5小时)
✅ 集成CORS、Helmet安全头、速率限制等中间件,构建系统安全防护体系(2小时)
✅ 调试数据加载与日期筛选联动逻辑,修复页面首次渲染无数据问题(1.5小时)
✅ 整理系统配置文档,配合测试验证安全防护效果(1小时)
王洛森—— 工作日志(Beta Sprint 阶段)
✅ 设计MySQL2/Promise连接池,优化数据库访问效率与并发处理(1.5小时)
✅ 定义用户、健康记录等核心数据模型,补充缺失字段映射关系(2小时)
✅ 开发健康评分加权算法,基于大便类型、颜色等维度实现评分逻辑(1.5小时)
✅ 测试多场景数据提交与渲染效果,完善数据完整性校验规则(1小时)
苏子妍—— 工作日志(Beta Sprint 阶段)
✅ 设计RESTful API路由架构,划分公开接口与认证接口权限(1.5小时)
✅ 开发用户、健康记录、统计模块控制器逻辑,实现数据交互核心功能(2小时)
✅ 修复路由参数传递错误问题,优化参数解析与容错处理机制(1.5小时)
✅ 集成Swagger文档,编写API接口说明,配合前端联调验证(1小时)
在Beta Sprint 1中,后端组3名成员围绕3个核心问题展开高效协作,顺利完成修复任务并通过全量测试。本次冲刺采用“模块负责+交叉验证”的分工模式,李炳言主导系统基础架构与安全防护,王洛森聚焦数据层设计与核心业务逻辑,苏子妍负责API接口体系搭建,通过跨模块联调确保系统整体兼容性。
通过本次冲刺实践,我们深刻意识到后端开发中“细节把控”与“边界处理”的重要性:数据模型字段映射遗漏、路由参数传递无容错、数据加载时序逻辑不清晰等细节问题,直接影响系统稳定性与前后端协作效率。同时,核心架构的模块化设计、安全防护措施的提前集成,为后续功能扩展奠定了良好基础。
后续将重点推进三方面工作:一是加强代码评审中的细节校验,建立字段定义、参数传递等核心环节的标准化流程;二是完善单元测试与边缘场景测试,覆盖数据库异常、接口恶意调用等极端情况;三是持续优化系统性能,重点提升数据库查询效率与API响应速度,进一步保障用户体验。
| 成员 | 主要任务 | 贡献比例 |
|---|---|---|
| 李炳言 | 系统基础架构搭建、安全中间件集成、数据加载逻辑修复 | 34% |
| 王洛森 | 数据库连接池实现、数据模型定义、健康评分算法开发、字段映射修复 | 33% |
| 苏子妍 | RESTful API设计与开发、路由参数容错优化、Swagger文档集成 | 33% |
李炳言:作为系统基础架构的负责人,我深刻体会到“前置防护”对后端系统的重要性。本次冲刺中,安全中间件的集成的确保障了系统安全性,但数据加载与日期筛选的联动逻辑疏忽,暴露了我对前后端交互时序考虑不足的问题。后续开发中,将更注重“架构设计+业务场景”的结合,提前预判跨模块交互的潜在风险,完善系统容错机制。
王洛森:核心业务逻辑与数据模型的开发让我意识到,“数据一致性”是后端开发的核心底线。本次字段映射遗漏导致的数据渲染问题,根源在于前期未与前端明确统一的字段定义标准。后续将建立前后端字段字典,在编码阶段添加字段完整性校验,并加强数据提交后的反向验证,从源头避免类似问题。
苏子妍:API接口层的开发与优化让我明白,接口不仅要能用,还要好用、耐用。路由参数传递错误的问题,反映了我对参数容错处理的忽视。后续将在所有API设计中添加参数校验、默认值兜底机制,同时进一步规范接口响应格式,提升接口的易用性与健壮性,降低前后端联调成本。