可扩展高可用性架构设计-手Q需求合流实践分享.PPTX
文本预览下载声明
手Q需求合流实践
手Q项目问题
我们解决思路
关键改进步骤
业务应用情况
分享要点小结
1
2
3
4
5
目录
团队规模
2000+人
12部门
3BG
450个需求
100分支
40W行代码
需求
需求确定
需求评审
开发
拉开发分支
新功能开发
新功能测试
合流
分支验证
需求合流
合流验证
测试
系统测试
小灰
拉小灰分支
小灰发布
紧急BugFix
大灰
拉大灰分支
大灰发布
紧急BugFix
发布
拉发布分支
版本发布
换包发布
手Q研发流程
分支开发, 主干发布
版本按时发布很重要
需求
需求确定
需求评审
开发
拉开发分支
新功能开发
新功能测试
合流
分支验证
需求合流
合流验证
测试
系统测试
小灰
拉小灰分支
小灰发布
紧急BugFix
大灰
拉大灰分支
大灰发布
紧急BugFix
发布
拉发布分支
版本发布
换包发布
手Q研发流程
分支开发, 主干发布
需求
需求确定
需求评审
开发
拉开发分支
新功能开发
新功能测试
合流
分支验证
需求合流
合流验证
测试
系统测试
小灰
拉小灰分支
小灰发布
紧急BugFix
大灰
拉大灰分支
大灰发布
紧急BugFix
发布
拉发布分支
版本发布
换包发布
手Q研发流程
分支开发, 主干发布
崩溃!
崩溃!
崩溃!
1/ 不知需求合入标准
2/ 漏合错合现象频发
3/ 代码合入冲突严重
4/ 合入验证低效
5/ 主干质量难以控制
6/ 安装包Size超标且增长控制乏力
7/ 合流过程混乱
8/ 缺乏过程数据
9/ 优化改进困难
10/ ……
历史合流问题
手Q项目问题
我们解决思路
关键改进步骤
业务应用情况
分享要点小结
1
2
3
4
5
目录
有规范
自动化
透明化
不知合入标准
不做CodeReviw
漏合错合频发
合流冲突严重
合入验证低效
质量难以控制
安装包Size超标
人工催办提醒
合流过程混乱
风险发现滞后
缺少过程数据
优化改进困难
解决思路
手Q项目问题
我的解决思路
关键改进步骤
业务应用情况
分享要点小结
1
2
3
4
5
目录
建立
流程
分支
管理
双重
验证
权限
管理
过程
透明
改进步骤
同步主干/代码
审查/需求完成
分支
检查
加入合流
排队队列
获得合
流权限
同步主干/
合入主干
主干
检查
用户
确认
合流前准备
合流申请和操作
合流后检查
创建
合流单
合流
结束
释放
权限
确保合流过程透明有序
建立流程
建立开发认可的业务流程
分支管理
• 分支基础信息
• 分支需求关系
自动构建
• 拉取主干分支
• 创建构建任务
• 创建测试晨报
• 每日主干同步
流程实施和自动化的基础
分支管理
做好版本基线管理
主干
分支
1. 一次Rebase
2. 编辑代码
3. 分支验证
4. 二次Rebase
6. 合入主干
7. 主干验证
5. 编辑代码
双重验证
多次同步多次验证
合流质量的核心保证
其他分支
• 代码扫描(差异化对比, Lint, Findbugs等)
• 安装包检查(方法数,Size,图片压缩等)
• 配额检查
• 核心专项自动化(性能参数)
• 代码扫描
• 安装包检查
• 配额检查
分支验证
主干验证
• 核心专项自动化
• 基本功能验证
多项自动化测试为验证提供了基础支持
双重验证
理想
现实
权限管理
代码解耦减少冲突
权限管理
收紧权限减少冲突
主干
1. 一次Rebase
分支
2. 编辑代码
3. 分支验证
4. 二次Rebase
7. 主干验证
6. 合入主干
5. 编辑代码
排队合入
排队合入, “慢”即是快, 有效避免合流冲突
主干
合入
主干
BugFix
统一自
动管理
权限管理
收紧权限减少冲突
自动权限控制, 冲突纷扰不在
数据
说话
实时
进展
自动
预警
效率
统计
工具成
功率
锁流超
时原因
配额
增量
代码
变更
……
合流改进的数据支持
过程透明
合流过程数据化
流程
效率 ?
Vs
落地实施
让一切自动化 起来!
落地实施
落地实施
流程自动扭转
代码自动同步
权限自动控制
测试自动执行
风险自动提醒
过程自动分析
……
自动化让流程最低成本落地执行
快速迭代, 持续改进
落地实施
需求完成
情况检查
分支同步
检查
考试通过
检查
创建
合流单
分支
检查
合流
打开
CodeRev
iew检
测试结果
审核
当前迭代
待合分支
合入计划
偏差检查
核心模块
改动审核
显示全部