了解这些开发流程,助力秋招
转眼已经实习了一个月了,要说成长,在技术方面肯定还是有不少体悟的,比如开发的规范编码,以及看同事的代码依葫芦画瓢实现功能等。
不过要说让我感触最深的,却并不是技术上,而是开发流程上的,而这些恰恰是我在实习之前所没有接触过的东西,而我也相信如果了解这些流程,一定会为秋招助力一把。
以我司的开发流程来讲,作为一名开发人员我们一般需要经历这么几个阶段,
1. 需求评审
需求评审是由产品提出,前端、后端、测试都会参与的一次会议,此会议主要是根据需求文档对需求进行说明,开发人员和测试人员会对需求进行确认,
说的有点概念化,举个例子,产品经理在需求文档上写了”商品需要按照区域进行排序“,作为开发人员我们看到这样的需求描述,或许就会想到确认几个点,比如区域是指什么区域,后端会给什么字段,排序方式是升序排序还是其他给定规则,这些都需要在编写代码之前确定好,否则编写的代码可能就产生非预期结果而被提bug。
2. 交互评审
作为前端开发人员,我们还会参加交互评审,此会议主要是和产品、设计方一起进行,对提出的视觉交互进行确认,查看是否有组件库不能支持的交互样式。
依然举个例子,最近开的一次交互评审讨论了一个时间快捷选择的组件,由于组件库并未提供这类快捷选择,因而需要在交互评审时进行确认,比如确认是否需要更改为已有的组件交互,还是可能会延长开发周期由开发人员进行开发,这类都需要和产品、设计方进行协调。
3. 技术方案评审
技术交互评审是主由后端发起的,产品、前端、测试人员参与的会议。此会议主要是确定业务流程、新增接口/字段等,由于前后端分离开发,后端会提供什么新接口、新字段对前端也非常重要,前端可以根据技术方案文档进行Mock数据自测。
4. 开发与自测
开发与自测比较熟悉了,这个应该是我们在校自己做项目时主要涉及的,不过我之前自己写项目也没怎么进行过自测,现在看来自测还是很有必要的(毕竟可以避免一些低级错误产生的bug),比如前端的话就常常是在页面上多点一下看看有没有与预期不同的地方,对于业务逻辑部分可以刻意制造一些边界、错误等条件的数据进行测试,比如某个值压根没从接口中拿到,或者拿到了null/undefined等。
5. 联调
该阶段在前后端开发完成之后。后端会把服务部署到服务器上,前端则可以用后端提供的接口进行测试,而不再使用mock数据,这样的测试可以更接近真实环境进行模拟。通常此阶段会采用泳道环境,如果不了解泳道环境的同学可以通过什么是泳道初步了解。
6. 代码评审
代码评审一般是由本组经验丰富的一位或者几位同事参与对自己编写的代码进行阅读,提出一些意见或修改建议等。比如我之前第一次参加代码评审,三位同事对我的代码进行阅读后提出了许多编码上的规范,例如变量名规范(见名知意)、是否使用了不必要的if/else语句、对于代码中的数字是否可以考虑用枚举、常量等代替(方便阅读代码的同学见名知意,例如在代码中看到sortType = SORT_BY_BACKEND比看到sortType = 1更容易让人理解。
7. 交付QA进行测试
开发联调结束后,我们会把代码交付QA进行测试。此阶段也是我比较紧张的时候,因为测试提出bug会算到团队bug数里,毕竟也是业务指标嘛。测试时间一般是2天。
8. 预发验证
预发验证阶段是测试完成后把代码发布到预发环境下进行的,之前我也不是很理解为什么测试阶段和上线之间会有这么一个阶段,后来带我的mentor跟我解释是预发验证会给足上线环境下的权限,方便更全面的进行测试验证。
9. 上线验证
上线阶段是我们最后的收尾阶段,虽然是收尾阶段但其实还是很忙的,上线一般会有一个窗口期,进行上线的话只能在窗口期中进行(比如下午或者晚上)。上线完成后测试人员会对需求进行再次验证,此阶段完成后才算本次需求结束,而有时候测试甚至会忙到晚上十二点,开发的同学也可能会比较辛苦等待测试结果。
写到最后,我作为一名职场小萌新,也会时常去想,到底面试官/同事希望招来一位怎样的伙伴,他对业务不熟悉没关系(刚开始大家都不熟悉嘛),他对某些技术不熟悉也没关系(学习能力强,学就完事),如果他是校招生,基础不错,熟悉git,有框架使用经验,甚至还知道通常的开发流程到底要干嘛,我想他应该会相比其他同学更有优势吧,祝大家&我秋招能有满意结果。
#美团暑期实习#