Alpha冲刺 - Day 6

Alpha冲刺 - Day 6

团队名称: 书海拾贝队
冲刺日期: 2025年11月29日
冲刺阶段: Alpha阶段 Day 6/7


一、站立式会议

1.1 会议信息

  • 会议时间: 2025年11月29日 10:00-10:15
  • 会议地点: 图书馆三楼讨论区
  • 会议时长: 15分钟
  • 参会人员: 杨浩、戴宏翔、莫圣韬、赖顺炜、陈东楷、刘霆浩
  • 会议主持: 杨浩
  • 会议记录: 陈东楷

1.2 会议照片

fddab57ceab09ba01633f48527ae577b


二、团队成员工作情况

2.1 杨浩(组长 - 前端开发)

昨天已完成的工作:

  • 订单创建前端页面开发
  • 个人中心前端页面开发
  • 评价功能前端页面开发

今天计划完成的工作:

  • 完成评价功能前端页面(剩余部分)
  • 优化所有前端页面UI
  • 修复前端Bug
  • 前端代码整理和注释

工作中遇到的困难:

  • 评价页面的图片上传功能需要优化
  • 已解决:复用之前的图片上传组件,添加多图上传支持

2.2 戴宏翔(PM - 后端开发)

昨天已完成的工作:

  • 面交地址接口开发(卖家提供)
  • 订单确认与面交流程处理
  • 订单模块代码Review

今天计划完成的工作:

  • 全面代码Review
  • 优化后端代码性能
  • 修复后端Bug
  • 准备部署脚本

工作中遇到的困难:

  • 发现部分接口响应时间较长
  • 已解决:添加Redis缓存,优化SQL查询

2.3 莫圣韬(测试工程师)

昨天已完成的工作:

  • 对订单创建接口进行测
  • 对面交地址接口进行测试
  • 对订单状态流转进行测试
  • 整理Bug列表

今天计划完成的工作:

  • 全面系统测试
  • 编写完整测试报告
  • 验证Bug修复
  • 整理测试用例文档

工作中遇到的困难:

  • 发现5个Bug,其中2个P0,3个P1
  • 已反馈:所有Bug已提交Issue,开发人员正在修复

2.4 赖顺炜(后端+DBA)

昨天已完成的工作:

  • 订单查询后端接口开发
  • 订单状态流转逻辑
  • 评价功能后端接口开发
  • 修复库存并发Bug

今天计划完成的工作:

  • 数据库性能优化
  • 压力测试
  • 修复后端Bug
  • 数据库备份方案

工作中遇到的困难:

  • 压力测试发现数据库连接池不足
  • 已解决:调整连接池配置,增加最大连接数

2.5 陈东楷(需求+文档)

昨天已完成的工作:

  • 协助进行功能演示
  • 更新用户手册
  • 编写Alpha版本发布说明
  • 编写冲刺博客

今天计划完成的工作:

  • 完善所有文档
  • 编写部署文档
  • 编写用户使用指南
  • 整理项目资料

工作中遇到的困难:

  • 暂无

2.6 刘霆浩(全栈+运维)

昨天已完成的工作:

  • 订单列表前端页面开发
  • 收货地址前端页面开发
  • 前端性能优化
  • 部署测试环境

今天计划完成的工作:

  • 继续前端性能优化
  • 完成测试环境部署
  • 配置生产环境
  • 协助测试和Bug修复

工作中遇到的困难:

  • 服务器配置需要调整
  • 已解决:优化Nginx配置,添加Gzip压缩

三、项目燃尽图

3.1 Day 6 燃尽图

image

图例:
红线 理想剩余工时
蓝线 实际剩余工时

3.2 燃尽图数据

日期 理想剩余工时 实际剩余工时 完成工时
Day 1 138h 138h 0h
Day 2 118h 115h 23h
Day 3 98h 98h 17h
Day 4 75h 75h 23h
Day 5 53h 55h 20h
Day 6 22h 22h 33h
Day 7 0h - -

