阿里开发流程


哈喽大家好,我们今天来讲讲bat魔鬼变态的开发流程,这是夸张的说法啊,其实这是最正规高效的开发流程,很多没毕业的大学生,或者以后想进大厂工作的小伙伴,可以听一下大厂的开发流程是什么样子的。也许很多中小公司也在采用这套开发流程。

  • PM:产品经理
  • PM:项目经理
  • UE:交互设计师,负责页面布局、交互的设计,不负责视图的细节。
  • UI:视觉设计师,交互确定之后,设计页面样式。注意,很多情况下,UE 和 UI 是一个人。
  • RD:后端开发人员。
  • CRD:客户端开发人员,安卓和 ios 都是。
  • FE:前端开发人员。
  • QA:测试人员。
  • OP:服务器运维人员,一般负责审批上线单。

一、产品爸爸提需求

产品爸爸们通过对用户的分析和反馈,还有多年行业经验,以及同行之间产品分析,YY出了很多的产品需求,做好这些需求设计之后,就得他们的产品总监和其他产品内部评审这份设计。产品总监认可之后的需求。产品爸爸们就会拿着需求来折磨我们这些程序员了。

二、需求评审

产品爸爸拉上各种开发人员,比如APP、Java后端、前端、UE交互、UI设计、QA测试等等,进行这个需求的评审。每个人对这个需求各抒己见,哪些地方不合理,哪些地方这期不适合开发等等,产品会做会议记录邮件,然后更改需求,如果改动较小,就以邮件形式通知各位开发们,如果改动较大,还需进行二次评审。

三、技术方案设计

产品爸爸发话了,那就得干啊,然后后端开始做技术详细设计,UE做交互稿,QA做测试用例,UI根据UE的交互稿做页面设计。
后端的技术方案设计非常重要,这一步其实是对产品业务的一个梳理过程,让你能够更加了解业务需求,在设计的过程中能够及时发现哪里不合理,哪里有风险,哪里用什么样的技术栈等等。能让你在写代码的时候,速度又快,质量又高的完成开发工作。

四、技术设计评审

这里有几个方面需要评审,UE的交互稿,QA的测试用例,这个是需要全体人员进行参加的。而后端的技术方案设计,只需要技术leader和一些组内技术人员参加评审即可,因为其他人参加也听不懂嘛。这个技术评审能让你学到很多东西,对业务的风险把控,技术栈的选择等等,leader会针对这些给你提一些专业性的意见。所以技术方案一定要做好,这也是领导了解你的一个过程。你每次都做的很详细,很靠谱,那以后有好项目领导肯定会优先考虑交给你做。

五、排期

进入开发前要先进行工作量排期,就是工作计划安排,今天干什么,明天干什么,这个排期非常重要,排期有时候能直接影响你是996还是965, 因为严格控制排期,按照排期计划走,能让你比较从容的开发,各个环节有条不紊的进行。但是如果情况特殊,就是有好几个需求并行开发,时间都特别紧急,那排期也救不了你了。比如到了双十一大促,618大促,那都是很忙的时候。

六、开发

以上都搞完之后就可以进入真正的开发了,首先前后端要进行mock接口定义, 提供一些mock数据给前端等等,因为目前都是前后端分离的开发模式,双方定义好接口交互方式,就可以各自干活了,相当于并行开发。这样的工作效率非常高,谁也不用等谁。双方开发完之后就进入联调,前端切换成后端的真实接口,然后双方进行自测。

七、code review

开发工作全部完毕之后,进入代码review阶段,这个时候一般是叫上leader和组内的其他技术人员参加,他们会根据业务背景,以及你的代码实现提出一些意见,比如这里用工厂设计模式比较好,或者这里的代码逻辑可以在优化一下等等,这个阶段也是一个非常好的学习过程,你写代码都是按照自己的知识储备和风格去写,别人从他们自己的知识储备来看你的代码,会提出不同的思路,这样你就能学习他人的一些知识。

八、测试

以上都做完之后就进入测试阶段了,写个提测邮件给测试爸爸们,心里祈祷着千万别测试bug,结果测试爸爸们立马给你发了一条钉钉消息:英雄来干了这碗bug。测试一般分为测试环境和沙箱环境,测试环境又细分了很多子环境,比如stable环境、betaa环境、betab、betac、betad环境等,为什么要搞这么多测试环境呢,因为可能会有很多需求并行在开发,就需要很多环境来测试这些需求。一般中小型公司就没这么多环境。那么沙箱环境又是什么呢,就是模拟线上环境,几乎和线上环境是一模一样的,就是为了在上线前能够保证不出任何问题,因为上线是一件特别神圣的事,一旦出问题,你就背锅吧。测试完成后产品进行验收,产品爸爸满意了,这个时候就可以上线了。

九、上线

上线是一件非常神圣又庄严的事情,一般老哥都会先沐浴更衣之后在执行上线,因为一旦上线出问题,那就没时间洗脸洗澡了。上线前要做很多准备工作,列出一份上线清单,把上线涉及的影响点全部列出来给QA。比如是否有数据库工单,是否申请了ES索引等等,集群上线顺序,出现问题回滚顺序等等,万事俱备之后,就开始神圣的上线了。

十、上线后回测

不要以为上完线就万事大吉可以开溜了,QA还需要回测此次版本涉及的功能点,这个时候就得祈祷了,千万别有什么问题,要不今晚又回不去家了,如果上线出现问题不能短时间解决,最好的方法就是回滚,回滚到上一个可用版本。如果没有任何问题,这个时候产品爸爸就要登场了,来验收你的劳动成果,产品爸爸点头了就可以收拾东西回家睡觉了。

来源:微信公众号IT老哥


文章作者: 拾年
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 拾年 !
评论
 上一篇
webservice快速入门 webservice快速入门
webservice解决的问题解决不同系统、不同平台、不同语言之间的通信访问和调用解决应用程序的集成,不同业务的整合 webservice的定义Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服
2020-08-26
下一篇 
equals和hashCode equals和hashCode
Oject类是所有类的超类,hashCode和equals都是Object类中的方法,所以Java中所有类都默认继承了这两个方法。 Object类中的equals: public boolean equals(Object obj)
2020-05-29
  目录