熬夜会秃头——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. 工作进度估计
| 任务总量 | 已完成工作量 | 剩余工作量 |
| 59 | 16 | 43 |
2、燃尽图

3. 工作总量变化

4. 项目最新进展


相关文章:
熬夜会秃头——beta冲刺Day2
这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云这个作业要求在哪里团队作业—beta冲刺事后诸葛亮-CSDN社区这个作业的目标记录beta冲刺Day2团队名称熬夜会秃头团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区 目录 一、团队成员会议总结 1、成员…...
【linux】信号——信号保存+信号处理
信号保存信号处理 1.信号保存1.1信号其他相关概念1.2信号在内核中的表示 2.信号处理2.1信号的捕捉流程2.2sigset_t2.3信号集操作函数2.4实操2.5捕捉信号的方法 3.可重入函数4.volatile5.SIGCHLD信号 自我名言:只有努力,才能追逐梦想,只有努力…...
雷军:我的程序人生路
今天有朋友发给我一篇我在20年前在BBS上写的帖子。那还是1996年,我们通过电话线拨号连接到西点BBS上飙帖子玩的年代。那是一个互联网混沌初开的年代,那是一个BBS和Email几乎主宰了全部互联网的年代,那是一个青春的理想和热血沸腾的年代。 我…...
Linux 磁盘分区处理
最近实施过程中遇到客户提供给我们的服务器操作系统和Docke容器环境都已经安装完成,但磁盘的分区没有进行整理好。磁盘总共270G,系统安装分配了60G,剩余未创建分配需要处理。由于分区情况每家不一样,但大致流程都是相同的…...
利用ogr2ogr从PostGIS中导出/导入Tab/Dxf/Geojson等格式数据
ogr2ogr Demo Command 先查看下当前gdal支持的全部格式,部分gdal版本可能不支持PostGIS。 如出现PostgreSQL表名支持。 #全部支持的格式 ogrinfo --formats | sort #AVCBin -vector- (rov): Arc/Info Binary Coverage #AVCE00 -vector- (rov): Arc/Info E00 (ASC…...
【深度优先】LeetCode1932:合并多棵二叉搜索树
作者推荐 动态规划LeetCode2552:优化了6版的1324模式 题目 给你 n 个 二叉搜索树的根节点 ,存储在数组 trees 中(下标从 0 开始),对应 n 棵不同的二叉搜索树。trees 中的每棵二叉搜索树 最多有 3 个节点 ࿰…...
monorepo多项目管理主流实现方式:1.learn + yarn/npm workspace 2.pnpm
npm域级包 随着npm包越来越多,而且包名也只能是唯一的,如果一个名字被别人占了,那你就不能再使用这个名字;假设我想要开发一个utils包,但是张三已经发布了一个utils包,那我的包名就不能叫utils了ÿ…...
【斗罗二】暗杀霍雨浩行动,马小桃霸气回击,江楠楠首秀武魂兔兔
Hello,小伙伴们,我是拾荒君。 《斗罗大陆Ⅱ绝世唐门》第25集更新了!和小伙伴们一样,一更新,拾荒君就急不可待地观看这一集。故事情节高潮迭起,尤其是霍雨浩与王冬面对六名杀手的惊险场景,真是让人心跳加速…...
[ 蓝桥杯Web真题 ]-年度明星项目
目录 引入 介绍 准备 目标 效果 规定 思路 知识补充 解答参考 引入 hello,大家好!我注意到了之前发的一篇蓝桥杯Web应用开发的文章是关注度最高的,可能大部分关注我的小伙伴对蓝桥杯Web应用开发比较感兴趣,或者想要参加…...
Maven终端打包时报Unknown lifecycle phase “.test.skip=true“
错误实例代码 mvn clean package -Dmaven.test.skiptrue 再windows的cmd窗口进行项目打包,需要将参数用英文符号包裹起来“ ” 【正确的实例】:mvn clean package ’-Dmaven.test.skiptrue‘ PS D:\BaiduNetdiskDownload\qian\Springboot-Vue\bi…...
Linux MIPI 调试中常见的问题
一、概述 做嵌入式工作的小伙伴知道,有时候程序编写没有调试过程中费时,之间笔记里有 MIPI 摄像头驱动开发的过程,有需要的小伙伴可以参考:Linux RN6752 驱动编写。而我也是第一次琢磨 MIPI 协议,其中有很多不明白的地…...
使用极限网关助力 ES 集群无缝升级、迁移上/下云
在工作中大家可能会遇到以下这些场景: 自建 ES 集群需要平滑迁移到 XX 云;从 XX 云将 ES 集群迁移到自建机房;ES 集群进行跨版本升级,同时保留回退能力; 这些场景往往都还有个共同的需求:迁移过程要保证业…...
RedisTemplate的配置和讲解以及和StringRedisTemplate的区别
本文主要讲redisTempalte的几种常用的序列化方式 string,我们大部分情况下都希望存入redis的数据可读性强一些,并且value也不总是一个规则的类型,所以这里也是不用json序列化的原因,可以更自由方便,下边提供配置方法 …...
在oracle中的scn技术
SCN可以说是Oracle中一个很基础的部分,但同时它也是一个很重要的。它是系统中维持数据的一致性和顺序恢复的重要标志,是数据库非常重要的一种数据结构。 转载:深入剖析 - Oracle SCN机制详细解读 - 知乎 (zhihu.com)https://zhuanlan.zhihu.…...
LINUX 嵌入式C编程--信号编程
基本概念 信号是事件发生时对进程的通知机制,也可以把它称为软件中断。信号与硬件中断的相似之处在于能够打断程序当前执行的正常流程,其实是在软件层次上对中断机制的一种模拟。信号提供了一种处理异步事件的方法。 信号目的 **信号的目的是用来通信…...
Linux:优化原则
web系统的优化原则: 从单机到集群 对Linux系统自身的优化原则:...
HarmonyOs 4 (一) 认识HarmonyOs
目录 一 HarmonyOs 背景1.1 发展时间线1.2 背景分析1.2.1 新场景1.2.2 新挑战1.2.3 鸿蒙生态迎接挑战 二 HarmonyOS简介2.1 OpenHarmony2.2 HarmonyOS Connect2.3 HarmonyOS Next**2.4 ArkTS (重点掌握)****2.5 ArkUI** 三 鸿蒙生态应用核心技术理念**3.…...
System.out.println隐藏字符串
昨天开发的时候遇到一个坑,这个坑几乎浪费了我一整天时间,我甚至现在都不知道其原因。 开发环境 macOS Ventura 13.4 IntelliJ IDEA 2023.1.2 现象 我用java的各种httpclient获取网络上的一个文本文件,获取的文本文件的内容使用System.ou…...
Java中的线程池你了解多少?
🌈🌈🌈今天给大家分享的是Java标准库中的线程池,以及线程池的自定义实现。 清风的CSDN博客 🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,…...
leetCode 131.分割回文串 + 动态规划 + 回溯算法 + 优化 + 图解 + 笔记
我的往期文章: leetCode 647.回文子串 动态规划 优化空间 / 中心扩展法 双指针-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/133883091?spm1001.2014.3001.5501leetCode 131.分割回文串 回溯算法 图解 笔记-CSDN博客https://blog.csdn.n…...
A*、遗传、蚁群优化和元胞自动机四种经典算法实现四种场景下六边形网格路径规划,Python代码
基于六边形网格的路径规划算法摘要路径规划是机器人导航、智能交通和游戏AI等领域的核心问题。本期推文基于六边形网格结构,系统地对比了四种经典路径规划算法:A*算法、遗传算法、蚁群优化算法和元胞自动机算法。通过设计四组不同规模和复杂度的测试场景…...
3种方法彻底移除Windows Defender:释放系统性能,恢复完全控制权
3种方法彻底移除Windows Defender:释放系统性能,恢复完全控制权 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcod…...
DS4Windows:突破手柄限制,打造跨平台游戏控制体验
DS4Windows:突破手柄限制,打造跨平台游戏控制体验 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 在PC游戏世界中,手柄兼容性一直是玩家面临的主要障碍…...
Agent 不是玄学!前端只需要会做步骤可视化就够了
“AI 智能体”“思考链”“工具调用”—— 这些词听着就像 “AI 要统治世界”,是不是觉得离前端特别远?其实不然!对前端来说,Agent 就是 “一个会自己做任务的 AI”—— 比如 “让 AI 自动查天气、写周报、发邮件”,你…...
实战应用:基于快马ai为全栈项目快速构建集成wsl2开发环境
实战应用:基于快马AI为全栈项目快速构建集成WSL2开发环境 最近在准备一个全栈项目,需要同时开发Python Django后端和Vue.js前端。为了保持开发环境的一致性,我决定使用WSL2来搭建开发环境。下面记录下我的完整配置过程,希望能帮助…...
暗黑破坏神2存档修改终极指南:告别十六进制编辑,3步完成角色定制
暗黑破坏神2存档修改终极指南:告别十六进制编辑,3步完成角色定制 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor d2s-editor是一款专为《暗黑破坏神2》玩家设计的Web存档编辑器,通过直观的可视…...
Phi-4-mini-reasoning GPU算力极致利用:单卡并发16路推理压测报告
Phi-4-mini-reasoning GPU算力极致利用:单卡并发16路推理压测报告 1. 模型简介 Phi-4-mini-reasoning是一个轻量级开源模型,专注于高质量推理任务。作为Phi-4模型家族成员,它具备以下核心特点: 推理能力优化:基于合…...
Wan2.2-I2V-A14B镜像安全加固:禁用root登录+API密钥认证+访问白名单
Wan2.2-I2V-A14B镜像安全加固:禁用root登录API密钥认证访问白名单 1. 镜像安全加固的必要性 Wan2.2-I2V-A14B作为高性能文生视频模型,其私有部署镜像承载着重要的AI推理任务。在开放网络环境中运行时,系统安全防护不容忽视。未经加固的镜像…...
如何快速解决Places.js地址自动补全的5个常见错误:终极处理技巧指南
如何快速解决Places.js地址自动补全的5个常见错误:终极处理技巧指南 【免费下载链接】places :globe_with_meridians: Turn any into an address autocomplete 项目地址: https://gitcode.com/gh_mirrors/pl/places Places.js是一个强大的地址自动补全JavaS…...
Qwen2.5-VL-7B-Instruct新手必看:无需网络,纯本地部署的多模态AI工具
Qwen2.5-VL-7B-Instruct新手必看:无需网络,纯本地部署的多模态AI工具 你是不是经常遇到这样的场景:看到一张复杂的图表,想快速提取里面的数据;收到一张产品照片,需要生成详细的描述文案;或者想…...