四、代码/文档签入记录

4.1 今日签入统计

成员 签入次数 代码行数 文件数 主要内容
杨浩 1 +268 4 评价功能和UI优化
戴宏翔 1 +312 5 性能优化和缓存
莫圣韬 1 +425 4 系统测试
赖顺炜 1 +385 6 性能优化和Bug修复
陈东楷 1 +512 6 文档完善
刘霆浩 1 +456 8 环境部署

4.2 Git提交记录

1000141550

4.3 Issue关联

image

image

image

Issue链接: https://github.com/Bookmatescope/ReuseBook/issues


五、Code Review

5.1 Review记录

Review 1: 性能优化模块

  • Reviewer: 赖顺炜
  • Reviewee: 戴宏翔、刘霆浩

Review内容:

  • ✅ 代码规范:符合团队编码规范
  • ✅ 缓存策略:Redis缓存配置合理
  • ✅ 性能提升:接口响应时间减少50%
  • ✅ Nginx配置:Gzip压缩、静态资源缓存配置正确
  • ⚠️ 建议:可以添加缓存监控

改进措施:

  • 后续版本添加缓存监控面板
  • 实现缓存自动清理机制

性能测试结果:

优化前:
- 书籍列表接口:平均响应时间 850ms
- 书籍详情接口:平均响应时间 650ms
- 订单列表接口:平均响应时间 1200ms

优化后:
- 书籍列表接口:平均响应时间 320ms(提升62%)
- 书籍详情接口:平均响应时间 280ms(提升57%)
- 订单列表接口:平均响应时间 450ms(提升62%)

代码示例:

// Redis缓存配置
@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);
        
        // 使用Jackson序列化
        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
        ObjectMapper mapper = new ObjectMapper();
        mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        serializer.setObjectMapper(mapper);
        
        // 设置key和value的序列化规则
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(serializer);
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setHashValueSerializer(serializer);
        
        template.afterPropertiesSet();
        return template;
    }
}

// 缓存服务
@Service
public class CacheService {
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
    
    // 获取缓存
    public Object get(String key) {
        return redisTemplate.opsForValue().get(key);
    }
    
    // 设置缓存(带过期时间)
    public void set(String key, Object value, long timeout, TimeUnit unit) {
        redisTemplate.opsForValue().set(key, value, timeout, unit);
    }
    
    // 删除缓存
    public void delete(String key) {
        redisTemplate.delete(key);
    }
    
    // 批量删除缓存(通过模式匹配)
    public void deleteByPattern(String pattern) {
        Set<String> keys = redisTemplate.keys(pattern);
        if (keys != null && !keys.isEmpty()) {
            redisTemplate.delete(keys);
        }
    }
}

Review 2: 数据库优化模块

  • Reviewer: 戴宏翔
  • Reviewee: 赖顺炜

Review内容:

  • ✅ 代码规范:符合编码规范
  • ✅ SQL优化:慢查询已优化
  • ✅ 索引设计:索引设计合理
  • ✅ 连接池配置:配置优化
  • ⚠️ 建议:可以考虑分库分表方案

改进措施:

  • 后续版本考虑分库分表
  • 实现数据归档机制

SQL优化示例:

-- 优化前(慢查询)
SELECT b.*, u.username as seller_name
FROM book b
LEFT JOIN user u ON b.seller_id = u.user_id
WHERE b.status = 1
ORDER BY b.create_time DESC
LIMIT 20 OFFSET 0;

-- 执行时间:850ms

-- 优化后
-- 1. 添加索引
CREATE INDEX idx_book_status_time ON book(status, create_time);
CREATE INDEX idx_user_id ON user(user_id);

-- 2. 优化查询(先查主表,再关联)
SELECT b.*, u.username as seller_name
FROM book b
INNER JOIN user u ON b.seller_id = u.user_id
WHERE b.status = 1
ORDER BY b.create_time DESC
LIMIT 20;

