企业网站推广定义,公司已有网站 如何自己做推广,浮动定位网页设计作业,深圳注册公司多少钱这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云这个作业要求在哪里团队作业—beta冲刺事后诸葛亮-CSDN社区这个作业的目标记录beta冲刺Day2团队名称熬夜会秃头团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区 目录 一、团队成员会议总结
1、成员…
这个作业属于哪个课程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的使用了解了CacheableCachePutCacheEvict注解的作用与区别 李恒欣完善前后端接口交互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 #flag1, unless #resultnull)},put {CachePut(cacheNames fileCache,key #bucketId#fileName, condition #flag2, unless #resultnull)},evict {CacheEvict(cacheNames fileCache,key #bucketId#fileName, condition #flag3)}
)
public String getFile(String bucketId, String fileName,HttpServletResponse response, int flag) {String path FileProperty.realPath bucketId / fileName;MapString, 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 #flag1)},put {CachePut(cacheNames bucketCache,key #bucketId, condition #flag2)},evict {CacheEvict(cacheNames bucketCache,key #bucketId, condition #flag3)}
)
public MapString, Integer getFileSetByName(String bucketId, int flag) {return fileVersionScan(bucketId);
}Caching(cacheable {Cacheable(cacheNames bucketCache-cold,key #bucketId, condition #freshfalse)},put {CachePut(cacheNames bucketCache-cold,key #bucketId, condition #freshtrue)}
)
public MapString, Integer getColdFileSetByName(String bucketId, Boolean fresh) {return coldFileVersionScan(bucketId);
}
3、SCRUM会议照片 二、PM报告
1. 工作进度估计
任务总量已完成工作量剩余工作量591643
2、燃尽图 3. 工作总量变化 4. 项目最新进展