Devops业务价值流:软件研发最佳实践

        在当今快速迭代的软件开发环境中,DevOps业务价值流已成为推动软件研发高效与质量并重的关键实践。软件研发阶段作为产品生命周期的核心环节,其每一步都承载着将创意转化为现实的重要使命。在历经需求澄清的精准定位、架构设计的宏观规划以及项目初始化的周密筹备后,项目正式迈入实施的快车道。此时,项目经理适时组织启动会议,旨在汇聚团队智慧,确保每位成员对项目目标、职责分配及预期成果形成统一共识。遵循既定的质量规范,团队将全力以赴,依次推进编码、自测环节,并顺利将成果转交测试团队,为后续的持续优化与交付奠定坚实基础。此阶段,不仅是技术实力的展现,更是团队协作与效率的双重考验。

5.1 迭代启动会议(迭代排期会)

5.1.1目标:

目标:明确迭代目标、任务分配、时间节点和资源需求、团队拉齐共识。

5.1.2具体流程:
  • 会议召开:项目经理或团队负责人主持会议,明确迭代目标、优先级、任务分配和时间节点。

  • 任务认领:对任务划分确认,识别出不合理的更新,拉齐共识,确保任务分配的合理性和高效性。

  • 制定计划:根据会议实际情况更新详细的迭代计划,包括里程碑、检查点和风险管理。

5.2 详细设计

5.2.1目标:

基于架构设计与个人任务需求,完成自己所属任务的详细设计。

5.2.2具体流程:
  1. 需求深入剖析

    1. 详尽理解产品需求文档,明确业务逻辑、功能需求及用户实际使用场景。

    2. 与产品经理及团队其他成员沟通,确保对需求有全面且准确的认识。

  2. 前端界面与组件设计

    1. 根据需求分析结果,规划前端页面布局与交互设计。

    2. 设计前端组件,明确组件的职责、属性、事件及与其他组件的交互方式。

  3. 后端接口详细规划

    1. 根据前端需求与业务逻辑,设计后端接口,明确接口的功能、请求方式、参数及返回值。

    2. 规划接口间的调用关系与数据流,确保后端服务的逻辑清晰、高效。

  4. 后端数据库表结构确认与修改

    1. 确认设计合理性:技术组长在架构设计阶段已完成的数据库表结构设计基础上,结合最新的业务需求和功能变更,确认设计的合理性和适用性。这包括检查表结构的完整性、字段类型的准确性、索引的有效性以及约束条件的合理性。

    2. 修改设计:如果发现设计存在不合理之处或与业务需求不符,研发人员需与架构师或数据库管理员沟通,共同讨论并修改数据库表结构设计。修改可能涉及调整字段、增加或删除表、修改索引或约束条件等。

    3. 文档更新:在确认和修改设计后,更新相关的数据库设计文档,确保团队成员对最新的数据库表结构有准确的理解。

  5. 设计评审与迭代

    1. 组织设计评审会议,邀请产品经理、架构师、测试工程师等相关专家参与。

    2. 在会议上详细展示设计成果,包括前端界面设计、后端接口设计、数据库表结构等。

    3. 认真听取评审专家的意见与建议,根据评审结果进行必要的修改与优化。

    4. 如有需要,进行多次迭代设计,直至设计成果满足业务需求与团队期望。

5.3 代码编写

5.3.1目标:

按照详细设计文档编写高质量、可维护的代码。

5.3.2具体流程:
  • 工具准备:统一安装IDEA、VSCode等开发工具,并配置通义灵码插件、Alibaba Java Coding Guidelines、Checkstyle、Findbugs、SonarLint等代码规范和检查工具。

  • 编码规范:遵循统一的编码规范,确保代码的可读性和可维护性。

  • 代码编写:按照详细设计文档进行编码,实现模块功能。

5.4 单元测试

5.4.1目标:

确保自己研发模块的功能正确,提高代码质量和稳定性。

5.4.2具体流程:
  • 编写单元测试:针对每个模块的功能编写单元测试,确保功能的正确性。

  • 运行单元测试:使用测试框架(如JUnit、TestNG等)运行单元测试,检查测试结果。

  • 修复问题:根据测试结果修复代码中的问题,并重新运行单元测试,确保问题得到解决。

