Alpha冲刺 - Day 4

news/2025/12/3 21:05:53/文章来源:https://www.cnblogs.com/elysia-mst/p/19300619

Alpha冲刺 - Day 4

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


一、站立式会议

1.1 会议信息

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

1.2 会议照片

fddab57ceab09ba01633f48527ae577b

1.3 会议要点

  • 前三天进度超前,团队信心倍增
  • 今日重点:完成搜索功能和订单创建功能
  • 讨论:订单状态流转逻辑,确保业务正确性
  • 提醒:订单模块是核心功能,需要仔细测试
  • 决议:明天进行一次完整的功能演示

二、团队成员工作情况

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

昨天已完成的工作:

  • 书籍列表前端页面开发
  • 书籍搜索前端组件开发
  • 优化书籍发布页面用户体验

今天计划完成的工作:

  • 订单创建前端页面开发
  • 个人中心前端页面开发
  • 前后端联调测试

工作中遇到的困难:

  • 订单创建页面需要展示多个商品,布局比较复杂
  • 解决中:参考淘宝、京东的订单页面设计

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

昨天已完成的工作:

  • 个人信息后端接口开发
  • 收货地址后端接口开发
  • 代码优化和重构

今天计划完成的工作:

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

工作中遇到的困难:

  • 面交流程需要考虑买卖双方约定时间地点
  • 已解决:设计面交地址字段,卖家发布书籍时填写,买家下单后可查看卖家面交地址进行当面交易

2.3 莫圣韬(测试工程师)

昨天已完成的工作:

  • 对书籍搜索接口进行测试
  • 对购物车接口进行测试
  • 编写测试报告

今天计划完成的工作:

  • 对订单创建接口进行测试
  • 对个人信息和地址接口进行测试
  • 整理Bug列表

工作中遇到的困难:

  • 发现购物车删除接口在商品不存在时返回500错误
  • 已反馈:提交Bug #033,优先级P1

2.4 赖顺炜(后端+DBA)

昨天已完成的工作:

  • 书籍搜索后端接口开发
  • 订单创建后端接口开发
  • 数据库性能测试

今天计划完成的工作:

  • 订单查询后端接口开发
  • 订单状态流转逻辑
  • 评价功能后端接口开发

工作中遇到的困难:

  • 订单状态流转需要考虑多种场景,逻辑比较复杂
  • 解决方案:画状态机图,明确每个状态的转换条件

2.5 陈东楷(需求+文档)

昨天已完成的工作:

  • 更新用户手册(新增书籍模块)
  • 整理Bug列表和优先级
  • 编写Alpha冲刺Day3博客

今天计划完成的工作:

  • 更新接口文档(订单模块)
  • 编写用户使用指南
  • 准备明天的功能演示PPT

工作中遇到的困难:

  • 暂无

2.6 刘霆浩(全栈+运维)

昨天已完成的工作:

  • 购物车前端页面开发
  • 集成购物车接口
  • 服务器监控

今天计划完成的工作:

  • 订单列表前端页面开发
  • 收货地址前端页面开发
  • 优化前端性能

工作中遇到的困难:

  • 购物车页面的商品选择逻辑有些复杂,需要优化
  • 已解决:使用Vuex管理购物车状态,简化逻辑

三、项目燃尽图

3.1 Day 4 燃尽图

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 58h - -
Day 6 38h - -
Day 7 0h - -

四、代码/文档签入记录

4.1 今日签入统计

成员 签入次数 代码行数 文件数 主要内容
杨浩 3 +198 2 书籍搜索功能
戴宏翔 4 +412 4 个人信息和地址接口
莫圣韬 2 +185 2 测试用例
赖顺炜 5 +485 5 搜索和订单接口
陈东楷 2 +278 3 文档更新
刘霆浩 4 +425 4 购物车页面

总计: 20次提交,1983行代码,20个文件

累计统计:

  • 总提交次数:57次
  • 总代码行数:5683行
  • 总文件数:58个

4.2 Git提交记录

前端提交(杨浩):

commit k7l8m9n0
Author: 杨浩 <yanghao@example.com>
Date:   Thu Nov 27 10:45:20 2025 +0800feat: 完成书籍搜索功能- 实现搜索输入框和搜索按钮- 实现搜索结果展示- 添加搜索历史记录- 实现热门搜索推荐- 优化搜索体验Files changed:www/src/views/BookSearch.vue       | +145www/src/components/SearchBar.vue   | +53

