2018即将结束,一年转眼就过去了,不禁反问自己?年初的目标现在是否都实现了,或者因为某些因素又推到了明年,说真的今年算是很有意思的一年。
阿拉丁有着优秀的企业文化:务实 、创新、 和谐,它能够营造良好的企业环境,提高员工的文化素养和道德水准,对内能形成凝聚力、向心力和约束力。 是的,阿拉丁的小伙伴们个个都散发着热心、激情。
记得在电商做的第一个需求是618,当时需求已经开发完成,需要做的只是熟悉接口,然后对应下测试。可能是因为刚开始有点生涩,然后代码里面几乎零注释,自己就大概过了一遍接口。就是因为不仔细,导致之后联调的时候各种尴尬。虽然在预定时间坎坷上线了,但自己是不满意的。于是根据当时的情况把问题做了一次总结:
1,自身
A,业务不熟悉。没有完全去理解,去跟踪代码逻辑
B,后台配置不熟练。没有完全掌握后台营销管理,会场管理里面活动,商品,优惠券等配置
C,接口审查不够。由于接口链接相似,接口功能和返回字段基本一样,自己未能一个个排查。出现接口调用 错误的情况
2,外部
A,资源不足。线上或预发出现问题时,手中没有账号查看相关日志和数据,无法及时定位问题,(现在查看日志权限有了。但线上数据库查询权限已用邮件申请多次,迟迟没有回复)
B,接口混乱。代码中实现某个功能的接口出现多个,但未对接口作相关说明和注释,
C,代码逻辑不严谨且混乱。代码中逻辑判断不严谨,未对查询数据作非空判断,竟出现service层的bean为空的情况。代码混乱(不同接口对商品的月供,返利,免息规则处理不统一,主要体现在商品详情模板,和H5可视化模板,以及活动商品列表对商品信息的处理逻辑各不一样)
D,代码封装严重不足。同一功能的代码未做封装处理,有多份copy,导致该功能处理逻辑变动时要处理多份,当有的代码未及时变动时就出数据不一致,错乱等情况
E,Redis缓存问题。由于测试环境中商品的缓存信息没有按服务器区分,导致从缓存中取出的商品价格,月供,返利时时出错
有了这次总结,之后又做了反思,后面的需求慢慢的开始顺畅起来。七月大促、签到、可视化、助力免单等等。当然开发的路上并不总是一帆风顺的,因为代码不严谨导致线上问题甚至出现事故的教训是深刻的。8月底因为一条慢sql出现了一次签到的事故,导致app页面打不开,影响了当时业务和用户体验。12月因为代码不严谨导致助力订单重复生成,这都是代码不严谨导致,尽管问题定位后都很快修复了。事后自己在心里反思:为什么会犯这种低级的错误?以后如何避免该类似问题?反思过后,之后自己写的每一个接口,每一条sql都会在时间和频率方面做测试和考量,提测之前,代码的逻辑和健壮性都会进行审查。对个人而言,这其实就是在进步、在成长、在提升。当然提升并不仅仅是在教训中,日常生活中每天都在慢慢进步。
后台架构规划用springCloud后,开启了我对springCloud的探索。eureka, config, gateway, feign, ribbon等每个组件都对其有了一定的了解,特别是ribbon对其原理进行了研究。分享计划安排后,对Tomcat的运行原理进行了一番学习。周会听同事的分享也收益良多。为了分享出有意义的东西,花了大量的时间去掌握和理解java8的新特性,然后整理了三篇blog做了一次java8的分享。后面又对并发编程进行了一番理解,整理出一篇篇博客。
说到blog,我觉得写blog是一个非常好的习惯,它能够促进学习,想写出文章来,自然不是泛泛的了解就可以的,要理解了才能写得出来。这就促进了对某些领域的不断学习和思考。也能够记录收获,blog中,常常是记录下来都是瞬间的灵感,对事物的感悟,经过多日思考和实践的结果,对某个问题的解决方案等等,这些都是财富。要记录下来。 同时也可以反映成长, 写blog,可以反映出人的思考过程,而不仅仅是思考结果。对一个问题或领域,从不了解到了解,从了解到熟悉,从熟悉到精通。这纪录了一个人思考和解决问题的成长过程 。我将一直坚持、积累下去。
今年公司后端架构是一直在升级,springCloud的引用具有里程碑的意义。但似乎引用得有点激进,于是出现了一点小混乱,现在各服务模块提供的服务并没有严格的规定,封装的服务不具有通用性。当在activity服务中调用user服务的添加地址时,如果想得到该地址的id,还得需要修改user服务对应接口的返回值(原接口返回的data是null)。当在activity服务中调用thirdparty服务的短信接口时,还需要修改对应thirdparty服务对应接口的代码(原thirdparty服务中发送短信时,短信内容需要在thirdparty服务中编辑)。另外个个服务的功能没有单一,订单服务有用户服务的内容,用户服务有活动服务的内容,活动服务又有用户服务和订单服务的内容。如果一直这样,当各服务的代码膨胀后,维护起来将又是一个痛点。还有各服务中一些通用的需要被其他服务调用的接口应该整出一份具体的文档出来。这样查找起来会比较方便点,实在没必要一个一个服务去搜索看有没有可用的接口
对于明年,技术上大概的方向是sql和springcloud深入学习,算法和jvm探究。需求方面将会把活动进行到底,某一块业务做得多了,研究得深了,应该会成为这方面的专家的。
在阿拉丁这个和谐的大家庭中,我将继续保持自身的热情,形成更良好、高效的沟通。和小伙伴们一直笑着相处下去。