研发流程规范

如何把大象装进冰箱?

如何批量的把大象装进冰箱?

缘起

任何目标的实现都有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发起。
  • 必须预览机验证通过后进行下一步。
  • 任何阶段发现问题,第一时间回滚。
您的支持是我最大的动力!