1、工作及结果
参与了骑行供应链备件二期的项目。
备件二期主要的目的有两个:
1、为了保证各个维修仓备件运转正常,避免在整车维修过程中出现备件缺货到场景,需要在各个维修仓中对备件进行提前备货。综合考虑各个维修仓的需求数量以及DC仓的供应数量,通过建立供需平衡关系制定备件调拨计划,满足维修仓提前备货的需求。
2、完成备件缺货预警。库存预警的含义是指设置一个库存警戒线(安全库存),当仓库实际库存低于仓库警戒线的时候,通过预警提醒业务方需要及时补货。
对于维修仓:业务上指定维修仓【常备库存数量】,当维修仓库存现有量+调拨在途量,小于【常备库存数量】,提示维修仓缺货。
对于DC仓:业务上指定DC仓【安全库存数量】,当DC仓库存现有量,小于【安全库存数量】,提示DC仓缺货。
项目流程步骤:
1、商分的同学预测出维修的车辆数量,并且上传供应链系统。
2、供应链工作的同学输入基础数据以及计划参数配置,这些参数都是主数据的一部分,用于计算备件调拨计划。
3、跑crane定时任务生成调拨数量。
4、一线的DC仓运营同学查看备件调拨计划,结合实际情况,调整调拨数量。
5、供应链系统人员查看DC运营同学调整的数量,再次确认。
6、供应链系统人员选择需要调拨单的计划行,调用WMS接口创建调拨单。
7、进入Wms备件调拨流程。
我负责的部分:
在项目的开发中,我负责了九个接口的开发,其中主数据两个,计划四个接口。
1、主数据部分中的业务线参数配置,我负责了业务线参数配置的获取接口和更改接口。美团骑行有单车和电单车两条业务线。业务线参数配置主要作为基础参数输入,用于跑crane定时任务生成备件调拨数量。上线之后供应链系统人员可以输入对应的业务线参数,也可以更改对应的业务线参数。获取业务线参数的接口还要给开发crane定时任务的同学使用。
2、计划部分负责了运营人员修改调拨数量接口,可以单个修改,也可上传excel表格进行批量修改。即运营的同学在查看定时任务生成的备件调拨计划后,根据实际情况,修改调拨数量。每一条备件调拨计划都对应独一无二的业务字段unique_id,通过此id找到对应的记录并且可修改备件调拨数量。
3、供应链确认接口,可以单个确认,也可以上传excel表格进行批量确认。即在运营人员确认之后,供应链系统人员再次确认调拨的数量是否合理,如果不合理可以修改。
4、例外规则获取,增加,删除接口。对于某些维修仓库并不适合某些物料,比如说维修仓a,建议调拨某种物料的数量为70,但是存在例外规则,实际调拨的时候数量为0。
工作中遇到的问题:
1、在开发初期一筹莫展,对项目架构也不熟悉,不知道该怎么写代码。
2、之前git,调试,单测都用得少,尤其是git,一开始用得很难受。
3、在开发中对数据表和变量的命名有时候会遇到困难,有时候取名不当。
解决方法和结果:
在同事和mentor的帮助下,慢慢熟悉了各种开发工具。一开始是先参考前辈们写的代码,看他们的代码逻辑,然后进行模仿,遇到不懂的地方虚心和同事交流,遇到阻塞的地方及时和mentor和主r的同事沟通,让他们帮助我解决问题。写完代码之后先进行自测,然后让mentor进行review,然后在merge到主分支。
2、项目中的收获
通过两个月的实习经历,有以下收获的感想:
1、学会了美团一些内部工具的使用,比如git,rds,ones。
2、熟悉了整套开发流程。从自己设计接口文档和数据库表,到实现,到开发完成之后,用junit进行自测,自测完成后配置网关用postman再进行测试,再和前端同学进行联调。
3、了解了spring boot + MyBaits + thrift 的开发框架。即在client中定义request(请求参数)和respond(返回结果参数),定义dto(个人理解dto是展示给前端的字段),同时定义thrift层,即rpc接口。在server中定义实现数据库记录对应的实体类,用MyBaits进行对数据库的操作。项目中使用了分层的思想,即在开发中,先在server中定义和实现mapper层,这一层是对数据库进行操作,然后定义和实现service层,在此层对业务逻辑进行处理,然后实现client定义的thrift层,此层对request进行参数校验,调用service层处理业务逻辑,最后返回结果。
4、认识了自己的不足和明确了以后的学习方向。对Java上要学习更高级的主题,比如多线程,缓存,消息队列,分布式框架。
5、意识到了自己在没开发之前写的代码是非常不符合规范的,意识到自己在代码规范上要继续下苦功。
6、学会了如何多人协同开发,同时提高了自己的沟通能力。
3、未来发展和规划
短期目标:作为一个转语言的同学,我的Java水平肯定不如把Java作为主要语言的同学。我认为的短期目标应该是要继续巩固Java基础。
长期目标:从长远来讲,一个优秀的工程师不应该仅仅是编程技术水平的高,还有其他很多方面的素质,比如沟通能力,写作能力,和同事之前协同开发的能力,综上这些能力,就所谓的基本功。通俗的说,我认为长远的目标就是要打好基本功,全方面提升自身的素养。比如下,从技术来说,目标是成为一名架构师,那就该去阅读专业的书籍,了解大型网站的架构演变和发展,学习分布式系统相关的知识,因为大型的网站必然是分布式部署,应该去了解对应的分布式协议算法,比如raft。从提高软实力的目标上说,阅读一些书籍,比如《金字塔原理》,《提问的艺术》,提升自身软实力。