2025-03-15-恒生科技实习总结-干中学-out
前言
最近在投春招简历,在整理自己的实习经历,在恒生学到了软件开发的基本知识,后端开发,前端开发,部署,git协作,查bug都经历了。
综述
完成了一个c++基金管理系统项目的Java版本demo,后端功能就是原样改写,亮点在前端,使用AI和d3js的能力,完成了一些fancy的可视化表。
后端开发
springboot,mysql,redis 首先是基础知识:
- springboot的项目设计,分包,代码分层,代码规范。
- mysql的库表设计,dao操作的规范。
- redis相关,redis数据结构,pipeline,事务。
- 设计模式,装饰器,工厂
几个难点(其实难度不大,只是都是新知识)
- mysql和log:不重要的数据不要落数据库,走日志。比如用户的操作记录,函数执行过程中打印的为了复现bug的中间结果
- mysql和redis:热点数据用redis的hash对象缓存,免得大量请求打到数据库
- 数据库的能力是要压测的,压测完改数据库配置,并确定是否要集群
- 分布式操作:分布式锁redis multi watch exec,读锁可重入,写锁不可重入。修改数据库需要事务,service中的方法注释。分布式锁:redis pipeline提高效率,看门狗续期,eval执行lua脚本
- 流量控制:nginx负载均衡,redis+lua:限流器设计,令牌桶
前端开发
之前只写过html css js。公司要求用react或vue。 看了一堆框架,element,还有叫pure-vue啥的,ant design pro。最后选了vue,从零手搓。 原因是我的前端界面不复杂,而且vue可以先写在html页面上,所谓渐进式开发,先实现demo(一个大html),再组件化,SFC改造。
几个难点(同样的,难度不大,干中学)
- 路由设计: 利用vue router的懒加载,前置路由守卫,路由内处理等特性高效实现页面路由
- 页面状态持久化: 从vuex改写为pinia
git linux
- git、linux基本操作
