转眼间,便来到了实习的尾端。在这四个月的实习中,我的收益可不是一点点!我总结为三点:技术上的收获,思维上的收获以及经验上的收获
一:技术上
技术上首先对IO流的了解更加透彻了。因为在做api鉴权,对请求体的body签名时,需要拿到对应的流对象,为了解决流对象只能使用一次的问题,我去深入了解了IO流(流的底层其实就是一个数组,然后读的时候有一个标记位标记读到哪个位置了,因此流理论上来讲只能读一次),并想到了两个解决方案:重设流标记位以及包装request的输入流。其次,api鉴权使用的是数据签名的方式,因此我去了解了对称加密,非对称加密以及数字证书等安全方案。然后也去了解了并行流技术,通过并行流来提升询价效率。最后还有了一个邮件服务,因此也掌握了邮件组件的技术,包括发纯文本邮件,内嵌图片以及富文本邮件等
二:经验上
本次实习,技术上的收获并不算很多,但是经验上收获却是非常多的,其中包括关于接口版本升级的处理(考虑兼容性,大版本升级与小版本升级的处理方案),资源型的东西的处理方案(存进一个可动态获取操作的地方,如数据库),git的规范操作,api的鉴权方案,SpringBean与new对象的注入,数据仓库的etl处理以及dolphin作业调度,Mysql的存储方式(纵向存储元数据来提供动态功能以及通过存储json字符串的方式直接存一个对象),有关接口设计的规范(请求方法的选择,接口地址的命名,参数的设计),工厂模式,枚举等实际应用,方法函数以及类,表的设计(接口方法需要是可测试的,静态类的使用,UML图,实体图等)。不同系统之间,语言之间的调用(python调用shell命令)以及通过拼接sql来实现数据数据动态查询功能(数据库存sql模板,然后使用一个编码对应,然后接口只需要传一个编码,就可以拿到对应查询的sql模板,再通过从body传入的请求参数结合sql模板,拼接出sql,参数替换,执行即可得到对应的数据,从而实现了类似增加一个查询接口的功能),通过kenkins来构建部署项目。
三:思维上
其实思维上有什么收获本人是很难体会到的,但是我深刻体会到了可以通过流程图来锻炼思维,尤其是复杂的业务。
简而言之,本次实习中,技术上的沉淀并不算特别突出,但是积累到了非常非常多的经验。从设计到开发到测试到部署的经验都有了自己的心得体会
附:
1.多在设计方面下功夫,多画图,UML类图,实体图,流程图等,多看模块与模块之间的交互,协同,不要仅仅是做开发,写代码
2.做事的时候要去思考,不要别人说一句做一句,要精益求精,要思考,甚至比最初的要求还要好
3.一开始要横向发展,尽量涉猎多一点知识,拓展知识面,但是自己的专业知识一定要够硬,比所有人都强,即T型发展
4.不要总是坐在那里,获取陷入自己的思维里面,要多走一走,多看一看,说不定灵感就来了
5.要培养工程化思维,从工程,整体的角度去看问题
6.总结收获时,可以从眼界上,技术上,思维上各个方面去做总结
7.可以多去大厂的技术团队发的文章去看看,去开源的issue看看,加入开源社区讨论讨论
8.多总结,多沉淀:不总结的工作只是工作经历,只有总结过后才是属于自己的工作经验。看书,做事,总结!
9.身为程序开发人员,核心竞争力除了技术,还应该有抽象能力。抽象能力是需求分析的基础。另外作为一个工程师,必须有工程式思维
=====================================================================
最后:附上后端技术交流圈,欢迎各位大佬入圈交流技术......V:ff1341658(先添加好友后拉群,添加好友时请备注:小白不黑)