第02组 每周小结 (1/3)

第02组 每周小结 (1/3)

基本情况

冲刺情况汇报

过去一周完成了哪些任务?文字/口头描述

前端:

  • 修复喜欢标签/忌口标签/菜品/筛选/窗口页面 android手机样式错误
  • 首页食堂拥挤上划刷新
  • 部分样式修改

后端

  • 做oos触发器,设置定时带宽升级

  • 修复[窗口星级]的bug

  • 修复[热门模块]后台崩溃的bug

  • 修复部分窗口收藏无法取消的问题

  • 修复[管理员模块]相关持久层删除级联的问题(添加触发器)

  • 尽可能地美化[管理员模块]的UI

展示GitHub当日代码/文档签入记录

前端

img

后端

img

做了哪些优化和迭代

前端

  • 修复喜欢标签/忌口标签/菜品/筛选页面 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定点数之后,问题就迎刃而解了

  • 修复部分窗口收藏无法取消的问题

由用户反馈桃李园餐厅的收藏无法取消,我们就马上进行了修改

img

原来版本(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;

接下来的计划还剩下哪些任务?

前端

img

后端

  • 做标签的优化排序

  • 做食堂拥挤程度的可视化

  • 做安全相关的事项

遇到了哪些困难?

目前最大的困难可能是在IO方面的,后端程序的IO做的不是很好,加之带宽也不给力,就存在一些速度问题,导致用户体验不佳

团队有哪些收获和疑问

收获:得到了很多debug能力

疑问:自动化测试整不明白

成果展示

展示组内最新成果

修改了显示一条线的bug

img

优化了界面上下移动的问题

img

修正了标签显示bug

img

新增餐厅人数刷新

img

展示本周自动化测试的结果

由于微信小程序单元化测试比较麻烦,我们采取了autojs+人工测试的办法,通过不停的点击按钮,跳转页面测试我们小程序的稳定性。现在测试出来的bug已在上面给过了。

展示自动化持续集成(加分项,对应自动化测试)

原文地址:https://www.cnblogs.com/kukicookie/p/14092402.html