后端提交(戴宏翔):

commit o1p2q3r4
Author: 戴宏翔 <daihongxiang@example.com>
Date:   Thu Nov 27 13:30:45 2025 +0800feat: 实现个人信息和收货地址接口- 实现个人信息查询接口- 实现个人信息更新接口- 实现收货地址CRUD接口- 添加地址默认设置功能- 添加数据验证Files changed:src/main/java/controller/UserController.java     | +145src/main/java/controller/AddressController.java  | +128src/main/java/service/UserService.java           | +85src/main/java/service/AddressService.java        | +54

后端提交(赖顺炜):

commit s5t6u7v8
Author: 赖顺炜 <laishunwei@example.com>
Date:   Thu Nov 27 15:50:30 2025 +0800feat: 实现书籍搜索和订单创建接口- 实现全文搜索功能(支持中文)- 实现搜索结果排序(相关度、价格、时间)- 实现订单创建接口- 实现订单号生成逻辑- 添加库存检查和扣减Files changed:src/main/java/controller/BookController.java   | +98src/main/java/controller/OrderController.java  | +185src/main/java/service/BookService.java         | +112src/main/java/service/OrderService.java        | +68src/main/java/util/OrderUtil.java              | +22

前端提交(刘霆浩):

commit w9x0y1z2
Author: 刘霆浩 <liutinghao@example.com>
Date:   Thu Nov 27 17:20:15 2025 +0800feat: 完成购物车页面和状态管理- 实现购物车商品列表展示- 实现商品选择和全选功能- 实现商品数量修改- 实现商品删除- 实现总价计算- 使用Vuex管理购物车状态Files changed:www/src/views/Cart.vue              | +268www/src/store/modules/cart.js       | +98www/src/components/CartItem.vue     | +45www/src/api/cart.js                 | +14

测试提交(莫圣韬):

commit a3b4c5d6
Author: 莫圣韬 <moshengtao@example.com>
Date:   Thu Nov 27 18:10:30 2025 +0800test: 添加搜索和购物车模块测试用例- 完成书籍搜索功能测试- 完成购物车CRUD测试- 添加边界值测试- 添加性能测试- 发现并记录3个BugFiles changed:src/test/java/SearchModuleTest.java    | +112src/test/java/CartModuleTest.java      | +73

4.3 Issue关联

image

image

image

image

image

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


五、Code Review

5.1 Review记录

Review 1: 书籍搜索模块

  • Reviewer: 赖顺炜
  • Reviewee: 杨浩、赖顺炜

Review内容:

  • ✅ 代码规范:符合团队编码规范
  • ✅ 搜索功能:全文搜索、排序、分页都实现
  • ✅ 用户体验:搜索历史、热门推荐很实用
  • ✅ 性能优化:使用了全文索引,查询速度快
  • ⚠️ 建议:搜索结果可以高亮显示关键词

改进措施:

  • 实现搜索关键词高亮
  • 添加搜索建议功能

代码示例:

// 书籍搜索接口(支持全文搜索和排序)
@GetMapping("/books/search")
public Result search(@RequestParam String keyword,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "20") Integer size,@RequestParam(defaultValue = "relevance") String sortBy
) {// 参数验证if (StringUtils.isEmpty(keyword)) {return Result.error("搜索关键词不能为空");}// 构建排序条件String orderBy = "MATCH(title, author, description) AGAINST('" + keyword + "') DESC";if ("price_asc".equals(sortBy)) {orderBy = "price ASC";} else if ("price_desc".equals(sortBy)) {orderBy = "price DESC";} else if ("time".equals(sortBy)) {orderBy = "create_time DESC";}// 全文搜索PageInfo<Book> pageInfo = bookService.search(keyword, page, size, orderBy);// 记录搜索历史searchHistoryService.save(keyword);return Result.success(pageInfo);
}

Review 2: 购物车模块

  • Reviewer: 戴宏翔
  • Reviewee: 刘霆浩、戴宏翔

Review内容:

  • ✅ 代码规范:符合编码规范
  • ✅ 状态管理:使用Vuex管理状态,逻辑清晰
  • ✅ 用户体验:商品选择、数量修改、删除都很流畅
  • ✅ 总价计算:实时计算,准确无误
  • ⚠️ 建议:可以添加购物车商品数量限制

