Sam Lin

Sam Lin

2025-03-15-恒生科技实习总结-干中学-out

前言

最近在投春招简历,在整理自己的实习经历,在恒生学到了软件开发的基本知识,后端开发,前端开发,部署,git协作,查bug都经历了。

综述

完成了一个c++基金管理系统项目的Java版本demo,后端功能就是原样改写,亮点在前端,使用AI和d3js的能力,完成了一些fancy的可视化表。

后端开发

springboot,mysql,redis 首先是基础知识:

  1. springboot的项目设计,分包,代码分层,代码规范。
  2. mysql的库表设计,dao操作的规范。
  3. redis相关,redis数据结构,pipeline,事务。
  4. 设计模式,装饰器,工厂

几个难点(其实难度不大,只是都是新知识)

  1. mysql和log:不重要的数据不要落数据库,走日志。比如用户的操作记录,函数执行过程中打印的为了复现bug的中间结果
  2. mysql和redis:热点数据用redis的hash对象缓存,免得大量请求打到数据库
  3. 数据库的能力是要压测的,压测完改数据库配置,并确定是否要集群
  4. 分布式操作:分布式锁redis multi watch exec,读锁可重入,写锁不可重入。修改数据库需要事务,service中的方法注释。分布式锁:redis pipeline提高效率,看门狗续期,eval执行lua脚本
  5. 流量控制:nginx负载均衡,redis+lua:限流器设计,令牌桶

前端开发

之前只写过html css js。公司要求用react或vue。 看了一堆框架,element,还有叫pure-vue啥的,ant design pro。最后选了vue,从零手搓。 原因是我的前端界面不复杂,而且vue可以先写在html页面上,所谓渐进式开发,先实现demo(一个大html),再组件化,SFC改造。

几个难点(同样的,难度不大,干中学)

  1. 路由设计: 利用vue router的懒加载,前置路由守卫,路由内处理等特性高效实现页面路由
  2. 页面状态持久化: 从vuex改写为pinia

git linux

  1. git、linux基本操作