熬夜会秃头——beta冲刺Day2

news2024/11/16 4:42:26

这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云
这个作业要求在哪里团队作业—beta冲刺+事后诸葛亮-CSDN社区
这个作业的目标记录beta冲刺Day2
团队名称熬夜会秃头
团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区

目录

一、团队成员会议总结

1、成员工作进度

2、工作记录展示

3、SCRUM会议照片

二、PM报告

1. 工作进度估计

2、燃尽图

3. 工作总量变化

4. 项目最新进展


一、团队成员会议总结

1、成员工作进度

组员今日进展:   耗时(min)存在的问题/遇到的困难:明日计划:心得体会:
陈少桐

引入axios,并且封装一个请求拦截器,以便用于请求的预处理,便于直接添加token,完成相册打开图片的处理,完成大文件的md5计算设置以及将文件数据转化为字符串

240

完成剩余接口

放弃uni自带的请求果然是正确的,引入axios后请求直接嘎嘎通,并且偶然看到拦截器这一东西,发现可以简化代码量,就去尝试了一下。

梁菲汎

修改之前不符合代码规范的前端页面

100

将界面修改完,并且编写落下的接口

要加紧完成之前不遵守代码规范造成损失的代码,并且尽快与后端对接,以后一定要认真核对代码规范,多与组员交流

陈知菲

为项目的文件列表查看、文件的下载新增了缓存机制

260完善后端功能

学习了spring-boot-starter-cache

Spring缓存机制集成redis的使用,了解了@Cacheable,@CachePut,@CacheEvict注解的作用与区别

李恒欣完善前后端接口交互60编写未完成部分和新增功能的接口对json流有了更深刻的理解,今天的接口编写更加顺畅了,也对json传递图片信息的方式有了一定的理解和认识
邱思源对后端代码进行单元测试60需要对处理时间进行较准确合理的预估对新实现的后端代码进行单元测试对大量图片进行处理测试时容易出现超时现象,需要对处理时间进行较准确合理的预估
宋芳鑫完善web端功能45进一步完善前端功能功能一点点地在完善,最近这两天开发得还算顺利,不知道明天开始开发的视频处理功能还会不会那么顺利
张一凡进行前端代码单元测试70网络环境的变化模拟测试较难完成对新实现的前端代码进行单元测试图片处理功能可能依赖于网络环境,需要模拟不同的网络环境,测试功能在各种情况下的表现。网络环境的模拟测试较难完成
林承桢对新完成的模块进行功能测试,将完成的测试结果写入测试文档65继续进行功能测试,完善测试文档图片部分的测试需要考虑因素较多,需要多思多想才能面面俱到
黄才栋辅助进行APP端开发90对uniapp使用不够熟练完善APP端功能经过对uniapp相关知识的学习和有经验的大佬的带动和指导,可以在APP端的开发上帮上一定的忙了
谢怀广核对已完成代码规范并制作项目燃尽图、记录工作进度30核对新增代码规范、制作项目燃尽图、记录工作进度有了清晰明确的工作进度对照后,绘制项目燃尽图更加准确快捷

2、工作记录展示

存储、删除文件时更新缓存,取文件时无需访问磁盘,直接从缓存中读取

