
伙伴匹配项目 笔记
伙伴匹配系统开发完啦~
项目地址:https://github.com/miyagipipi/paopao
体验地址:http://110.41.66.229:5173/user/login
首先说明一下,后端没有用java实现(因为不懂),所以改成熟悉的python来实现了。
这次最大的一个感受就是——为什么没有早点跟着鱼皮学习项目开发!
因为我之前的工作都是侧重业务的,就是每天都在做重复的工作,领导和对接的部门也不关心是如何实现的,只关心又快又好(2-3天做一个版本需求,需求对接-开发-测试都是自己做,要求零BUG。TOM!)。
现在已经裸辞了,上家公司的项目槽点太多了。
不过重业务的也有重业务的优点,比如我在看鱼皮开发时,一眼就能发现某些会导致体验上的错误,以及后续该如何优化。
简单说一下我收获了什么:
-
对很多理论技术有了实际体验,例如session、分布式锁、缓存等。
-
对之前用的技术栈有更深的理解,例如vue、sqlalchemy等。
-
学习到了后端的项目设计思路。
自己做的优化点:
前端:
-
增加了进入队伍功能,用户进入队伍后可以发布计划。
-
重构个人信息页面,展示 我创建的队伍 我加入的队伍。
-
用户信息编辑页面增加上传头像 编辑标签的功能。
-
增加用户注册、用户登出功能。
-
使用 pinia 管理用户相关信息。
-
使用 defineEmits emit 优化了用户点击队伍页面的按钮后,按钮状态不更新的问题。
-
将滚动加载技术应用到项目中,优化数据渲染和用户体验,将虚拟滚动应用到队伍页面,将无限滚行应用到用户页面。
-
使用vue作用域插槽 命名插槽,将标签编辑页面抽象成组件,方便用户编辑页面或其他地方引用。
后端:
-
使用 flask-restx 的 api-model 来控制请求和响应的数据格式,方便数据脱敏以及后续的需求变更。
-
使用 redis-zset 数据结构缓存匹配用户,分析并优化了初始匹配时的算法,10w条数据的计算时间从23秒降低到1.25秒。
-
优化最短编辑距离算法,使用 functools.cache 缓存递归函数的调用结果,避免重复计算,提高算法效率。
还有不少体验上的细节优化,就不展开说了。
欢迎想学习vue前端和python小伙伴一起交流。

