当前位置: 首页 > news >正文

熬夜会秃头——beta冲刺Day2

这个作业属于哪个课程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. 项目最新进展

相关文章:

  • C语言每日一题(43)旋转链表
  • 基于Intel Ai Analytics Toolkit 及边缘计算的溶氧预测水产养殖监测方案
  • 目标检测——Fast R-CNN算法解读
  • LangChain(0.0.339)官方文档四:Prompts下——prompt templates的存储、加载、组合和部分格式化
  • docker部署elasticsearch+kibana+head
  • uniapp+vue3路由跳转传参
  • 【渗透】记录阿里云CentOS一次ddos攻击
  • Jmeter对图片验证码的处理
  • C++学习之路(十五)C++ 用Qt5实现一个工具箱(增加16进制颜色码转换和屏幕颜色提取功能)- 示例代码拆分讲解
  • 基于springboot+vue的点餐系统(前后端分离)
  • 【sql】【mysql】【数据库】复杂查询中避免Join的办法
  • Gavin Wood:财库保守主义偏离了初心,应探索 Fellowship 等更有效的资金部署机制
  • powershell获取微软o365 21v日志
  • 第六十四周周报
  • Android Studio新版UI介绍
  • angular学习第一篇-----环境搭建
  • JavaScript类型识别
  • JavaScript中的对象个人分享
  • JAVA多线程机制解析-volatilesynchronized
  • JS数组方法汇总
  • Lucene解析 - 基本概念
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • webpack+react项目初体验——记录我的webpack环境配置
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 排序算法之--选择排序
  • 前端路由实现-history
  • 如何合理的规划jvm性能调优
  • 使用putty远程连接linux
  • 世界上最简单的无等待算法(getAndIncrement)
  • 微信开源mars源码分析1—上层samples分析
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 如何在招聘中考核.NET架构师
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • $.ajax,axios,fetch三种ajax请求的区别
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (ibm)Java 语言的 XPath API
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (分布式缓存)Redis哨兵
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (理论篇)httpmoudle和httphandler一览
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • .pyc文件是什么?
  • ::前边啥也没有
  • [ NOI 2001 ] 食物链
  • [100天算法】-x 的平方根(day 61)
  • [AIGC] Java 和 Kotlin 的区别
  • [CERC2017]Cumulative Code
  • [Excel VBA]单元格区域引用方式的小结