zoukankan      html  css  js  c++  java
  • 第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已在上面给过了。

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

  • 相关阅读:
    POJ-1330 Nearest Common Ancestors(倍增的LCA)
    POJ-1442 Black Box(手写堆优化)
    POJ-2442 Sequence(手写堆优化)
    BZOJ2506 calc
    BZOJ3396 [Usaco2009 Jan]Total flow 水流
    BZOJ3570 DZY Loves Physics I
    BZOJ1101 [POI2007]Zap
    BZOJ1110 [POI2007]砝码Odw
    BZOJ1555 KD之死
    BZOJ3476 [Usaco2014 Mar]The Lazy Cow
  • 原文地址:https://www.cnblogs.com/kukicookie/p/14092402.html
Copyright © 2011-2022 走看看