第02组 每周小结 (1/3)
基本情况
冲刺情况汇报
过去一周完成了哪些任务?文字/口头描述
前端:
- 修复喜欢标签/忌口标签/菜品/筛选/窗口页面 android手机样式错误
- 首页食堂拥挤上划刷新
- 部分样式修改
后端
-
做oos触发器,设置定时带宽升级
-
修复[窗口星级]的bug
-
修复[热门模块]后台崩溃的bug
-
修复部分窗口收藏无法取消的问题
-
修复[管理员模块]相关持久层删除级联的问题(添加触发器)
-
尽可能地美化[管理员模块]的UI
展示GitHub当日代码/文档签入记录
前端
后端
做了哪些优化和迭代
前端
- 修复喜欢标签/忌口标签/菜品/筛选页面 android手机样式错误
- 首页食堂拥挤上划刷新
- 部分样式修改
后端
-
做oos触发器,设置定时带宽升级,做网络IO的优化
-
热门排序算法的更新
-
更改管理员相关持久层的级联删除
-
优化[管理员模块]的页面
通过自动化测试测出的bug(如没有可不填)
解决了哪些Bug,又是如何解决的(需要写详细)
前端
android 端小程序多个页面的 flex 布局错误,子组件会撑开父组件已经设为"flex: 1 1 0;"的父组件,是android 端小程序渲染使用了微信自己的浏览器引擎 x5 导致的,然后给父组件设定了 maxHeight 就解决了.
后端
- 修复[窗口星级]的bug
这个bug是在进入窗口页面时,星级非常大,我们满的明明就是5,但竟然出现了大于20的情况,后来发现是方法调用错误,持久层注入后,调用的是计算窗口标签总数,而并非星级计算
原来版本
windowEntry.setStar((double) dishTagMapper.countTagNumByWindowId(windowId));
修改后
windowEntry.setStar(dishCommentMapper.getAvgStarsByWindowId(windowId));
这是粗心大意造成的
- 修复[热门模块]后台崩溃的bug
之前并不觉得热门的排序会出现什么问题,因为也确实正常运行了,但随着数据量的增大,在没有改动代码的情况下,热门崩溃了!查了一下后台日志,是因为报了这个错:
java.lang.IllegalArgumentException: Comparison method violates its general contract
后来经过一番研究和学习,发现是因为我们sort()的比较器写的有问题,出现了ab,bc,但是a<c的情况,这非常致命,TimSort就不知道要怎么排序。想到我们比较时候用的是double数据类型,存在精度问题,在把double换成BigDecimal定点数之后,问题就迎刃而解了
- 修复部分窗口收藏无法取消的问题
由用户反馈桃李园餐厅的收藏无法取消,我们就马上进行了修改
原来版本(updateMarkedWindow()方法中的部分代码片段)
for(Window window : windowList){
if(window.getWindowId()==windowId){
userMapper.removeMarkWindow(userId,windowId);
flag = 0;
break;
}
}
修改后
for (Window window : windowList) {
if (window.getWindowId().equals(windowId)) {
userMapper.removeMarkWindow(userId, windowId);
flag = 0;
break;
}
}
由于我们的windowId字段用的是Integer,是一个对象类型,就可能会存在问题,应该要用jdk提供的equals()方法,而非直接进行等值比较,尽管有拆箱装箱机制,也万万不可把对象拿来做等值比较,很可能比的是地址,而非对象的值,这是致命问题
- 修复[管理员模块]相关持久层删除级联的问题(添加触发器)
create trigger delete_dish before delete on dish
for each row
begin
delete from dish_stars where dish_stars.dish_id = OLD.dish_id;
delete from dish_comment where dish_comment.dish_id = OLD.dish_id;
delete from dish_tag where dish_tag.dish_id = OLD.dish_id;
delete from dish_stars where dish_stars.dish_id = OLD.dish_id;
delete from user_like_dish where user_like_dish.dish_id = OLD.dish_id;
end;
create trigger delete_window before delete on window
for each row
begin
delete from window_stars where window_stars.window_id = OLD.window_id;
delete from dish where dish.window_id = OLD.window_id;
end;
接下来的计划还剩下哪些任务?
前端
后端
-
做标签的优化排序
-
做食堂拥挤程度的可视化
-
做安全相关的事项
遇到了哪些困难?
目前最大的困难可能是在IO方面的,后端程序的IO做的不是很好,加之带宽也不给力,就存在一些速度问题,导致用户体验不佳
团队有哪些收获和疑问?
收获:得到了很多debug能力
疑问:自动化测试整不明白
成果展示
展示组内最新成果
展示本周自动化测试的结果
由于微信小程序单元化测试比较麻烦,我们采取了autojs+人工测试的办法,通过不停的点击按钮,跳转页面测试我们小程序的稳定性。现在测试出来的bug已在上面给过了。
展示自动化持续集成(加分项,对应自动化测试)
无