跳至主要內容

个人简历

张楚鑫大约 6 分钟自我介绍专业技能项目经验

个人信息

  • 姓名:张楚鑫
  • 电话:18738332177
  • 邮箱:zhangchuxin0213@163.com
  • 毕业时间:25年3月
  • Github:https://github.com/zcx-0213
  • 开源项目:vo2dtoopen in new window - 抽奖系统

毕业院校

  • 天津理工大学 (ESI全球排名前1%) 2022年09月 - 2025年03月
  • 软件工程 硕士

专业技能

  • 熟悉常见的数据结构和算法,如栈、队列、哈希表、二分查找、快速排序等
  • 熟练掌握 Java 设计模式,如工厂、代理、组合、策略等设计模式,并善用设计原则构建可复用代码。
  • 熟练使用 IDEA、Eclipse、Visual Studio Code、Navicat、PostMan、Git、Maven、SVN 等开发工具。
  • 具备扎实的Java语言基础,熟练使用Java常用集合,熟悉JUC并发编程;
  • 熟练掌握Redis的基本数据结构与使用场景,熟悉缓存一致性,了解缓存穿透、缓存击穿、缓存雪崩及其解决方案;
  • 深入理解 Spring Boot,Spring Cloud 等微服务框架的设计原理及底层架构,熟悉各种微服务架构设计比如服务注册与发现,服务降级,限流,熔断,服务网关路由设计,服务安全认证架构。
  • 熟悉 Dubbo、Zookeeper 等分布式服务协调与治理等技术。
  • 熟练掌握 MySql,掌握 MySQL 主从同步,读写分离技术以及集群的搭建,具备一定的 SQL 调优能力。
  • 深入理解 Redis 线程模型,熟练掌握 Redis 的核心数据结构的使用场景,熟悉各种缓存高并发的使用场景,比如缓存雪崩,缓存穿透等。
  • 熟练掌握分布式场景中的常见的技术问题及解决,比如分布式锁,分布式事务,分布式 session,分布式任务调度。
  • 熟悉 RabbitMQ、Kafka 等常用的消息中间件进行消息的异步数据处理。
  • 熟悉 docker 常用命令,能够实现基于 docker+Jenkins 实现自动化部署
  • 掌握 Linux 常用命令,了解 Nginx 服务器的反向代理、负载均衡、动静分离等。
  • 熟练运用 DDD 四层架构领域驱动设计,构建出易于迭代和维护的工程架构,遵守整洁代码、洋葱架构设计思想。

项目经验

1. 分布式抽奖激励系统-幸运大转盘

  • 系统架构:以DDD领域驱动设计开发、微服务拆分的分布式系统架构
  • 核心技术:SpringBoot、MyBatis、MySQL、Redis、Dubbo、Kafka、DB-Router
  • 项目描述:该项目是我参考字节掘金中幸运抽奖模块开发的一个幸运大转盘抽奖系统。抽奖系统是营销平台的重要微服务之一,系统使用DDD架构,拆解服务边界,凝练领域服务功能,实现一定的服务治理。围绕抽奖服务建设领域服务,包括抽奖策略、活动玩法、奖品发放等。来满足业务产品快速迭代上线的诉求,减少研发持续投入成本,提高交付效率。为了实现代码的高内聚和低耦合,运用大量的设计模式,比如:模版模式,责任链模式,组合模式,工厂模式。
  • 核心职责:
    • 该系统运用 DDD 分层结构的处理方式,搭建整个抽奖系统架构。
    • 为了提高用户体验,对于抽奖算法,将对应概率的奖品提前映射到数组中,时间复杂度为O(1)。
    • 为了实现为了实现代码的高聚态和低耦合,使用责任链模式过滤抽奖前的规则;运用组合模式设计简单的规则引擎,不采用传统的简单的逻辑判断,运用决策树设计做抽奖中后的处理。
    • 运用模板模式定义抽奖过程标准,将抽奖前、抽奖中、抽奖后以及整个抽奖流程整合在一起,提高代码可维护性。运用状态模式定义活动的不同状态并实现状态之间的合理切换。
    • 为了减轻数据库的压力,对奖品库存的扣减使用延时队列进行流量消峰。
    • 基于BASE理论,使用RabbitMQ实现商品库存的最终一致性。
    • 考虑到秒杀峰值TPS较高的需求,实现了一个简单的数据库路由的SpringBoot Starter组件,可以满足对于指定字段的路由到对应的数据库进行操作。
    • 使用kafka对抽奖和发奖流程进行解耦,避免用户抽奖之后,长时间等待结果,使用xxl-job对异常消息进行逻辑补偿,以保证消息消费的可靠性。
    • 使用Docker将项目推送到远端DockerHub上,在云服务器上拉去DockerHub上的镜像完成部署。

2. OpenAI 应用服务 - 辅助工作提效工具开发

  • 项目架构:微服务架构设计,OpenAI-SDK 多模型组件【ChatGLM、ChatGPT】、DDD 应用服务API封装
  • 核心技术:SpringBoot、MyBatis、Redis/Guava、OKHttp3、OpenAI 大模型【可对接ChatGLM、腾讯混元等】
  • 项目描述:此项目以应用OpenAI技术,对接多种大模型提供生成式服务,为XXX场景提效。项目的架构设计实现以微服务进行拆分,涵盖;OpenAI-SDK、OpenAI-API、公众号鉴权】等。并以模块化设计,积木式构建应用,让不同的场景诉求都可以配置化对接。
  • 核心职责:
    • 首先这是我做的第一个OpenAI项目,后续势必会有更多的场景以不同的方式接入。包括 SDK 独立接入、API 接口接入、MQ 消息接入,以及使用提供好的服务类接入。所以在这部分设计的时候,我采用了微服务的架构设计,按照职责边界进行拆分设计。
    • 采用 DDD 架构 API,以及便于不同领域模块的独立设计,一个领域就是一个功能域。在功能域中提供模型、仓储、事件、服务。这样可以更好扩展。
    • 鉴于生成式服务的文本生成可能会有不可靠信息,所以对这部分内容添加了敏感词的过滤。并可根据不同场景选择不同范围的敏感词处理。
    • OpenAI 大模型有多种,这部分在架构上设计独立的 SDK,在实现上采用了 Session 会话模型进行处理,以及通过工厂处理服务。在细节对上,采用了 OKHttp3 框架完成模型对接,这样的方式更好扩展,代码也更易于维护。
    • 在整套工程的设计实现中,采用了较多的分治、抽象的思想和设计模式和设计原则知识的运用,来解决各类场景问题。