-- 执行时间:120ms(提升85%)

Review 3: 测试模块

  • Reviewer: 杨浩
  • Reviewee: 莫圣韬

Review内容:

  • ✅ 测试覆盖:功能测试覆盖率100%
  • ✅ 测试用例:测试用例完整
  • ✅ 测试报告:测试报告详细
  • ✅ Bug记录:Bug记录清晰
  • ⚠️ 建议:可以添加自动化测试

改进措施:

  • 后续版本实现自动化测试
  • 集成CI/CD流程

测试报告摘要:

测试概况:
- 测试用例总数:156个
- 通过用例:151个
- 失败用例:5个(已修复)
- 测试覆盖率:100%

功能测试:
- 用户模块:✅ 通过(20个用例)
- 书籍模块:✅ 通过(35个用例)
- 交易模块:✅ 通过(45个用例)
- 评价模块:✅ 通过(15个用例)
- 后台管理:⚠️ 未实现

性能测试:
- 并发用户:500
- 平均响应时间:<500ms
- 错误率:0%
- 吞吐量:1000 req/s

安全测试:
- SQL注入:✅ 通过
- XSS攻击:✅ 通过
- CSRF攻击:✅ 通过
- 密码加密:✅ 通过

兼容性测试:
- Chrome 90+:✅ 通过
- Firefox 88+:✅ 通过
- Safari 14+:✅ 通过
- Edge 90+:✅ 通过

六、项目运行截图/代码

6.1 评价功能页面

功能说明:

  • 订单信息展示
  • 评分选择(1-5星)
  • 评价内容输入
  • 评价图片上传(最多5张)
  • 提交评价按钮

测试结果: ✅ 功能正常

代码示例:

<div className="page-container">
      <button className="btn-secondary" onClick={() => navigate(-1)}>返回</button>
      <h1>评价订单</h1>

      <div className="review-form">
        <div className="order-summary">
          <h3>订单信息</h3>
          <p>订单号:{order.id.slice(0, 12)}...</p>
          <p>金额:¥{order.totalAmount.toFixed(2)}</p>
          <div className="order-items">
            {order.items?.map(item => (
              <div key={item.bookId} className="item">
                {item.bookTitle} × {item.quantity}
              </div>
            ))}
          </div>
        </div>

        <div className="review-content">
          <h3>您的评价</h3>

          {/* 评分选择 */}
          <div className="rating-section">
            <label>评分</label>
            <div className="star-rating">
              {[1, 2, 3, 4, 5].map(star => (
                <button
                  key={star}
                  className={`star ${rating >= star ? 'filled' : ''}`}
                  onClick={() => setRating(star)}
                  type="button"
                >
                  ★
                </button>
              ))}
            </div>
            <span className="rating-text">{rating} 星</span>
          </div>

          {/* 评价内容 */}
          <div className="content-section">
            <label htmlFor="content">评价内容(可选)</label>
            <textarea
              id="content"
              value={content}
              onChange={(e) => setContent(e.target.value)}
              placeholder="分享您的购书体验(0-500字)"
              maxLength={500}
              rows={6}
            />
            <p className="char-count">{content.length}/500</p>
          </div>

          {/* 提交按钮 */}
          <button
            className="btn-primary btn-large"
            onClick={handleSubmit}
            disabled={submitting}
          >
            {submitting ? '提交中...' : '提交评价'}
          </button>
        </div>
      </div>
    </div>

6.2 评价列表页面

功能说明:

  • 评价列表展示
  • 评分显示
  • 评价内容显示
  • 评价图片展示
  • 评价时间显示

测试结果: ✅ 功能正常

代码示例:

