个人信息
- 刘嘉禾 | 本科 | 广州大学 | 软件工程 & 应用心理学(二专)| 毕业时间:2018.06
- 微信号:pismery001 | Email:pismery@163.com | 个人博客:https://pismery.gitee.io/blog/
- 求职岗位:Java 高级工程师 | 项目经验:4 年
技能清单
- 掌握 Java 核心知识,具备良好的面向对象的编程思想,在项目中熟练使用各种设计模式;
- 掌握 Java 集合操作,并阅读过 HashMap 源码;
- 熟悉 JVM,对 JVM 的内存结构,内存模型,垃圾回收算法有深入了解;
- 熟悉 Java 并发编程,对 Java 锁机制,线程池,AQS,并发工具类等都有深入理解,并在项目中熟练使用;
- 熟悉 Spring MVC,Spring Boot,Mybatis 等常用框架,可以根据需求快速搭建项目,并阅读过相关源码;
- 熟悉 SQL 与 MySQL 数据库优化,对事务,B+ 树,索引优化有深入理解,并实践过线上业务调优;
- 熟悉 Redis,对缓存击穿,缓存穿透,高可用机制,哨兵机制有深入了解;
- 熟悉 Kafka,在高吞吐下保证消息不丢,消息消费顺序性,有实际项目经验;
- 熟练搭建 Redis, ElasticSearch, Kafka, Flink, ZooKeeper 等高可用集群环境,有运维生产环境经验;
工作经历
坤湛科技有限公司(2021年5月 ~ 至今)
工作内容
- 参与智慧城市项目交付,主要负责健康,工地,文旅等后台管理模块的设计与代码实现;
- 参与共享服务管理平台项目交付,主要负责拓扑,链路,监控,统计等模块的设计与代码实现;
- 参与具体交付项目过程中,通过梳理和抽象,沉淀通用能力至公司技术平台中;
友邦资讯科技(广州)有限公司 ( 2018 年 1 月 ~ 2021年4月)
工作内容
- 负责旧系统迁移下线,相关的功能代码实现,迁移文档攥写,组织迁移演练;
- 负责核心团险系统二期功能的模块设计与代码实现;
- 负责再保险模块的需求分析,模块设计,代码实现与维护;
- 负责新系统框架可行性及性能验证;
项目经历
智慧城市(2021-12 ~ 至今)
技术选型:Spring Boot + Hibernate + MySQL + Nacos + Dubbo + XXL-Job + RocketMQ
工作职责:负责功能模块详细设计和开发工作;
- 健康服务模块:实现与设计后台管理的界面和接口,优化预约疫苗功支撑用户高并发预约场景,实现各机构预约数据隔离功能;
- 智慧工地管理模块:两周时间,独立完成模块从零到上线生产,涉及前端界面搭建,后端接口实现,设置构建计划,系统对接;
- 裕见美好模块:突出展示裕华区各个景点场景、文化艺术、游玩路线、点评评论等内容
- 负责模块的详细设计,包括整个系统的库表设计,评论与点赞设计;
- 负责后台管理的界面搭建及后台接口实现;
- 负责 app 端的接口设计与实现;
共享服务管理平台(2021.05 ~ 2021-11)
技术选型:Spring Boot + Hibernate + MySQL + ElasticSearch + Zipkin + Kafka + Logstash + Sentinel + Nacos + ShardingSphere + Flyway + Flink;
工作职责:作为平台核心开发,主要负责下述模块,具体内容如下
- 服务拓扑模块
- 新增节点标识再通过策略和工厂模式,解耦各类节点处理逻辑;
- 服务拓扑相似度对比展示,标识出两个相似的服务拓扑图的不同节点,计算相似度;
- 服务拓扑查询改造,从只能基于根节点的查询改造为基于任意节点的查询;
- 工作台及监控模块
- 优化指标统计接口,通过线程池及 CountDownLatch 工具类多线程统计聚合结果;
- 梳理链路数据流,统一工作台统计口径;
- 监控界面优化改造,解决数据列表元素超过 2000 界面卡死问题;
- 链路日志模块
- 统一调用异常数据处理逻辑,确保链路日志与监控数据吻合;
- 移除非法链路信息,心跳链路信息;
- 报表导出模块: 设计并实现导出 Excel, Word, HTML, PDF, BPMN 的工具类;对外提供一致的调用方式,内部采用 XDocReport ,EasyExcel ,Activiti 框架实现导出功能;
- 项目运维: 负责共享服务管理平台的测试,仿真,生产环境的运维工作;
GPSE 系统下线迁移 (2020.04 ~ 2020.9)
- 功能需求:下线旧系统 GPSE,将旧系统功能集成至新团险系统中;
- 个人职责:
- 迁移每日批处理,梳理所有报表生成逻辑,通过实现报表生成方式可配置化,最大化减少系统改动且避免旧报表与原报表的冲突;
- 迁移账单处理模块,梳理旧系统导入每日账单逻辑,实现根据旧系统文件录入新团险系统;
- 迁移流程控制系统,与流程控制团队确认接口规范与对接;
- 数据库初始化及数据迁移;
- 组织系统上线演练,编写系统上线流程文档;
团险系统二期 (2019.12 ~ 2020.03)
- 功能需求:根据用户需求,改造保单管理模块,账单管理模块,人员信息管理模块;
- 个人职责:
- 报表通知设置模块功能设计与开发;
- 数据脱敏模块功能设计与开发, 提供数据访问权限配置功能,将权限存储至 session 中,开发人员只需实现接口指定脱敏字段,不需关注脱敏规则及权限控制;
- 理赔模块功能设计与开发;
再保险结算 (2019.02 ~ 2019.11)
- 功能需求:整合改写再保险模块,实现报表参数级联配置的可视化与数据报表生成;
- 技术选型:Spring Core + Spring Web + Mybatis + JXLS + KendoUI + JQuery + SQL Server;
- 个人职责:
- 与泰国用户沟通整理需求,确认报表字段的业务含义和计算规则;
- 集成两个系统模块,将报表生成时间缩短至 3 分钟;
- 使用 KendoUI 和 Javascript 实现对参数的多维度批量联合修改 ;
框架可行性及性能验证(2018.09 ~ 2019.01)
- 功能需求:模拟产品功能搭建项目框架,验证框架可行性;
- 技术选型:Spring Boot + Spring Batch + Feign Client + PlantUML + SonarQube + Liquibase + Jenkins
- 个人职责:
- 项目采用 TDD 和 DDD 进行系统开发设计;
- 作为项目主要开发人员,共同参与 Code Review,过程中最大的收获是,代码封装与代码可阅读性需要权衡二者避免过度设计封装;Review 过程中重点关心代码命名规范,调用规范,对于不符合调用规范必须禁止,否则架构经过几次迭代会变得十分混乱,再重构得不偿失;
- 通过拆分大事务,重构获取锁顺序,解决多线程小概率死锁问题;
- 负责实现高扩展的验证功能,通过常用设计模式和重构技巧进行代码重构,最终解耦各类验证规则,使得新增或修改验证规则符合开闭原则,重构验证逻辑以减少验证过程中与数据库 SQL 的交互次数,重构过程采用 TDD 方式确保重构前后业务逻辑一致。运用 Closeable 接口解决开发人员忘记持久化最后的验证信息的问题;