如何把大象装进冰箱?
如何批量的把大象装进冰箱?
缘起
任何目标的实现都有N多路径,那么当我们确定目标后,如何快速达成目标,除了目标拆解和关键点设置检查,规范的流程规范是保障我们目标和关键点顺利落地的保障工具。
在我们设定研发目标后,有哪些核心步骤,每个步骤有哪些问题及解决工具,标准化的流程和工具如何达成团队共识落地,以下为总结中见。
以下通过规范约束的形式,明确每个阶段需要关注的内容和落地的形式。
需求
需求管理
规范约束
- 统一存储和浏览空间。分散是丢失的开始。
- 统一设计格式和风格。差异化是增加理解成本的开始。
- 统一核心业务概念描述。业务沟通成本最高的地方就是理解不一致。
- 统一文档迭代meta数据。使用5W1H描述法。
迭代管理
规范约束
- 需求划分方式:时间或功能。时间适用小团队迭代,分功能适合多团队、多系统迭代。
- 功能需求聚合到一个空间。理解需求有延续性,并方便维护。
bug管理
规范约束
- bug也是需求的一部分。很多业务迭代后期无法解释是早期需求成为后期bug,而bug修改无文档可追溯。
- bug需求需要补充或引用到功能需求下。改功能需要先理解原需求是什么后做优化修改。
开发
可维护性
规范约束
- 当行字符长度不超过80
- 单方法行数不超过80
- 见PSR1、PSR2
编码规范
规范约束
- 日志规范见PSR3、RFC5424
- 自动加载见PSR4
- 缓存见PSR6、RFC2119
- 接口规范见PSR7
重复检查
规范约束
- 每个模块使用的工具和基础类抽象到基础LIB库。
- 每个接口使用的工具和基础类抽象到模块基础LIB类。
检查工具
- PHP-Parser。php静态代码分析工具。
- PHPMD: Php mess detector。代码bug、冗余代码、烂代码、无用方法和参数检查
- PHP dead code detector。检查冗余未使用代码。
- PHP copy sniffer。冗余代码检查
本地测试
规范约束
- 基础库代码单测覆盖100%。
- 接口测试覆盖核心路径。
- 接口验证每个参数校验及返回值。
分支测试
规范约束
- 每个功能从界面触发回归测试。
- 整体单侧用例回归。
合并规范
规范约束
- 分支开发分支发布。避免主干顺路上线导致bug。
- 冲突需要沟通修改。避免影响已上线代码。
测试
安全扫描
规范约束
- 必须经过安全扫描后上线。
推荐工具
- PHP marlware Finder
自动化回归测试
规范约束
- 必须跑完并通过单侧后提交基础代码。
- 必须联调、验证、验收接口后提交合入代码。
测试用例管理
规范约束
- 所有测试用例统一设计规则。
- 所有测试用例统一管理。
- 所有测试用例支持分版本、分端设置测试集合。
推荐工具
- FitNesse
- qaManager
压力测试
规范约束
- 接口请求在压测满足要求后发起上线。
推荐工具
- Jmeter
- Postman
上线
包管理
规范约束
- 所有代码通过tag包的方式发布上线。
- 发布包和QA测试通过包一致。
分级部署
规范约束
- 发布由OP发起。
- 必须预览机验证通过后进行下一步。
- 任何阶段发现问题,第一时间回滚。