熬夜会秃头——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…...

【傻瓜级JS-DLL-WINCC-PLC交互】3.JS-DLL进行交互
思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…...

深度学习手势识别算法实现 - opencv python 计算机竞赛
文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习手势识别算法实现 - opencv python 该项目较为新颖…...

2023-12-01 AIGC-自动生成ppt的AI工具
摘要: 2023-12-01 AIGC-自动生成ppt-记录 自动生成ppt: BoardMix boardmix 一键生成ppt boardmix是一款基于云的ai设计软件,允许创建用于各种目的的自定义演示文稿、ai绘画,ai生成思维导图等。以下是它的一些功能: 可定制的模板 - 它有一个…...

NoSQL 数据建模错误会降低性能
数据建模错误是破坏性能的最简单方法之一。当您使用 NoSQL 时,特别容易搞砸,(讽刺的是)NoSQL 往往用于对性能最敏感的工作负载。NoSQL 数据建模最初可能看起来非常简单:只需对数据进行建模以适应应用程序的访问模式。但…...

在Android上搭建一个NDK项目
首先New Project,选择Native C,点击Next。 填入项目名称和包名,点击Next。 这里我们选择Cmake默认的C版本。 创建好的项目目录,里面比我们正常的Android项目多了一个cpp目录 打开MainActivity。里面定义了一个jni方法stringFromJN…...

TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析
TOP-K问题 TOP-K问题:即求数据结合中前K个最大的元素或者最小的元素,一般情况下数据量都比较大 比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等 对于Top-K问题,能想到的最简单直接的方式就是排序,但是…...

3、服务器性能剖析
性能优化简介 **我们将性能定义为完成某件任务所需要的时间度量,换句话说,性能即响应时间,这是一个非常重要的原则。**我们通过任务和时间而不是资源来测量性能。数据库服务器的目的是执行sql语句,所以他关注的任务是查询或者语句…...

xxl-job 分布式任务调度框架
文章目录 分布式任务调度XXL-Job 简介XXL-Job 环境搭建XXL-Job (源码说明)配置部署调度中心docker安装 Bean模式任务(方法形式)-入门案例任务详解任务详解-执行器任务详解-基础配置任务详解-调度配置任务详解-基础配置任务详解-阻塞处理策略任务详解-路由策略 路由策略路由策略…...

软件使用-stm32入门
这节主要是介绍大家使用两个软件。这两个软件也是比较常用的,里面也有很多有意思的功能,可以给大家介绍一下。 1. FlyMcu 软件 这个软件可以通过串口给 STM32 下载程序,如果你没有 STLINK,就可以用这个软件通过串口下载程序。 …...

使用MAT分析内存泄漏(mac)
前言 今天主要简单分享下Eclipse的Memory Analyzer在mac下的使用。 一、Mat(简称)干什么的? 就是分析java内存泄漏的工具。 二、使用步骤 1.下载 mac版的现在也分芯片,别下错了。我这里是M2芯片的,下载的Arch64的。 …...