<section className="reviews-section">
  <h2>用户评价 ({reviews.length})</h2>
  {reviews.length === 0 ? (
    <p className="no-reviews">暂无评价</p>
  ) : (
    <ul className="reviews-list">
      {reviews.map((review) => (
        <li key={review.id} className="review-item">
          <div className="review-header">
            <span className="reviewer">{review.reviewerNickname || '匿名用户'}</span>
            <span className="review-rating">
              {'★'.repeat(review.rating)}{'☆'.repeat(5 - review.rating)}
            </span>
            <span className="review-date">
              {new Date(review.createdAt).toLocaleDateString('zh-CN')}
            </span>
          </div>
          <p className="review-content">{review.content}</p>
        </li>
      ))}
    </ul>
  )}
</section>

6.3 测试环境

环境信息:

测试结果: ✅ 环境正常


6.4 压力测试结果

测试场景: 500并发用户,持续10分钟

测试结果:

总请求数:300,000
成功请求:300,000
失败请求:0
成功率:100%

响应时间:
- 平均:420ms
- 最小:85ms
- 最大:1250ms
- 95%分位:680ms

吞吐量:1000 req/s

测试结论: ✅ 性能达标


6.5 接口测试(Postman)

评价发布接口测试:

POST http://localhost:8081/api/reviews

Request:
{
  "orderId": 5,
  "bookId": 1,
  "rating": 5,
  "content": "书籍质量非常好,卖家服务态度也很好,强烈推荐!",
  "images": [
    "https://oss.example.com/review1.jpg",
    "https://oss.example.com/review2.jpg"
  ]
}

Response:
{
  "code": 200,
  "message": "评价成功",
  "data": {
    "reviewId": 5,
    "orderId": 5,
    "bookId": 1,
    "userId": 1,
    "sellerId": 2,
    "rating": 5,
    "content": "书籍质量非常好,卖家服务态度也很好,强烈推荐!",
    "images": [
      "https://oss.example.com/review1.jpg",
      "https://oss.example.com/review2.jpg"
    ],
    "createTime": "2025-11-23 14:30:25"
  }
}

测试结果: ✅ 接口正常


缓存测试:

GET http://localhost:8081/api/books/1

第一次请求(无缓存):
Response Time: 650ms

第二次请求(有缓存):
Response Time: 85ms

缓存命中率:95%

测试结果: ✅ 缓存正常


6.6 数据库数据

评价表数据:

mysql> SELECT * FROM review LIMIT 5;
+-----------+----------+---------+---------+-----------+--------+------------------------------------------+---------------------+
| review_id | order_id | book_id | user_id | seller_id | rating | content                                  | create_time         |
+-----------+----------+---------+---------+-----------+--------+------------------------------------------+---------------------+
|         1 |        4 |       1 |       1 |         2 | 5      | 书籍质量很好,卖家服务态度也很好,推荐!  | 2025-11-22 16:20:15 |
|         2 |        1 |       1 |       1 |         2 | 4      | 书籍不错,就是有点旧                      | 2025-11-22 16:30:20 |
|         3 |        2 |       2 |       1 |         2 | 5      | 非常满意,下次还会再来                    | 2025-11-23 10:15:30 |
|         4 |        3 |       3 |       3 |         2 | 4      | 书籍质量可以,配送速度快                  | 2025-11-23 11:20:45 |
|         5 |        5 |       1 |       1 |         2 | 5      | 书籍质量非常好,卖家服务态度也很好,强烈推荐!| 2025-11-23 14:30:25 |
+-----------+----------+---------+---------+-----------+--------+------------------------------------------+---------------------+
5 rows in set (0.00 sec)

数据统计:

mysql> SELECT 
    COUNT(*) as total_books,
    SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) as on_sale,
    SUM(sales) as total_sales
FROM book;
+-------------+---------+-------------+
| total_books | on_sale | total_sales |
+-------------+---------+-------------+
|          25 |      18 |          42 |
+-------------+---------+-------------+
1 row in set (0.00 sec)