@Caching(
        cacheable = {
                @Cacheable(cacheNames = "fileCache",
                        key = "#bucketId+#fileName", condition = "#flag==1", unless = "#result==null")
        },
        put = {
                @CachePut(cacheNames = "fileCache",
                        key = "#bucketId+#fileName", condition = "#flag==2", unless = "#result==null")
        },
        evict = {
                @CacheEvict(cacheNames = "fileCache",
                        key = "#bucketId+#fileName", condition = "#flag==3")
        }
)
public String getFile(String bucketId, String fileName,
                      HttpServletResponse response, int flag) {
    String path = FileProperty.realPath + bucketId + "/" + fileName;
    Map<String, Integer> nvMap = bucketCache.getFileSetByName(bucketId, flag);
    Integer version = nvMap.get(path);
    File file = new File(path + "/" + version);
    if (file.exists()) {
        MappedByteBuffer buffer = null;
        BufferedOutputStream bos = null;
        try {
            FileChannel channel = new FileInputStream(file).getChannel();
            if (file.length() < 1024 * 1024 * 2) {
                byte[] bytes = new byte[(int) file.length()];
                buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
                buffer.get(bytes);
                Cleaner cleaner = ((sun.nio.ch.DirectBuffer) buffer).cleaner();
                cleaner.clean();
                return Base64.getEncoder().encodeToString(bytes);
            } else if (response != null) {
                byte[] bytes = new byte[1024 * 1024];
                bos = new BufferedOutputStream(response.getOutputStream());
                for (int i = 0; i < file.length(); i += 1024 * 1024) {
                    int size = (file.length() - i) < 1024 * 1024 ?
                            (int) (file.length() - i) : 1024 * 1024;
                    buffer = channel.map(FileChannel.MapMode.READ_ONLY, i, size);
                    buffer.get(bytes, 0, size);
                    bos.write(bytes, 0, size);
                    bos.close();
                    Cleaner cleaner = ((sun.nio.ch.DirectBuffer) buffer).cleaner();
                    cleaner.clean();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            Cleaner cleaner = ((sun.nio.ch.DirectBuffer) buffer).cleaner();
            cleaner.clean();
        }
    }
    return null;
}

存储、删除文件时更新桶的文件列表缓存,取文件列表时无需访问磁盘,直接从缓存中读取

@Caching(
        cacheable = {
                @Cacheable(cacheNames = "bucketCache",
                        key = "#bucketId", condition = "#flag==1")
        },
        put = {
                @CachePut(cacheNames = "bucketCache",
                        key = "#bucketId", condition = "#flag==2")
        },
        evict = {
                @CacheEvict(cacheNames = "bucketCache",
                        key = "#bucketId", condition = "#flag==3")
        }
)
public Map<String, Integer> getFileSetByName(String bucketId, int flag) {
    return fileVersionScan(bucketId);
}

@Caching(
        cacheable = {
                @Cacheable(cacheNames = "bucketCache-cold",
                        key = "#bucketId", condition = "#fresh==false")
        },
        put = {
                @CachePut(cacheNames = "bucketCache-cold",
                        key = "#bucketId", condition = "#fresh==true")
        }
)
public Map<String, Integer> getColdFileSetByName(String bucketId, Boolean fresh) {
    return coldFileVersionScan(bucketId);
}

3、SCRUM会议照片

二、PM报告

1. 工作进度估计

任务总量已完成工作量剩余工作量
591643

2、燃尽图

3. 工作总量变化

4. 项目最新进展

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

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

相关文章

【高效开发工具系列】驼峰下划线互转

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

centos7 yum安装redis

1.安装epel源 yum install epel-release -y 2.安装 参数-y是遇到yes/no时 自动yes yum install redis -y 3.查看redis安装的位置 whereis redis 4.打开配置文件 vim /etc/redis.config 5.修改密码 在打开的文件中输入 /requirepass 后按下确认键&#xff0c;(找下一个关…

常见的攻击防护

只做模拟机器使用&#xff0c;不使用真实机器 目录 一、 DHCP饿死和防护应对措施.................................. 1 1&#xff0c; 实验拓扑&#xff1a;...................................................... 2 2&#xff0c; 实验配置............................…

Web网页安全策略的研究及其实现方案

摘 要 越来越多的人使用电脑来接触互联网&#xff0c;事实上&#xff0c;使用Web技术的实现基于网络的不断完善和发展的交流网站&#xff0c;人们可以利用计算机网络技术&#xff0c;方便得到想要的任何信息。计算机网络的发展&#xff0c;也促进了相关产业的发展&#xff0c;…

C++11【下】

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb; 新的类功能类成员变量初始…

【pytorch】从yolo的make_grid理解torch.meshgrid、torch.stack

文章目录 简述1、torch.meshgrid 创建行列坐标2、torch.stack 结合行列坐标3、通过view函数扩展维度 简述 yolo检测 make_grid创建网格代码如下&#xff0c;那么什么是torch.meshgrid? def _make_grid(nx20, ny20):yv, xv torch.meshgrid([torch.arange(ny), torch.arange(…

三 STM32F4使用Sys_Tick 实现微秒定时器和延时

更多细节参考这篇 1. 什么是时钟以及作用 1.1 什么是时钟 时钟是由电路产生的周期性的脉冲信号&#xff0c;相当于单片机的心脏 1.2 时钟对于STM32的作用 指令同步&#xff1a;cpu和内核外设使用时钟信号来进行指令同步数据传输控制&#xff1a; 时钟信号控制数据在内部总…

CSS新手入门笔记整理:CSS图片样式

图片大小 语法 width:像素值; height:像素值; 图片边框&#xff1a;border 语法 边框&#xff1a;宽度值 样式值 颜色值&#xff1b; border:1px solid red; 图片对齐 水平对齐&#xff1a;text-align 语法 text-align:取值; 属性值 说明 left 左对齐(默认值) cent…

【Java Web学习笔记】 1 - HTML入门

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/html 零、网页的组成 HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息&#xff0c;可以包含文字、图片视频等。 CSS样式是表现。就像网页的外衣。比如&#xff0c;标题字体、…

go学习之goroutine和channel

文章目录 一、goroutine(协程)1.goroutine入门2.goroutine基本介绍-1.进程和线程说明-2.程序、进程和线程的关系示意图-3.Go协程和Go主线程 3.案例说明4.小结5.MPG模式基本介绍6.设置Golang运行的CPU数7.协程并发&#xff08;并行&#xff09;资源竞争的问题8.全局互斥锁解决资…

【渗透】记录阿里云CentOS一次ddos攻击

文章目录 发现防御 发现 防御 流量清洗 使用高防

acwing算法基础之动态规划--数位统计DP、状态压缩DP、树形DP和记忆化搜索

目录 1 基础知识2 模板3 工程化 1 基础知识 暂无。。。 2 模板 暂无。。。 3 工程化 题目1&#xff1a;求a~b中数字0、数字1、…、数字9出现的次数。 思路&#xff1a;先计算1~a中每位数字出现的次数&#xff0c;然后计算1~b-1中每位数字出现的次数&#xff0c;两个相减即…

YOLOv8优化策略:SENetV2,squeeze和excitation全面升级,效果优于SENet | 2023年11月最新成果

🚀🚀🚀本文改进: SENetV2,squeeze和excitation全面升级,作为注意力机制引入到YOLOv8,放入不同网络位置实现涨点 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1.SENetV2 论文:https://arxiv.org/…

java:springboot3集成swagger(springdoc-openapi-starter-webmvc-ui)

背景 网上集成 swagger 很多都是 Springfox 那个版本的&#xff0c;但是那个版本已经不更新了&#xff0c;springboot3 集成会报错 Typejavax.servlet.http.HttpServletRequest not present&#xff0c;我尝试了很多才知道现在用 Springdoc 了&#xff0c;今天我们来入门一下 …

2023-12-02 LeetCode每日一题(拼车)

2023-12-02每日一题 一、题目编号 1094. 拼车二、题目链接 点击跳转到题目位置 三、题目描述 车上最初有 capacity 个空座位。车 只能 向一个方向行驶&#xff08;也就是说&#xff0c;不允许掉头或改变方向&#xff09; 给定整数 capacity 和一个数组 trips , trip[i] …

国际语音群呼系统

随着海外电话营销的发展&#xff0c;越来越多的出海企业通过国际语音群呼系统打开出海营销之路。企业出海营销运营&#xff0c;选择一个安全、高效、便捷的国际语音群呼系统非常重要。 一、什么是国际语音群呼系统&#xff1f; 国际语音群呼是指通过语音的方式批量向海外用户传…

一进三出宿舍限电模块的改造升级

一进三出宿舍限电模块改造升级石家庄光大远通电气有限公司智能模块功能特点&#xff1a; 电能控制功能&#xff1a;可实施剩余电量管理&#xff0c;电量用完时将自动断电&#xff1b; 剩余电量可视报警提示功能&#xff1a;剩余电量可视&#xff0c;并当电量剩余5度时&#xff…

cpu版本的torch可以用清华镜像源安装

一、来到pytroch官网找到如下代码 官方提供的默认的安装cpu版本的torch的命令 pip3 install torch torchvision torchaudio二、使用清华镜像安装 pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

力扣题:字符串的反转-11.24

力扣题-11.24 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;151. 翻转字符串里的单词 解题思想&#xff1a;保存字符串中的单词即可 class Solution(object):def reverseWords(self, s):""":type s: str:rtype: str"&quo…

项目实战-编写ssm整合配置文件

1、父工程pom.xml <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>…