Java服务端开发实习总结
实习期内的业绩
- 负责管理后台账务综合查询模块的设计与开发,将用户账务相关操作日志落库,并提供脱敏数据查询页面,解放技术排查压力,提高账务相关客诉问题解决效率。
- 业务聚合层服务透传。
- 信审结果推送接口幂等性设计。
- Controller 切面 API埋点数据增加扩展字段applyID。
- 多次版本迭代需求服务端开发,包括温行联名卡现金分期功能、账单刷新流程改造、运营商校验功能修复、单位电话格式兼容等。
- 升级base,中间件版本(base, mysql, redis, tmc等,关注对task中平滑发布rabbit的解决)。
- 联名卡统一壳内代码逻辑判断,职业类别修改。
- 跳过运营商&通讯录用户判断接口变更。
- 面签开机启动屏后台管理系统开发。
实习期内的充电
- 学习了联名卡业务的相关知识,包括系统架构、申卡流程、账单相关管理流程等。
- 编码规范的学与遵守。
- 学习了编写单元测试的方式手段。
- 学习了合理处理各类异常的方法。
- TMC事务消息中心使用与设计理念学习。
- 学习了前端框架Vue,并使用Titan搭建了后台查账模块UI。
- 进一步加强了微服务和分布式等相关知识的理解,更加深入的学习了其原理。
- 学习了内部开发相关各类系统的联合使用,包括Ares、Jira、Wiki、Apollo、Kibana、Hades等。
未来业务 + 学习目标
- 未来业务:
- 进一步增强相关业务能力,不断学习与复盘,提高开发效率、降低失误率。
- 跟进联名卡、虚拟卡等相关业务的了解。
- 学习目标
- 进一步学习与深入理解分布式服务治理相关知识,提高技术认知层次。
- 熟练掌握消息中间件、缓存、数据库等组件的使用,从本质上深入理解其原理与思想。
- 了解与学习其他相关知识体系,Zuul/Janus(统一网关)、Kibana(ELK)、Jenkins(持续集成)、Sonar(代码质量管理)、Pinpoint(全链路跟踪)、KMS(加解密服务)等。
实习阶段成长
学习到的知识点
- 全局唯一ID: 交易码、短链发号机等
- 分布式锁: Redis setnx命令实现
- 幂等性校验: 多维度校验订单状态等
- TMC: 事务消息中心,发消息–>扣钱–>提交–>加钱的场景,ack机制
- RateLimter: guava包令牌桶限流
- ThreadPoolExecutor:线程池工具类
- LinkedBlockingQueue:接收到任务时,如果当前线程数小于核心线程数,则新建核心线程处理任务;如果当前线程数等于核心线程数,则进入队列等待
- TimeUnit: 线程睡眠包装类,增加可读性
- Semaphore: 信号量,控制并发数
- AOP: @Around在方法执行前后做一些工作,如埋点操作、权限校验等。 @Beore中对前端传输的数据解密
- Consul:内置了服务注册与发现框架、健康检查、Key/Value存储,不再需要依赖其他工具(比如ZooKeeper等)
- innodb 聚簇索引
遇到过的问题,如何解决的
- BigDecimal问题: 构造参数最好用String类型,之间的比较严禁使用equals,要用compareTo
- BeanUtils.copyProperties: 基于反射实现的一种浅拷贝,并不会检查原对象的属性是否为null
- Integer、Long等,不能用==,要用equals
- Date、Time这种,公司内部都会封装工具类
- 常量放在equals左边可避免NPE
实习总结
- 经过推送信审结果至银行需求的开发, 具备了处理高并发场景的业务代码的经验, 且对事务消息机制能够进行合理的应用。
- 经过账单后台管理系统的研发, 具备了一定设计数据库和业务流程的实战能力, 并且对前端框架 Vue 也有熟悉和使用。
- 实习期近四个月的高压需求迭代研发, 使得本人编程风格得到进一步打磨和精进, 并具备一定排查定位并解决线上问题的能力。
转载:https://blog.csdn.net/u012102104/article/details/81180225
查看评论