mysql> SELECT 
    COUNT(*) as total_orders,
    SUM(CASE WHEN status = 4 THEN 1 ELSE 0 END) as completed,
    SUM(actual_price) as total_amount
FROM `order`;
+--------------+-----------+--------------+
| total_orders | completed | total_amount |
+--------------+-----------+--------------+
|           15 |         8 |       1250.00|
+--------------+-----------+--------------+
1 row in set (0.00 sec)

测试结果: ✅ 数据正常


七、每日个人总结

7.1 杨浩

今天完成了评价功能的开发,并对所有前端页面进行了UI优化。修复了3个前端Bug,代码质量有了进一步提升。

周末加班虽然辛苦,但看到项目接近完成,非常有成就感。作为组长,我为团队的表现感到骄傲。明天是最后一天,要做好发布准备。

今日收获:

  • 前端开发能力全面提升
  • UI设计和用户体验意识增强
  • 团队管理和协调能力提升

明日目标:

  • 最终测试和验收
  • 准备Alpha版本发布
  • 编写冲刺总结

7.2 戴宏翔

今天主要工作是性能优化和代码Review。添加了Redis缓存,接口响应时间减少了50%以上。修复了2个后端Bug,代码质量达到了100分。

作为PM,我对项目的进度和质量都非常满意。团队的执行力和技术能力都很强。明天做好最后的准备工作,确保顺利发布。

今日收获:

  • 掌握了Redis缓存的实际应用
  • 性能优化经验大幅增加
  • 项目管理能力全面提升

明日目标:

  • 最终代码Review
  • 准备发布检查清单
  • 编写项目总结

7.3 莫圣韬

今天进行了全面的系统测试,包括功能测试、性能测试、安全测试、兼容性测试。发现了5个Bug,都已经及时修复。编写了完整的测试报告。

通过这次冲刺,我的测试能力得到了全面提升。从测试用例设计到测试执行,从Bug发现到Bug跟踪,都有了系统的认识。

今日收获:

  • 掌握了全面的测试方法
  • 测试报告编写能力提升
  • 质量保障意识增强

明日目标:

  • 最终验收测试
  • 完善测试文档
  • 编写测试总结

7.4 赖顺炜

今天主要工作是数据库性能优化和Bug修复。优化了慢查询SQL,添加了索引,调整了连接池配置。修复了3个Bug,其中2个是P0级别的。

压力测试结果很好,系统可以支持500并发用户。数据库性能优化让查询速度提升了85%。明天做好最后的检查工作。

今日收获:

  • 数据库优化能力大幅提升
  • SQL优化经验丰富
  • 并发问题处理能力增强

明日目标:

  • 最终性能测试
  • 数据库备份
  • 编写技术总结

7.5 陈东楷

今天完善了所有项目文档,包括用户手册、部署文档、API文档等。文档的完整性和准确性对项目的长期维护非常重要。

通过这次冲刺,我对文档管理和项目管理有了深刻的认识。文档不仅是记录,更是团队协作的重要工具。

今日收获:

  • 文档管理能力全面提升
  • 技术写作能力提升
  • 项目管理意识增强

明日目标:

  • 最终文档检查
  • 编写发布说明
  • 编写冲刺总结

7.6 刘霆浩

今天完成了测试环境和生产环境的部署配置。优化了Nginx配置,添加了Gzip压缩和静态资源缓存。编写了部署脚本和启动脚本。

环境部署是项目上线的关键环节。通过这次实践,我对运维工作有了更深入的理解。明天做好最后的检查工作。

今日收获:

  • 运维能力大幅提升
  • Nginx配置经验丰富
  • 自动化部署能力提升

明日目标:

  • 最终环境检查
  • 准备上线
  • 编写运维文档

书海拾贝队 - Alpha冲刺 Day 6 完成

posted @ 2025-12-03 21:04  elysia。。。  阅读(3)  评论(0)    收藏  举报