(1) 熟悉Java 语⾔,熟练掌握各种Core Java技术栈,并且对并发编程、JVM等都有深
⼊的理解。
(2) 掌握Spring、Spring MVC、Hibernate、MyBatis、Spring boot等主流Java开发框
架。
(3)熟练使⽤MySQL,了解其核⼼原理,并有分库分表、性能调优、数据迁移等经
验。
(4) 熟悉Redis、RocketMQ、Zookeeper、Dubbo等常⽤中间件的使⽤及原理。
(5) 熟悉Clean Code原则,熟练掌握开发规范,并在项⽬中使⽤过各种设计模式。
(6) 熟练解决各种线上问题,有各类技术问题的排查及解决经验。
(7) 熟练使⽤Maven构建项⽬,Git、SVN版本控制⼯具
(8) 熟练使⽤Intellij idea等集成开发⼯具
项目一:酒店详情接口调优
详情接口调优主要包含了代码优化、缓存优化、监控优化等几个方面
1.代码优化:代码重构,删除SQLServer库代码;业务代码逻辑优化,增加代码可读性;异步数据查询调整;增加限流,控制外部 调用频率。使用策略模式+工厂模式对代码进行重构,解耦业务逻辑,降低维护成本
2.缓存优化:减少数据库的查询;调整缓存失效时间。通过redis缓存热点数据、MySQL查询优化
3.监控优化:接口P99耗时监控;外部接口耗时监控;数据库查询监控;多线程监控 。采用CompletableFuture实现异步编排,接口吞吐量提升300%。集成Grafana实现接口P99耗时监控,对外部依赖接口进行监控并及时告警
项目二:酒店数据库迁移
酒店订单根据业务类型分为协议订单和会员订单,分别在两个SQLServer库保存数据。为了可以降低开发维护成本和快速响应开 发,数据库合并数据保存在MySQL中。涉及过度方案,实现业务员系统无缝切换。
1.主导完成SQLServer到MySQL的数据库迁移,涉及100多张表转换
2.解决数据类型适配问题,例如:datetime->timestamp,nvarchar->varchar等数据类型兼容问题
3.重写TOP->LIMIT等150+处方言差异SQL,查询性能提升40%
4.搭建监控看板,追踪数据一致性指标
项目三:酒店业务线开发语言转换到java
酒店业务量大量增加,.net的开发人员较少,无法满足快速增长的需求量。项目架构使用的技术有Spring boot、DAL、Redis等。 数据库使用SQLServer保持不变。增量一些表做数据冗余,比如订单状态、支付状态、退款状态、供应商状态等,和订单基本信 息、酒店基本信息进行节藕。
1.参与调研整理酒店业务流程文档,着重部分业务公司的特有业务逻辑
2.参与搭建的项目,创单、预处理、供应商等核心模块的开发
3.设计灰度方案,以公司和订单纬度的进行灰度
4.增加监控和埋点
项目重新梳理后,后端可分为如下几个模块:数据整合、创单、预处理、供应商、后处理和管理系统等。其中数据整合主要包括:前端的查询、搜索等。创单模块是用户提交数据到酒店下单、用户大修改订单信息。预处理模块是同步酒店基本信息、同步并处理订单状态、处理支付状态。供应商模块是向酒店发单、同步
1.增加API接口,接口内部仅有对数据库的操作,减少和业务代码的耦合 2.公司的DAL框架通过配置可以实现数据双写,在灰度期间原项目代码可以最小程度的改动。 3.在API接口内部有数据对比,数据库字段的映射,监控埋点 4.主导项目的进度,核心开发