5.5 本地质量扫描

5.5.1目标:
5.5.2具体流程:
  • 运行扫描工具:在代码编写过程中或提交前运行扫描工具,检查代码质量。

  • 修复问题:根据扫描结果修复代码中的问题,并重新运行扫描工具,确保问题得到解决。

5.6 提交代码

5.6.1目标:

确保代码提交的规范性和可追溯性。

5.6.2具体流程:
  • 编写Commit message:在提交代码时,编写清晰明了的Commit message,说明本次提交的目的和修改内容。

  • 代码审查:提交代码后,通过代码审查工具或人工审查方式,确保代码质量。

  • 合并代码:经过审查后,将代码合并到主分支或相应的功能分支中。

5.7 研发环境进行集成测试

5.7.1目标:

在研发环境中进行前后端拉通测试,确保系统功能的完整性和稳定性。

5.7.2具体流程:
  • 前后端联调:前后端开发人员进行联调,确保接口的正确性和数据的完整性。

  • 全流程测试:按照业务流程进行全流程测试,确保系统功能的完整性和稳定性。

5.8 版本转测

5.8.1目标:

将研发环境通过自测与质量扫描的代码及脚本merge到测试环境,进行更全面的测试。

5.8.2具体流程:
  • 代码及脚本merge:将代码及脚本merge到测试环境,确保测试环境的代码与研发环境保持一致。

  • 基础数据准备:在测试环境中准备字典、配置等基础数据,确保测试环境的真实性。

  • 发布转测范围说明:编写转测范围说明文档,明确测试范围、测试重点、测试方法和测试环境等信息。

  • 通知测试部署环境并进行测试:通知测试团队部署测试环境并进行测试,确保系统功能的正确性和稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/466663.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wireshark工具使用

复制数据 1.右键展开整帧数据 2.复制“所有可见项目” mark标记数据 标记: 跳转: 保存成文件: 文件–>导出特定分组—>Marked packets only

管理 Elasticsearch 变得更容易了,非常容易!

作者:来自 Elastic Ken Exner Elasticsearch 用户,我们听到了你的心声。管理 Elasticsearch 有时会变得很复杂,面临的挑战包括性能调整、问题检测和资源优化。我们一直致力于简化你的体验。今天,我们宣布了自收购 Opster 以来的一…

深度洞察| 超6亿银发精准流量,40+泛银发群体参与消费三大变化

作者 | NewAgingPro团队 前言 9月24日,AgeClub成立银发流量及场景联盟(简称:AgeMCN),助力银发经济高质量发展。 10月11日,AgeClub发布《2024银发流量全景洞察报告》,探索银发流量发展新模式…

Spring Boot——日志介绍和配置

1. 日志的介绍 在前面的学习中,控制台上打印出来的一大堆内容就是日志,可以帮助我们发现问题,分析问题,定位问题,除此之外,日志还可以进行系统的监控,数据采集等 2. 日志的使用 在程序中获取日…

Redis 组网方式入门

文章目录 一、组网方式1. 单实例模式描述优点缺点适用场景 2. 主从复制模式(Master-Slave Replication)描述优点缺点适用场景基于docker的redis主从复制1. 配置主节点2. 配置从节点3. 查看节点状态4. 验证主从数据同步5. 查看同步进度 3. 哨兵模式&#…

信号-2-信号捕捉

相关概念:递达 未决 / 阻塞 忽略 阻塞 vs 忽略 阻塞: 如果指定信号信号被阻塞, block期间该信号不能被递达,一直在pending表中。知道block被撤销后, 该信号才能递达,递达后对应pending位置置零。 忽…

(蓝桥杯C/C++)——基础算法(下)

目录 一、时空复杂度 1.时间复杂度 2.空间复杂度 3.分析技巧 4.代码示例 二、递归 1.递归的介绍 2.递归如何实现 3.递归和循环的比较 4.代码示例 三、差分 1.差分的原理和特点 2.差分的实现 3.例题讲解 四、枚举 1.枚举算法介绍 2.解空间的类型 3. 循环枚举解…

【极限编程(XP)】

