Dengbinhero's home

苦才是人生,做才是得到

嗨,我是邓斌 (@dengbinhero),一名 iOS / Python 开发者。现居北京,就职于 Weibo。世界很大、很美,很高兴与你相遇。


微博客户端发版机制

概要

目前微博团队使用的是隔周发版机制,即:每两周发一个版本,保证每月至少保证迭代两个版本。每个迭代会经历alpa1、alpha2、release三个阶段来保证代码质量。 ####角色扮演

  • PM:负责推动整个需求进程,把控各个关键时间节点,build阶段质量验收,推动提测进程,监督需求完成质量,直到上线,具有一定project manager的
  • RD:需求开发、bugfix,听PM的,听测试的。
  • QA:保证build阶段、alpha1、alpha2、alpha3阶段代码质量,保证需求进版质量。RD开发后的功能最终是否能进版QA具有决定权(通常是质量达不到要求被QA拒绝进版)

发版流程图

  • 微博团队采用Git管理代码,开发都沿着dev分之进行
  • 几个时间点:单周三双周二双周三
  • 涉及分支:RD各自的feature分支、devrelease
  • 1:RD从dev拉出分支如图feature1,进行开发,开发完毕,将feature1分支的build包交付给测试团队进行测试,直到bugfix完毕,测试通过,最终确保将feature1代码在单周三之前merge到dev
  • 2:单周三下午,从dev拉出这次要发版的release分支,在release分支打包,交付给测试,进入alpha1阶段。(alpha1阶段主要是做bugfix,测试不停的报bug,然后RD不停的fix),这个alpha阶段都围绕release分支进行
  • 3:alpha1阶段持续到双周二下午,等alpha1bugfix完毕,build出alpha2的包交付给测试,
  • 测试团队通过alpha2的包回归测试alpha1提出的bug
  • 4:alpha2阶段有一天时间,持续到第二天下午,打出release包,RD需要在这个时间点前fix掉alpha2阶段发现的bug
  • 5:release包交付给测试,回归alpha2阶段的bug,简单的回归功能点,最终测试通过,打最终的release包交付appstore
  • 6:release分支merge至dev。周期完成

各阶段详解

1.需求开发阶段(feature分支阶段)

功能开发阶段,即alpha1(拉出release分支)之前,RD可在任何时节点拉出自己的feature分支进行开发、打包、fix、打包,直到测试完成,方允许把feature分支合并至dev分支。

2.集成测试阶段(release分支阶段)

release分支包含了本次发版的所有feature,有alpha1alpha2release三轮测试,所有RD均在release分支做bugfix即可。

feature阶段流程图

alpha阶段流程图

dev_xxx == release

写在最后

发版机制的几个优点:

  • build、alpha1、alpha2、release阶段四轮测试,保证质量
  • release分支一旦拉出,所有后续完成的feature不再允许合入release分支,保证了发版分之代码的质量
最近的文章

在家办公一些感悟和思考

一:概要       由于肺炎疫情的影响,公司采用在家办公机制。从2月3日开始到今天已经持续超过一个月的时间了,这在我职业生涯中,是第一次。抛开疫情这方面,其实算是一个是很难得的机会:体验远程办公。在这一个月中,经历了低效、情绪下降、体重飙升,然后到现在的比office坐班更高效率执行(自我认为啦)。其中有很多感悟,也有一些思考。二:感悟&&思考       之前内心真是写照:oh may god!在家办公怎么可能会有效率!在家办公==偷懒的机会终于来啦!但是经过这个月的实...…

work,life继续阅读
更早的文章

我是谁

About 我是邓斌,专注于iOS开发,对Objective-C、Swift有多年实践经验,热衷Python,现任职于@新浪微博 爱旅游,好运动,迷吉他,骑机车。喜欢新鲜事物,与书为伴,持续学习。基本信息 1989.出生.湖南 2013.计算机与通信工程.本科.湖南科技学院 2012.踏入职场 iOS . Objective C . Swift . Python职业历程 2016.09~至今 新浪微博 - iOS工程师 2014.12~2016.0...…

About继续阅读