第六周个人周报-197241-刘相宏

2601_95542422 2026-05-11 18:14:30

一、本周工作内容

1. 任务提醒与通知系统实现

  • 截止时间提醒:基于Redis实现了任务截止时间的定时扫描机制,支持提前15分钟、1小时、1天进行预警。

  • 站内信系统:开发了系统内部的消息通知中心,用户可在页面右上角查看未读提醒。

  • 重复任务逻辑:完成了按日、周、月周期的重复任务生成逻辑,支持无限循环与设定终止日期。

2. 数据分析与可视化

  • 统计看板开发:开发了个人数据统计页面,展示本周/本月完成任务数、专注时长等关键指标。

  • 图表集成:引入ECharts库,实现了“任务状态分布饼图”和“每日生产力趋势折线图”。

  • 时间分布分析:根据任务起止时间,分析用户的高频工作时段,并给出效率建议。

3. 用户体验优化(UX/UI)

  • 快捷键支持:新增键盘快捷键(如Ctrl + N新建任务,Esc关闭弹窗),提升高频操作效率。

  • 拖拽排序:实现了看板视图下的任务卡片拖拽排序功能,支持通过拖拽快速更改任务状态。

  • 主题切换:完成了深色模式(Dark Mode)的开发,并支持跟随系统自动切换。

二、技术实现细节

1. 通知服务架构

  • 采用生产者-消费者模型,由定时任务(Scheduler)生产消息,WebSocket服务消费并推送。

  • WebSocket连接使用JWT进行鉴权,确保消息推送的安全性。

2. 数据可视化

  • 封装通用的图表组件,通过传入不同的Option配置复用。

  • 后端提供聚合统计接口,一次性返回多种统计数据,减少HTTP请求次数。

3. 前端交互增强

  • 使用HTML5 Drag & Drop API实现拖拽功能,并通过requestAnimationFrame优化拖拽过程中的动画流畅度。

  • 主题切换通过CSS变量(Custom Properties)实现,避免页面闪烁(FART)。

三、遇到的问题与解决方案

1. 问题:WebSocket连接保活

  • 问题描述:长时间挂机后WebSocket连接断开,导致通知丢失。

  • 解决方案:实现心跳检测(Heartbeat)机制,每30秒发送一次Ping包;同时在前端监听onclose事件,实现断线自动重连。

2. 问题:重复任务的时间漂移

  • 问题描述:每月31号创建的按月任务,在非31号的月份无法生成。

  • 解决方案:优化日期计算逻辑,对于不存在的日期自动修正为当月最后一天(如1月31日的任务,在2月生成时自动调整为2月28/29日)。

3. 问题:大数据量图表卡顿

  • 问题描述:当任务数量超过500条时,折线图渲染出现明显卡顿。

  • 解决方案:后端增加数据采样(Sampling)逻辑,前端仅展示最近30天的详细数据,更早的数据按周/月聚合展示。

四、测试与验证

  • 压力测试:模拟100个并发用户持续操作,系统响应时间保持在200ms以内。

  • 通知测试:验证不同提醒规则下的触发准确性,确保无漏发或误发。

  • E2E测试:使用Playwright编写关键用户路径(User Journey)测试脚本,覆盖从登录到创建任务的完整流程。

五、下周工作计划

  1. 团队协作功能开发

    • 设计团队表结构与权限模型。

    • 实现团队成员邀请机制(链接邀请/邮箱邀请)。

    • 开发任务指派功能,支持将个人任务分配给团队成员。

  2. 评论与附件系统

    • 实现任务详情页的评论流功能。

    • 集成对象存储服务(OSS),实现文件上传、下载及预览。

  3. 项目收尾与文档

    • 编写API接口文档与使用说明书。

    • 修复已知的Bug,进行代码重构与清理。

六、本周工作成果

  • 核心增强功能(提醒、统计)全部上线。

  • 系统交互体验显著提升,支持个性化定制。

  • 系统稳定性增强,具备高并发处理能力。

...全文
19 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

259

社区成员

发帖
与我相关
我的任务
社区描述
CUG软件工程基础学习社区
团队开发软件工程敏捷流程 高校 湖北省·武汉市
社区管理员
  • EasonBeckham
  • Lucky_Limp
  • h6ldZywoo
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