极限编程(XP)简介 定义与核心价值观:极限编程(Extreme Programming,XP)是一种轻量级、敏捷的软件开发方法。它强调团队合作、客户参与、持续测试和快速反馈等价值观,旨在提高软件开发的效率和质…

如何编写安全的 Go 代码

原文:Jakub Jarosz - 2024.11.02 在编写 Go 代码时,如何时刻考虑安全性?要在一篇简短的文章中回答这个问题似乎不太可能。因此,我们将把范围缩小到一些具体做法上。 这些实践如果持续应用,将有助于我们编写健壮、安全…

Go八股(Ⅳ)***slice,string,defer***

***slice,string,defer*** 1.slice和arry的区别 arry: Go语言中arry即为数据的一种集合,需要在声明时指定容量和初值,且一旦声明就长度固定,访问时按照索引访问。通过内置函数len可以获取数组中的元素个…

使用 Mac 数据恢复从 iPhoto 图库中恢复照片

我们每个人都会遇到这种情况:在意识到我们不想丢失照片之前,我们会永久删除 iPhoto 图库中的一些照片。永久删除这些照片后,是否可以从 iPhoto 图库中恢复照片?本文将指导您使用免费的 Mac 数据恢复软件从 iPhoto 中恢复照片。 i…

Spark 的介绍与搭建:从理论到实践

目录 一、分布式的思想 (一)存储 (二)计算 二、Spark 简介 (一)发展历程 (二)Spark 能做什么? (三)spark 的组成部分 (四&…

Spring Boot2(Spring Boot 的Web开发 springMVC 请求处理 参数绑定 常用注解 数据传递 文件上传)

SpringBoot的web开发 静态资源映射规则 总结:只要静态资源放在类路径下: called /static (or /public or /resources or //METAINF/resources 一启动服务器就能访问到静态资源文件 springboot只需要将图片放在 static 下 就可以被访问到了 总结&…

Vue2中使用firefox的pdfjs进行文件文件流预览

文章目录 1.使用场景2. 使用方式1. npm 包下载,[点击查看](https://www.npmjs.com/package/pdfjs-dist)2. 官网下载1. 放到public文件夹下面2. 官网下载地址[点我,进入官网](https://github.com/mozilla/pdf.js/tags?afterv3.3.122) 3. 代码演示4. 图片预览5. 如果遇到跨域或者…

2024软件测试面试热点问题

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 大厂面试热点问题 1、测试人员需要何时参加需求分析? 如果条件循序 原则上来说 是越早介入需求分析越好 因为测试人员对需求理解越深刻 对测试工…

C语言 | Leetcode C语言题解之第542题01矩阵

题目: 题解: /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ type…

C++总结

目录 一、面向对象的三大特性 二、引用 2.1 概念 2.2特性 三、类与对象 3.1概念 3.2 类的内容 3.3对象的创建 四、构造函数与析构函数 五、封装 六、继承 6.1概念与基础使用 6.2 继承权限 6.2.1 权限修饰符 6.2.2 继承权限 6.3构造函数 6.3.1 派生类与基类的构造函数关系 6.3.2…

2024 CSS保姆级教程二 - BFC详解

前言 - CSS中的文档流 在介绍BFC之前,需要先给大家介绍一下文档流。​ 我们常说的文档流其实分为定位流、浮动流、普通流三种。​ ​ 1. 绝对定位(Absolute positioning)​ 如果元素的属性 position 为 absolute 或 fixed,它就是一个绝对定位元素。​ 在…

在PHP8内,用Jenssegers MongoDB扩展来实现Laravel与MongoDB的集成

在现代 web 开发中,MongoDB 作为一种流行的 NoSQL 数据库,因其灵活的文档结构和高性能而受到许多开发者的青睐。Laravel,作为一个优雅的 PHP Web 框架,提供了丰富的功能和优雅的代码风格。本文将指导你如何在 Laravel 项目中集成 …

GPU 环境搭建指南:如何在裸机、Docker、K8s 等环境中使用 GPU

本文主要分享在不同环境,例如裸机、Docker 和 Kubernetes 等环境中如何使用 GPU。 跳转阅读原文:GPU 环境搭建指南:如何在裸机、Docker、K8s 等环境中使用 GPU 1. 概述 仅以比较常见的 NVIDIA GPU 举例,系统为 Linux,…