OpenTreeHole/treehole_next

Roadmap for v2.1

JingYiJun opened this issue · 1 comments

新功能

  • 权限管理
  • 消息存储
  • Floor 已修改字段
  • 站内信
  • 点赞点踩分离
  • 查看用户历史发言、回复
  • 锁定帖子,禁止回复
  • floor_favorite 添加 created_at 字段(收藏时间),支持根据 created_at 倒序返回结果
  • floor 任意楼高度查询

数据库优化

  • 联合索引优化 hole 查询性能
  • 合理添加 not null 优化索引性能
  • 添加 floor.ranking 存储窗口函数结果,提升查询性能

缓存优化

  • anonyname 缓存优化 (暂时不做)
  • 高回复数的 hole 的 floor 缓存优化 (暂时不做)
  • tag 缓存优化

其他优化

  • 手动 mention 解析

后端性能优化(长期)

  • 使用 pprof 查询性能瓶颈
  • 减少 reflect 使用
  • 引入对象池 sync.Pool 减少gc带来的内存抖动
  • Golang 1.20 之后引入 arena 手动管理内存

细节整理

  • tag.id 连续性问题
  • tag 个数和长度限制(10个)
  • tag 去除 created_at 和 updated_at 的 json serialization
  • 模型取消继承
  • floor 去除 storey 和 path 字段,添加 reply_to 字段。
  • floor 添加 ranking 字段和 (hole_id, ranking) 联合索引,提升查询性能。
  • hole 添加 first_floor_id 和 last_floor_id 字段,提升查询性能。 使用 (hole_id, ranking) 联合索引查询,减少一次连表查询。

更好的测试

  • 基于 GitHub Actions MySQL虚拟环境的集成测试
  • 更多的测试样例,可计算性的覆盖率测试

日志

  • ELK架构或者其他时序数据库的搭建(运维部分)
  • 管理员操作记录
  • 日活、月活
  • 用户的浏览记录、搜索记录

Bug修复

  • 点赞、取消点赞不返回 floor.mention

马上重构 v3,这个 close 了