改进措施:

  • 限制购物车最多50件商品
  • 添加购物车过期清理机制

代码示例:

// Vuex购物车状态管理
export default {namespaced: true,state: {items: [],selectedIds: []},getters: {// 计算总价totalPrice(state) {return state.items.filter(item => state.selectedIds.includes(item.cartId)).reduce((sum, item) => sum + item.price * item.quantity, 0);},// 计算选中数量selectedCount(state) {return state.selectedIds.length;}},mutations: {// 设置购物车商品SET_ITEMS(state, items) {state.items = items;},// 更新商品数量UPDATE_QUANTITY(state, { cartId, quantity }) {const item = state.items.find(i => i.cartId === cartId);if (item) {item.quantity = quantity;}},// 删除商品REMOVE_ITEM(state, cartId) {state.items = state.items.filter(i => i.cartId !== cartId);state.selectedIds = state.selectedIds.filter(id => id !== cartId);},// 选择商品TOGGLE_SELECT(state, cartId) {const index = state.selectedIds.indexOf(cartId);if (index > -1) {state.selectedIds.splice(index, 1);} else {state.selectedIds.push(cartId);}},// 全选/取消全选TOGGLE_SELECT_ALL(state) {if (state.selectedIds.length === state.items.length) {state.selectedIds = [];} else {state.selectedIds = state.items.map(i => i.cartId);}}},actions: {// 加载购物车async loadCart({ commit }) {const res = await api.getCartList();commit('SET_ITEMS', res.data);},// 更新数量async updateQuantity({ commit }, { cartId, quantity }) {await api.updateCartQuantity(cartId, quantity);commit('UPDATE_QUANTITY', { cartId, quantity });},// 删除商品async removeItem({ commit }, cartId) {await api.removeCartItem(cartId);commit('REMOVE_ITEM', cartId);}}
}

Review 3: 订单创建模块

  • Reviewer: 杨浩
  • Reviewee: 赖顺炜

Review内容:

  • ✅ 代码规范:符合编码规范
  • ✅ 业务逻辑:订单创建流程正确
  • ✅ 数据验证:参数校验完整
  • ✅ 库存处理:库存检查和扣减正确
  • ⚠️ 建议:订单创建需要考虑并发问题

改进措施:

  • 使用数据库事务保证一致性
  • 添加乐观锁防止超卖

代码示例:

// 订单创建接口
@PostMapping("/orders")
@Transactional(rollbackFor = Exception.class)
public Result createOrder(@RequestBody OrderCreateDTO dto) {// 1. 参数验证if (dto.getItems() == null || dto.getItems().isEmpty()) {return Result.error("订单商品不能为空");}// 2. 检查库存for (OrderItemDTO item : dto.getItems()) {Book book = bookService.getById(item.getBookId());if (book == null) {return Result.error("商品不存在:" + item.getBookId());}if (book.getStock() < item.getQuantity()) {return Result.error("库存不足:" + book.getTitle());}}// 3. 创建订单Order order = new Order();order.setOrderNo(OrderUtil.generateOrderNo());order.setBuyerId(UserContext.getUserId());order.setStatus(OrderStatus.UNPAID);// ... 设置其他字段orderService.save(order);// 4. 创建订单明细for (OrderItemDTO item : dto.getItems()) {OrderItem orderItem = new OrderItem();orderItem.setOrderId(order.getOrderId());orderItem.setBookId(item.getBookId());orderItem.setQuantity(item.getQuantity());// ... 设置其他字段orderItemService.save(orderItem);// 5. 扣减库存(使用乐观锁)boolean success = bookService.decreaseStock(item.getBookId(), item.getQuantity());if (!success) {throw new BusinessException("库存扣减失败");}}// 6. 清空购物车cartService.clearByIds(dto.getCartIds());return Result.success(order);
}
-- 使用乐观锁扣减库存
UPDATE book 
SET stock = stock - #{quantity}, version = version + 1
WHERE book_id = #{bookId} AND stock >= #{quantity}AND version = #{version}

六、项目运行截图/代码

6.1 书籍搜索页面

功能说明:

  • 搜索输入框和搜索按钮
  • 搜索历史记录
  • 热门搜索推荐
  • 搜索结果展示(支持排序)
  • 分页功能

测试结果: ✅ 功能正常

代码片段:

<div className="books-page"><header className="books-header"><h1>📚 二手书市场</h1><Link to="/publish" className="btn btn-primary">发布二手书</Link></header><div className="search-bar"><inputtype="search"placeholder="搜索书名、作者或 ISBN..."value={keyword}onChange={(e) => setKeyword(e.target.value)}/></div>{paged.length === 0 ? (<p className="empty-hint">{keyword ? '未找到匹配的书籍' : '暂无书籍,快来发布第一本吧!'}</p>) : (<><ul className="book-list">{paged.map((book) => (<li key={book.id} className="book-card"><Link to={`/books/${book.id}`} className="book-link"><h3 className="book-title">{book.title}</h3><p className="book-author">{book.author}</p><p className="book-price">¥{book.price?.toFixed(2)}</p><span className="book-condition">{book.condition}</span></Link></li>))}</ul>{totalPages > 1 && (<div className="pagination"><buttondisabled={currentPage === 1}onClick={() => setCurrentPage((p) => p - 1)}>上一页</button><span>{currentPage} / {totalPages}</span><buttondisabled={currentPage === totalPages}onClick={() => setCurrentPage((p) => p + 1)}>下一页</button></div>)}</>)}<footer className="page-footer"><Link to="/">← 返回首页</Link></footer></div>

6.2 购物车页面

功能说明:

  • 商品列表展示(封面、书名、价格、数量)
  • 商品选择(单选、全选)
  • 数量修改(+/-按钮)
  • 商品删除
  • 总价实时计算
  • 结算按钮

测试结果: ✅ 功能正常

代码片段:

<template><v-container><v-card><v-card-title>购物车<v-spacer /><v-btn text color="error" @click="clearSelected">删除选中</v-btn></v-card-title><v-card-text><!-- 全选 --><v-checkboxv-model="selectAll"label="全选"@change="toggleSelectAll"/><!-- 商品列表 --><cart-itemv-for="item in cartItems":key="item.cartId":item="item":selected="isSelected(item.cartId)"@select="toggleSelect"@update-quantity="updateQuantity"@remove="removeItem"/></v-card-text><v-card-actions><v-spacer /><div class="total-price">总计:<span class="price">¥{{ totalPrice }}</span></div><v-btn color="primary" large @click="checkout">结算({{ selectedCount }})</v-btn></v-card-actions></v-card></v-container>
</template>

6.3 个人中心页面

功能说明:

  • 用户头像和基本信息
  • 个人信息编辑
  • 收货地址管理
  • 我的订单入口
  • 我的发布入口

测试结果: ✅ 功能正常

代码片段:

<div className="page-container profile-page"><h1>个人中心</h1>{/* 用户信息卡片 */}<section className="profile-card"><div className="profile-header"><div className="avatar">{profile?.nickname?.charAt(0) || '?'}</div><div className="profile-info">{editing ? (<div className="edit-nickname"><inputtype="text"value={nickname}onChange={(e) => setNickname(e.target.value)}className="nickname-input"placeholder="请输入昵称"maxLength={20}/></div>) : (<h2 className="user-nickname">{profile?.nickname}</h2>)}<p className="email">{profile?.email}</p></div>{editing ? (<div className="edit-actions"><button className="btn-primary" onClick={handleSave}disabled={saving}>{saving ? '保存中...' : '保存'}</button><button className="btn-secondary" onClick={() => { setEditing(false); setNickname(profile?.nickname); }}>取消</button></div>) : (<button className="btn-secondary" onClick={() => setEditing(true)}>✏️ 编辑</button>)}</div><p className="join-date">🗓️ 加入时间:{new Date(profile?.createdAt).toLocaleDateString('zh-CN')}</p></section>{/* 统计数据 */}<section className="profile-stats"><div className="stat-item" onClick={() => navigate('/orders')}><span className="stat-value">{stats.orders}</span><span className="stat-label">订单</span></div><div className="stat-item" onClick={() => navigate('/publish')}><span className="stat-value">{stats.published}</span><span className="stat-label">发布</span></div><div className="stat-item"><span className="stat-value">{stats.reviews}</span><span className="stat-label">评价</span></div></section>{/* 功能入口 */}<section className="profile-menu"><div className="menu-item" onClick={() => navigate('/orders')}><span className="menu-icon">📦</span><span className="menu-text">我的订单</span><span className="menu-arrow">›</span></div><div className="menu-item" onClick={() => navigate('/cart')}><span className="menu-icon">�</span><span className="menu-text">购物车</span><span className="menu-arrow">›</span></div><div className="menu-item" onClick={() => navigate('/publish')}><span className="menu-icon">📚</span><span className="menu-text">发布书籍</span><span className="menu-arrow">›</span></div><div className="menu-item" onClick={() => navigate('/books')}><span className="menu-icon">�</span><span className="menu-text">浏览书籍</span><span className="menu-arrow">›</span></div></section>{/* 退出登录 */}<button className="btn-danger logout-btn" onClick={handleLogout}>退出登录</button></div>

6.4 收货地址管理

功能说明:

  • 地址列表展示
  • 添加新地址
  • 编辑地址
  • 删除地址
  • 设置默认地址

测试结果: ✅ 功能正常

代码片段:

<div className="address-manager"><div className="address-header"><h3>收货地址</h3><button className="btn-add-address"onClick={() => setShowForm(!showForm)}>{showForm ? '取消' : '+ 新增地址'}</button></div>{showForm && (<form className="address-form" onSubmit={handleSubmit}><div className="form-row"><inputtype="text"placeholder="收件人姓名"value={form.recipientName}onChange={e => setForm({...form, recipientName: e.target.value})}required/><inputtype="tel"placeholder="手机号码"value={form.phone}onChange={e => setForm({...form, phone: e.target.value})}required/></div><div className="form-row"><inputtype="text"placeholder="省份"value={form.province}onChange={e => setForm({...form, province: e.target.value})}required/><inputtype="text"placeholder="城市"value={form.city}onChange={e => setForm({...form, city: e.target.value})}required/><inputtype="text"placeholder="区县"value={form.district}onChange={e => setForm({...form, district: e.target.value})}required/></div><inputtype="text"placeholder="详细地址"value={form.detailAddress}onChange={e => setForm({...form, detailAddress: e.target.value})}requiredclassName="full-width"/><label className="checkbox-label"><inputtype="checkbox"checked={form.isDefault}onChange={e => setForm({...form, isDefault: e.target.checked})}/>设为默认地址</label><button type="submit" className="btn-submit">保存地址</button></form>)}<div className="address-list">{addresses.length === 0 ? (<p className="no-address">暂无收货地址,请添加</p>) : (addresses.map(addr => (<div key={addr.id} className={`address-card ${selectedId === addr.id ? 'selected' : ''}`}onClick={() => handleSelect(addr.id)}><div className="address-info"><div className="address-name"><span className="recipient">{addr.recipientName}</span><span className="phone">{addr.phone}</span>{addr.isDefault && <span className="default-tag">默认</span>}</div><div className="address-detail">{addr.province} {addr.city} {addr.district} {addr.detailAddress}</div></div><button className="btn-delete"onClick={(e) => {e.stopPropagation();handleDelete(addr.id);}}>删除</button></div>)))}</div></div>

6.5 接口测试(Postman)

搜索接口测试:

GET http://localhost:8081/api/books/search?keyword=数学&page=1&size=20&sortBy=relevanceResponse:
{"code": 200,"message": "success","data": {"list": [{"bookId": 1,"title": "高等数学(上册)","author": "同济大学数学系","price": 35.00,"relevance": 0.95},{"bookId": 2,"title": "线性代数","author": "同济大学数学系","price": 28.00,"relevance": 0.85}],"total": 12,"page": 1,"size": 20}
}

测试结果: ✅ 接口正常


订单创建接口测试:

POST http://localhost:8081/api/ordersRequest:
{"items": [{"bookId": 1,"quantity": 1}],"addressId": 1,"shippingMethod": 2,"cartIds": [1]
}Response:
{"code": 200,"message": "订单创建成功","data": {"orderId": 1,"orderNo": "202511211430251234567890","buyerId": 1,"totalPrice": 35.00,"shippingFee": 5.00,"actualPrice": 40.00,"status": 0,"createTime": "2025-11-21 14:30:25"}
}

测试结果: ✅ 接口正常


个人信息接口测试:

GET http://localhost:8081/api/users/profileResponse:
{"code": 200,"message": "success","data": {"userId": 1,"studentId": "3123004462","username": "杨浩","email": "yanghao@example.com","phone": "13800138000","avatar": "https://oss.example.com/avatar1.jpg","role": 1,"createTime": "2025-11-19 10:35:20"}
}

测试结果: ✅ 接口正常


6.6 数据库数据

订单表数据:

mysql> SELECT order_id, order_no, buyer_id, total_price, status FROM `order` LIMIT 3;
+----------+----------------------------+----------+-------------+--------+
| order_id | order_no                   | buyer_id | total_price | status |
+----------+----------------------------+----------+-------------+--------+
|        1 | 202511211430251234567890   |        1 |       35.00 |      0 |
|        2 | 202511211445301234567891   |        1 |       70.00 |      0 |
|        3 | 202511211520151234567892   |        3 |       42.00 |      0 |
+----------+----------------------------+----------+-------------+--------+
3 rows in set (0.00 sec)

订单明细表数据:

mysql> SELECT * FROM order_item LIMIT 3;
+---------+----------+---------+------------------------+-------+----------+---------+
| item_id | order_id | book_id | book_title             | price | quantity | subtotal|
+---------+----------+---------+------------------------+-------+----------+---------+
|       1 |        1 |       1 | 高等数学(上册)        | 35.00 |        1 |   35.00 |
|       2 |        2 |       1 | 高等数学(上册)        | 35.00 |        1 |   35.00 |
|       3 |        2 |       2 | 线性代数               | 28.00 |        1 |   28.00 |
+---------+----------+---------+------------------------+-------+----------+---------+
3 rows in set (0.00 sec)

收货地址表数据:

mysql> SELECT * FROM address LIMIT 2;
+------------+---------+---------------+----------------+--------+--------+----------+---------------------+------------+
| address_id | user_id | receiver_name | receiver_phone | province | city  | district | detail              | is_default |
+------------+---------+---------------+----------------+--------+--------+----------+---------------------+------------+
|          1 |       1 | 杨浩          | 13800138000    | 福建省 | 福州市 | 闽侯县   | 福州大学紫金港校区   |          1 |
|          2 |       1 | 杨浩          | 13800138000    | 福建省 | 福州市 | 闽侯县   | 福州大学旗山校区     |          0 |
+------------+---------+---------------+----------------+--------+--------+----------+---------------------+------------+
2 rows in set (0.00 sec)

测试结果: ✅ 数据正常存储


七、每日个人总结

7.1 杨浩

今天完成了书籍搜索功能的开发,实现了搜索历史和热门推荐,用户体验很好。开始了订单创建页面的开发,这是一个比较复杂的页面,需要展示多个商品、收货地址、配送方式等信息。

团队进度持续超前,大家都很有信心。明天准备进行一次完整的功能演示,展示我们的成果。

今日收获:

  • 掌握了搜索功能的实现方法
  • 学会了如何设计复杂的表单页面
  • 项目管理能力提升

明日目标:

  • 完成订单创建页面
  • 完成个人中心页面
  • 准备功能演示

7.2 戴宏翔

今天完成了个人信息和收货地址接口的开发,功能比较简单,进度很顺利。修复了购物车删除接口的Bug,提高了代码的健壮性。

明天开始面交地址功能的开发,卖家发布书籍时需要填写面交地址,买家下单后可查看卖家提供的面交地点进行当面交易。作为PM,我会继续关注项目进度和质量。

今日收获:

  • 学会了如何处理异常情况
  • 代码健壮性意识增强
  • 项目管理经验增加

明日目标:

  • 完成面交地址接口开发
  • 完成订单确认与面交流程处理
  • 进行代码Review

7.3 莫圣韬

今天对搜索和购物车模块进行了测试,发现了3个Bug,都已经反馈给开发人员。其中购物车删除接口的Bug已经修复,其他两个Bug正在修复中。

测试工作让我对业务逻辑有了更深入的理解。明天继续对订单模块进行测试,这是核心功能,需要仔细测试。

今日收获:

  • 测试能力持续提升
  • 学会了如何编写性能测试用例
  • Bug跟踪管理经验增加

明日目标:

  • 对订单创建接口进行测试
  • 对面交地址接口进行测试
  • 编写测试报告

7.4 赖顺炜

今天完成了搜索和订单创建接口的开发,这两个都是核心功能。搜索功能使用了MySQL全文索引,性能很好。订单创建使用了乐观锁防止超卖,保证了数据一致性。

明天继续订单模块的开发,完成订单查询和状态流转功能。

今日收获:

  • 掌握了乐观锁的使用方法
  • 学会了如何处理并发问题
  • 订单业务逻辑理解更深入

明日目标:

  • 完成订单查询接口
  • 完成订单状态流转逻辑
  • 完成评价功能接口

7.5 陈东楷

今天主要工作是更新文档和准备明天的功能演示PPT。接口文档的更新需要与开发人员密切沟通,确保文档的准确性。

功能演示PPT需要展示我们的核心功能和亮点,让大家看到我们的成果。

今日收获:

  • 文档管理能力持续提升
  • 学会了如何制作演示PPT
  • 沟通协调能力增强

明日目标:

  • 完善功能演示PPT
  • 协助进行功能演示
  • 编写冲刺博客

7.6 刘霆浩

今天完成了购物车页面的开发,使用Vuex管理状态,逻辑清晰,代码质量不错。购物车页面的交互比较复杂,但最终实现得很流畅。

明天开始订单列表和收货地址页面的开发,这两个页面相对简单。

今日收获:

  • 掌握了Vuex状态管理的高级用法
  • 学会了如何设计复杂的交互逻辑
  • 前端架构设计能力提升

明日目标:

  • 完成订单列表页面
  • 完成收货地址页面
  • 优化前端性能

博客撰写: 陈东楷
审核: 杨浩
发布时间: 2025-11-21 23:00

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python自动化脚本实战:批量创建用户、文件备份、日志清理、服务监控

在日常工作中,我们经常需要重复执行批量创建用户、定期备份文件、清理过期日志、监控服务状态等机械性操作。手动处理不仅耗时耗力,还容易出错。Python作为一门简洁高效的脚本语言,能轻松实现这些操作的自动化,帮我…

12.3阅读笔记

纯文本:终极的持久化格式​​ 书中对纯文本的推崇让我重新审视了自己的项目。我的项目配置、数据存储(JSON)、文档(Markdown)全部都是纯文本。最大的好处就是​​可移植和可诊断​​。 ​​灾难恢复演练:​​ 这…

AD25 安装全攻略:Altium Designer 25 下载安装教程 + 激活教程 + 中文设置教程 + PCB 入门

AD25 是电子工程师做电路设计的 “全能工具”,从画原理图、做电路仿真,到铺 PCB 板、自动布线,再到查信号完整性、出生产文件,一套软件全搞定。不管是做消费电子、工业控制板,还是汽车电子、物联网模块,用 AD25 …

2025年12月欧洲移民,香港移民,土耳其移民机构推荐,政策解读与全流程服务实用指南

2025年移民公司最新推荐:技术实力与市场口碑深度解析在当今全球化的时代,移民成为了许多人追求更好生活、拓展事业版图的重要选择。然而,面对众多的移民公司,如何挑选一家靠谱、专业的机构成为了一大难题。为了帮助…

为什么使用MATLAB的imnoise函数添加高斯噪声时要将方差除以255^2

看着已经是5年前的文章了,重新说一说这个问题。MATLAB中imnoise函数默认是处理的浮点数,图像数据在[0,1]之间,对于高斯噪声,可以将每个像素点的取值看作一个随机变量,imnoise默认是处理的一个[0,1]之间的随机变量…

DVWA SQL Injection—Medium and high(使用sqlmap工具注入)

DVWA SQL Injection—Medium and high(使用sqlmap工具注入)前情提要: (注意:该文中我主要采取的是sqlmap工具的方式进行注入) 我已经配置了的环境与安装好的软件:小皮面板中的MySQL和Apache环境已经开启 有火…

AI元人文:没有AI辅助,价值维度谱何以可能?

AI元人文:没有AI辅助,价值维度谱何以可能? 引言:一个不可能完成的任务 想象一下,你被要求完成一份报告:《关于“公平”的完整维度谱系分析》。你需要:遍历人类所有哲学、法学、社会学文献中关于“公平”的论述 …

完整教程:Kafka 四个选举,Controller 选举、Partition leader 选举、GroupCoordinator 选举、消费组协调器选举详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年12月美国移民,马耳他移民,香港移民机构推荐榜,彰显合规服务与全球资源实力

2025年移民公司最新推荐:技术实力与市场口碑深度解析在当今全球化的时代,移民成为了许多人追求更好生活、拓展事业版图的重要选择。然而,面对市场上众多的移民公司,如何挑选一家靠谱、专业的机构成为了一大难题。为…

2025年12月澳洲移民,美国移民,新加坡移民机构推荐:聚焦资质案例与成功率深度解析

2025年移民公司最新推荐:技术实力与市场口碑深度解析在当今全球化的时代,移民成为了许多人追求更好生活、拓展事业版图以及为子女谋求优质教育资源的重要途径。然而,面对市场上众多的移民公司,如何选择一家安全、专…

第三方软件测试机构:【“Bug预防”比“Bug发现”更有价值:如何建立缺陷根因分析与流转机制?】 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年12月土耳其移民,澳洲移民,葡萄牙移民机构权威推荐,资质合规与后续支持双保障

2025年移民公司最新推荐:技术实力与市场口碑深度解析在当今全球化的时代,移民已经成为许多家庭追求更好生活、拓展发展空间的重要选择。然而,面对市场上众多的移民公司,如何挑选一家可靠、专业的机构成为了一大难题…

颜色空间,线性和伽马颜色空间

参考:颜色空间 - Unity 手册 Unity Editor 允许您使用传统的伽马颜色空间以及线性颜色空间。伽马颜色空间是历史悠久的标准格式,但线性颜色空间渲染可提供更精确的结果。 如需进一步阅读这方面的信息,请参阅以下相关…

2025年12月葡萄牙移民,新加坡移民,香港移民机构推荐榜:甄选合规中介实测解析

2025年移民公司最新推荐:技术实力与市场口碑深度解析在全球化的浪潮下,移民成为了许多人追求更好生活、拓展事业版图的重要选择。为了帮助广大有移民需求的人士挑选到优质可靠的移民公司,相关国际移民服务协会开展了…

串流投屏

sunshine和moonlight是一对搭挡,sunshine做为服务端,moonlight做为客户端。局域网内,在moonlight中添加服务端的ip地址,或者有时候直接能显示出来,然后在服务端输入对应pin码,就能将服务端的屏幕内容投射到客户端…

2025年上海网站开发服务商十大品牌权威推荐 数字化时代的企业门户建设专家指南

2025年上海网站开发服务商十大品牌权威推荐 数字化时代的企业门户建设专家指南随着数字化转型加速,企业网站已成为品牌展示、业务拓展和客户互动的重要平台。上海作为中国数字经济的领军城市,汇聚了众多优秀的网站开…

12.jdbc第一步DriverManager

1.核心定位:JDBC 生态的 “驱动调度中枢”,用于管理数据库驱动实例。DriverManager 是 JDBC 核心工具类(java.sql.DriverManager) 2.是只能管理数据库的驱动实例吗?其他的驱动不能管吗?明确结论:DriverManager …

移动云专业版root分辨率 安卓11

我用中国移动云盘给你分享的文件:“移动云手机ROOT改分辨率”链接: https://yun.139.com/shareweb/#/w/i/2rGFhcaFVVr76/*n90LaPbmaUU0:/ 复制本段信息,打开「中国移动云盘APP」获取。人人不限速,移动用户免流量!…

最新发布!长租公寓哪家好?哪家更靠谱?TOP10权威推荐

最新发布!长租公寓哪家好?哪家更靠谱?TOP10权威推荐在城市青年的居住选择中,“租房迷茫”与“体验落差”正成为高频痛点。面对品牌公寓、中介租房、个人房源的多重岔路,许多人不得不在海量信息中反复比对,耗时耗…

2025年7款免费AI论文写作工具推荐:毕业论文一键生成神器

2025 年毕业季,写论文痛苦让作者苦不堪言,后用 AI 工具轻松不少。作者分享 7 款超实用免费 AI 论文写作工具,如 PaperFine 可 30 分钟生成初稿、智能改稿等;图灵论文 AI 写作助手能 30 分钟生成 5 万字初稿、一站式…