Java服务端开发实习总结

Java服务端开发实习总结

实习期内的业绩

  1. 负责管理后台账务综合查询模块的设计与开发,将用户账务相关操作日志落库,并提供脱敏数据查询页面,解放技术排查压力,提高账务相关客诉问题解决效率。
  2. 业务聚合层服务透传。
  3. 信审结果推送接口幂等性设计。
  4. Controller 切面 API埋点数据增加扩展字段applyID。
  5. 多次版本迭代需求服务端开发,包括温行联名卡现金分期功能、账单刷新流程改造、运营商校验功能修复、单位电话格式兼容等。
  6. 升级base,中间件版本(base, mysql, redis, tmc等,关注对task中平滑发布rabbit的解决)。
  7. 联名卡统一壳内代码逻辑判断,职业类别修改。
  8. 跳过运营商&通讯录用户判断接口变更。
  9. 面签开机启动屏后台管理系统开发。

实习期内的充电

  1. 学习了联名卡业务的相关知识,包括系统架构、申卡流程、账单相关管理流程等。
  2. 编码规范的学与遵守。
  3. 学习了编写单元测试的方式手段。
  4. 学习了合理处理各类异常的方法。
  5. TMC事务消息中心使用与设计理念学习。
  6. 学习了前端框架Vue,并使用Titan搭建了后台查账模块UI。
  7. 进一步加强了微服务和分布式等相关知识的理解,更加深入的学习了其原理。
  8. 学习了内部开发相关各类系统的联合使用,包括Ares、Jira、Wiki、Apollo、Kibana、Hades等。

未来业务 + 学习目标

  1. 未来业务:
    • 进一步增强相关业务能力,不断学习与复盘,提高开发效率、降低失误率。
    • 跟进联名卡、虚拟卡等相关业务的了解。
  2. 学习目标
    • 进一步学习与深入理解分布式服务治理相关知识,提高技术认知层次。
    • 熟练掌握消息中间件、缓存、数据库等组件的使用,从本质上深入理解其原理与思想。
    • 了解与学习其他相关知识体系,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

实习总结

  1. 经过推送信审结果至银行需求的开发, 具备了处理高并发场景的业务代码的经验, 且对事务消息机制能够进行合理的应用。
  2. 经过账单后台管理系统的研发, 具备了一定设计数据库和业务流程的实战能力, 并且对前端框架 Vue 也有熟悉和使用。
  3. 实习期近四个月的高压需求迭代研发, 使得本人编程风格得到进一步打磨和精进, 并具备一定排查定位并解决线上问题的能力。

你可能感兴趣的:(Java面经,Java校招笔经面经)