实习,别怕
作为一名刚实习的小萌新,入职到现在差不多也半个月了,准确来说已经不算小萌新了,而过去半个月的日子我似乎每一天都还记得。
#暑期实习#
作为实习生,第一天估计是最轻松的,装装环境,看看各种小手册,就算结束了,甚至还改不了趁机刷刷题的"坏习惯"。
不过从第二天开始,事情就变得不那么简单了,组长给我分派了一个需求,pc端用react,app端用自家封装的react native,然而那时我对RN的了解还停留在这是一个可以开发跨平台的框架上,当时感觉突然有点小紧张,因为需求不会因为我不会而延期,只能硬着头皮看代码查文档学习。
接下来两天麻烦的还并不是代码本身,我发现安装模拟器连接调试也有问题,甚至不知道该怎样在模拟器上连接到服务,好在旁边热心小伙有问必答,帮着我一起让app在模拟器上跑起来了。
好了,可以开始认真研究业务逻辑了,再次傻眼,之前没用过ts,只是简单了解了下,且之前我以为比较复杂的项目突然一对比,之前的就是个toy罢了,之前一个组件十多个属性我觉得算比较多了,到这发现十多个属性就是小意思啦,代码没有给任何注释,完全凭借命名来猜测到底是啥意思,以至于出现了和后端联调的时候发现对某个属性字段理解不一致的情况(我觉得此处真的让新手很难,文档都没)。
慢慢理清了逻辑,需要开始动手实现需求了,其实需求并不复杂,搞了三天,期间还和产品不断确认我不清楚的地方,差不多就结束了开发时间,由于后端人手不够,甚至我还多了两天自测的时间(按理说自测应该算在开发排期里,这次纯粹是意外)。
自测的过程其实也算是学习的过程吧,之前在学校只从理论上了解过黑盒白盒测试,什么逻辑覆盖、条件覆盖之类的也停留在完成作业题的程度。而这次真正要到自己来写自测用例的时候才体会到理论联系实际,测试除了覆盖所有分支外,对null等边界也要进行测试,而这恰恰是之前自己写项目欠缺的(功能实现就完事,最多做做重渲染优化,完全不管测试),至于为什么要自测严格一点,主要还是如果提测有bug会提高团队千行bug率。
再接着就是联调了,之前都是自己写前后端,本地运行,完全不存在联调的问题,现在联调需要把包先进行发布,然后通过后端提供的泳道进行,说实话我之前连泳道环境都不知道,还是去问了同事告诉我的。后端是一个非常友善的小伙,工作应该有好些年头了,他发现我对流程不熟悉(比如让我去trace一下请求,我也不知道还有个trace系统,怎么查也不知),他耐心操作了一下让我看,联调的时候要创建测试用例,也是后端小哥那边演示给我看如何真机下单接单进行测试,后来聊天小哥问我之前公司,我说我还在实习,小哥鼓励我说虽然刚开始很懵,但是成长一定也会很多,真的谢谢这位非常友好的后端小哥。
复盘自己实习的过程,总是有新的东西出现让我去学,比如各种工具,比如RN、redux-saga等,虽然刚开始总是觉得压力很大,但慢慢熟悉了又觉得其实还好,代码评审的同事们也对我很好,400行代码提了几十个修改意见,主要是代码命名规范、if else嵌套优化,以及让我不要轻易自己造轮子,找已有的经过测试的包来用。也给我的代码编写习惯提了许多他们的建议和为什么这么改的看法,真的很感激。
实习,真的不用怕,我现在也慢慢理解了,要我实习啥都会了我也不用来实习了,但是不能借此摆烂,成长总要伴随痛苦,痛苦过后,我也能对自己说一句,这个我懂了!