• 第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能力

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

    成果展示

    展示组内最新成果

    img

    img

    img

    img

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

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

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

  • 相关阅读:
    电商总结(二)日志与监控系统的解决方案
    倾力推荐,哪一本让你想要加入书单
    电商总结(一)小型电商网站的架构
    聊一聊如何提升团队开发效率
    Nancy总结(三)Nancy资料介绍
    【推荐】2016年不得不读的九本好书
    Solr学习总结(七)Solr搜索引擎的整体架构
    再见 2015,你好 2016
    Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
    Solr学习总结(五)SolrNet的基本用法及CURD
  • 原文地址:https://www.cnblogs.com/wjiaxin/p/14093903.html
Copyright © 2020-2023  润新知