跳到正文

测试开发研发设计规范

研发设计规范

Posted by lili on December 12, 2023 · 读取中...

    测试开发研发设计规范

    0、研发设计背景

    XX总:整个研发部开展业务设计评审-常态化。

    XX哥:工程效能和测试开发要有自己的评审流程和代码规范。

    目前,应用平台已开始实施常态化的研发设计评审,作为面向内部用户的开发团队,我们也应当跟进并制定类似的规范。随着未来项目将全部迁移至微服务架构,研发设计的规范化变得尤为重要。

    有人认为测开和运开这种内部平台开发不需要太多规范,开发人员少,随便做做即可。但我认为,正是因为开发人员少,才更需要系统化的文档沉淀。

    1、为什么要做研发设计?

    个人角度:积累和沉淀,IT人员素质、能力的提高。

    团队角度:方便其他成员共建共享,新人快速上手,方便工作交接。

    公司角度:积累知识资产,保证产出物的质量,不能开发完毕就重构。

    2、怎么做研发设计?

    全部项目应该走devOps流水线。

    大需求-初建版本(0-1

    小需求-迭代版本(1+)

    研发设计流程

    graph LR
        系统需求阶段-->系统设计阶段-->系统开发阶段-->系统测试阶段
    

    2.1、系统需求阶段

    在DevOps项目管理中,提交需求级的研发设计评审,主要内容包括:需求描述、现状分析、设计方案、实现方法。

    需求文档:

    • 需求来源: 内部工具需求通常来自现实需求、用户反馈及业界动态。
    • 需求描述: 清晰描述产品需求。
    • 需求现状: 当前需求的实现情况。
    • 需求设计: 提出解决方案。
    • 需求实现: 描述系统的实现思路、方法与逻辑。

    必要图示:

    • 用户流程图: 展示真实世界用户的操作流程,使用竖行泳道图。
    • 应用架构图: 描述系统内部模块与外部模块之间的关系,尤其是在微服务架构下。
    • 业务对象图: 描述业务对象之间的关联关系。

    2.2、系统设计阶段

    系统概要设计

    • 应用架构图: 描述开发团队与合作团队的协作,及本应用模块的层次架构和职责。
    • 部署架构图: 基于应用架构图,描述部署的各个工程包及其职责。

    系统详细设计

    • 服务接口说明: 包括时序图、业务用例、状态图、数据库ER图等详细设计文档。
    • 数据库设计: 明确系统所需的数据库结构与实现。

    2.3、系统实现阶段

    开发文档

    • 需求实现: 描述如何根据需求进行具体开发和实现。

    代码评审规范

    代码规范
    1. 命名与代码编写规范: 可参考Google代码规范。
    2. 注释规范:
      • 对所有对外提供的接口,必须有清晰注释,详细说明参数、返回值及功能。
      • 修改核心功能时,需增加注释,说明修改的业务场景、作者及修改时间。
      • 关键逻辑代码必须有注释,帮助他人理解。
    3. 常量使用: 对于固定数值(如状态值),避免硬编码,需使用常量。
    4. Maven依赖: 应使用正式版本的Maven依赖,避免使用snapshot版本。
    日志规范
    1. 业务异常日志: 所有业务异常必须记录日志。
    2. 关键业务日志: 关键逻辑需要记录详细业务日志。
    3. 日志数据: 日志中应尽量记录业务相关数据,如userId等。
    4. 日志关键词: 日志内容应包含能定位问题的英文或拼音关键词,方便日志查询与搜索。
    设计规范
    1. 模块划分规范: 各模块功能应清晰独立,符合设计原则。

    2. 包划分规范: 同一包内的功能和业务类型应保持一致。

    3. 接口设计规范: 确保接口设计遵循六大原则:

      • 开闭原则: 模块应可在不修改已有代码的前提下扩展。
      • 里氏代换原则: 使用基类的地方应能替换为其子类。
      • 依赖倒转原则: 依赖抽象,不依赖具体实现。
      • 接口隔离原则: 使用多个专门接口而非一个通用接口。
      • 合成/聚合复用原则: 优先使用合成/聚合,避免继承。
      • 迪米特法则: 一个对象应尽可能少地了解其他对象。

      a) 优先考虑将类设置为不可变类(如:String、BigInteger等)。 b) 尽量降低类的访问权限。 c) 谨慎使用Serializable接口。 d) 方法访问权限尽量设置为private。 e) 替代C结构体,使用属性的getXX和setXX方法。 f) 系统类继承树的叶子节点应为具体类,枝干节点应为抽象类或接口。

    方法设计规范
    • 功能应明确,任务单一。
    • 步骤应清晰,避免复杂操作。
    • 操作的变量应尽量减少。
    • 单个方法的代码行数不应过长,建议最长不超过50行。
    • 重复的代码应提取为公共方法,避免冗余。
    数据设计规范
    • 数据库设计应符合规范,保证数据结构的合理性。
    • DO对象设计要合理,避免过大或复杂对象的多重依赖。

    2.4、系统测试阶段

    • BUG List: 缺陷应通过DevOps流程管理,并记录于缺陷列表中。

    2.5、系统交付阶段

    系统开发完成后,应提供详细的用户手册,并根据后续需求变化进行版本迭代和维护。