伙伴匹配项目 笔记

伙伴匹配系统总结

伙伴匹配系统应该算烂尾了,前面那些都还好了,问题出在优化的地方了。我想着实现好友以及聊天室等功能的,包括添加好友、同意好友、删除好友,私聊队伍聊大厅聊等等,这些是参考星球众多大佬的,包括但不限于 沙鱼、柒木 等大佬,这里就不一一列举了,总之非常感谢。

关于项目名,最开始我打算叫友缘的,但我看星球大佬们叫的聚友园,我就打算改成聚友缘了,这里也是借鉴各位大佬的了。

其实按照测试后端的接口来看,我应该也没什么大问题,应该算是优化成功了的。只是我尝试复用星球大佬的前端代码时,就出现各种问题了,而且因为有些字段名包括代码命名习惯上也各种不同,更主要的是我前端不会,导致我花了两天后除了把页面弄出来外,还有的就是大厅聊天了,别的啥也不是,因此我打算放弃这部分优化了,我觉得这不是我目前最具有性价比的事情。而且这次项目就不上线了,我觉得就这么个也没啥必要了,少点真实性就少点吧,我觉得完全吃透项目才是目前更具性价比的事情。

又因为仅仅优化后端接口,而且这部分实在太乱了,我也就没整理了,也就不发出来了,发出来的都是些自用的直播笔记,没什么价值,看星球其他大佬总结的也是一样的。

https://www.yuque.com/hsu4814/gg5tht?#https://wx.zsxq.com/mweb/views/weread/search.html?keyword=伙伴匹配系统》

下面的是一些这次的收获:

  1. 前端的一些应用(仅存在于笔记中)

  2. 数据库表的设计,扩展字段(用户表多加 tags 字段)、添加关联关系表(方便正查反查)

  3. 搜索标签的方式:SQL查询、内存查询的优劣及其应用场景(后面几十万百万数据时,SQL查询速度秒杀内存查询)

  4. JSON 序列化库 Gson 的使用

  5. Stream API 的使用,集合通过stream()转为流对象,再通过 filter() 过滤数据,再通过 map() 转为对象,再通过 collect() 收集在集合中。留意 stream() 和 parallelStream() 的区别

  6. 接口文档的作用,Swagger、Knife4j 的简单使用

  7. 简单爬虫

  8. EasyExcel,通过 Java 处理 Excel

  9. 写业务代码校验逻辑时,把需要查数据库的校验写后面一点,这样在前面逻辑有不符的情况时就能少查点数据库

  10. Session 共享后端分布式登录

  11. QuickRedis 的使用

  12. 这里可能不太算收获:将 User 的 id 从 Long 改为 long,可以避免频繁判空,但我感觉还好其实

  13. 批量插入数据:普通批量插入(5000 条 13s)、并发批量插入(100000 条 关闭日志后 39s)

  14. 分页查询,MyBatisPlus 配置

  15. 分布式缓存 Redis,自己配置 Redis 序列化器,不配置是用Java原生的,不好用。查询缓存后,从 1.26s 变为 20ms左右(除了第一次要 500ms)(前后都用到了分页查询)

  16. 缓存预热,定时任务,为了解决第一次加载要 500ms 的问题,现在第一次加载只需要 27ms

  17. 接触到了 cron 表达式

  18. 分布式锁。普通锁只能处理单个JVM进程内的锁,分布式系统的多个JVM就得分布式锁来解决线程安全问题

  19. Redisson客户端配置,缓存预热实现推荐用户

  20. dto,Data Transfer Object,不同层间传输数据。避免暴露敏感数据,也能简化接口。同理 request、vo(View Object)包装类也是同理,vo 是只传输只读数据,request 是封装请求参数。dto、vo 这部分其实我感觉区别不大,可能只是更好分类吧,网上文章也看不懂

  21. 事务注解,方便回滚

  22. 匹配算法,编辑距离算法,大数据推荐思想。取 TOP 数据,我这 30w 数据取10个,关闭日志耗时 2.7s

  23. 分布式锁解决重复入队问题

说完收获就说点值得反思的事情。这次项目优化不同于上次用户中心的,这次设计到很多我想实现的功能,都需要涉及到数据库表设计什么的,还有一些代码的大改,我觉得这些我需要在最开始就有点大概的想法,就说聊天室这个功能,鱼皮哥直播不说我真没想到,后端部分优化都还好了,最难的是前端。下一个是 API 开放平台,我觉得我在开始前就得看看这个课程计划,看看大概有什么,包括项目名也开始自己就想好,然后下次后端部分功能优化完后,前端代码就不套用大佬的了,要么就自己从0实现,要么就彻底放弃。

只是近期估计先不做项目了,这两天把简历写好后开投,然后就边投边学习测试和设计模式了,设计模式学完才会抽时间开始 API 项目了。我也不知道能不能找到实习,也只能听天由命了,有就去,没有就学技术了,看开点,什么能力匹配什么待遇,挺现实的事情,普通人一个,平平淡淡才是真。后续就是设计模式 测试 八股 算法 期末,八股和算法针对性复习了。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP