代码版本管理

在项目中,代码的版本管理非常重要。每个需求版本的代码开发在版本控制里都应该经过以下几个步骤。

  • 在master分支中拉取该需求版本的两个分支,一个feature分支,一个release分支;feature分支用于接受个人分支merge过来的代码,并用于部署dev环境。feature的代码在经过dev环境的联调后,合并到release分支,所有release分支用于接受feature分支merge过来的代码,并用于部署test环境。

    例如,需求2.0版,对应feature/olive_v2.0、release/olive_v2.0分支

  • 在 release/olive_v2.0 分支基础上建立个人分支。个人开发分支的代码一般情况下代码通过 git merge 命令合并到 feature 分支。

    例如,feature/olive_hjj_v2.0

需求流程

主要进行版本需求的功能梳理,并由产品人员输出产品原型,主要使用墨刀、axure等一些原型输出工具输出原型。主要流程如下:

  • 输出产品原型
  • 产品输出人员组织产品原型评审,主要参与人员包括:后端开发人员、前端开发人员、测试人员、UI设计人员、产品人员等

    在评审过程中原型输出人员解答各参会人员提出的疑问
  • 评审后如果需要优化修改的,进行产品原型优化;并完成需求定稿,交予UI设计人员进行UI设计,输出UI图

开发流程

开发就是完成需求评审,没有任何异议后;接下来的主要工作。开发主要由前端开发人员和后端开发人员完成。它的流程主要包含以下这些:

  • 按照版本需求进行设计;主要包括表结构设计、缓存数据结构设计、功能业务流程方案设计等,并输出《xxxx设计文档》。例如:

  • 输出设计文档后,开发人员(主要是后端开发人员)组织设计文档评审。参加人员主要包括:前端开发、后端开发、架构师;如果有涉及到部署架构调整之类的设计运维人员也要组织参加;测试人员也可以参加,方便熟悉数据存储、业务分支等
  • 前端开发、后端开发进行功能开发,并完成接口联调;实现所有需求的功能
  • 开发完成后进行 测试环境 提测;提测需要发送提测邮件。邮件接受人员主要包括产品人员、测试人员、前端开发人员、后端开发人员、架构师、运维人员等。提测邮件大概内容如下:

  • 在部署测试环境,测试人员表完成所有功能验证,然后产品人员验证完毕后。后端开发人员编写《生产发版文档》,并提供需要发布的成果物。主要包括:

需要提供的成果物列表

(1)数据库SQL脚本

(2)需要修改的配置文件,及需要增加、修改的配置项

(3)前端H5需要部署的zip包;APP需要发布的apk、ipa等

(4)后端需要部署jar、war等

(5)发版部署中涉及的关键步骤流程说明。例如,先改配置还是先执行SQL;是否存在需要执行接口进行数据库初始化的操作;是否需要修改Nginx等

(6)其他需要提供的成果物

以上成果物如果有发版平台直接通过发版平台提供;否则发邮箱、SVN版本等方式提供给运维人员

  • 组织人员进行《生产发版文档》评审,主要包括前端开发人员、后端开发人员、测试人员、运维人员、架构师进行评审;并确定发版时间节点

测试流程

功能开发完成后,进行功能测试是生产发版前的重要一环。在这个环节主要后测试人员主导,它的流程主要包含以下这些:

  • 测试人员全程参与版本原型的评审会议,对存在疑问的功能提出疑问;产品人员予以解答
  • 测试人员对版本需求的功能点编写测试用例,表示形式以思维导图为佳。例如:

  • 输出测试用例文档后,测试人员组织测试用例评审。参加人员主要包括:前端开发、后端开发、测试人员、产品人员
  • 对版本需求功能进行测试用例测试,验证功能正常可用
  • 在测试人员对功能完成测试后,产品人员在测试环境对需求功能进行最后验收。查看功能是否服务需求设计
  • 如果项目中接入代码质量管理平台,则对代码进行静态扫描、渗透测试等。

发版流程

发版主要由运维人员来主导。它的主要工作就是把已经在测试环境验证通过的成果物部署到生产环境。它的主要流程表包括以下这些:

  • 执行变更的SQL
  • 增加需要增加的配置文件、配置项;修改需要修改的配置文件、配置项
  • 如有网络架构变更,提前开通防火墙;并验证是否开通
  • 部署后端jar、war等。如果有CI/CD平台,直接执行流水线即可
  • 部署前端H5 zip包
  • 如有Nginx配置变更,进行Nginx映射变更
  • 其他需要操作的步骤,按照后端开发人员提供的《生产发版文档》进行一一操作
  • 测试进行生产验证

标准&有效的项目开发流程的更多相关文章

  1. 【CC2530入门教程-01】IAR集成开发环境的建立与项目开发流程

    [引言] 本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:1.CC2530单片机开发入门.2.通用I/O端口的输入和输出.3.外部中断初步应用.4.定时/计 ...

  2. 使用.NET MVC框架项目开发流程(项目开发流程)

    MVC项目开发流程 整理需求,进行需求分析.项目设计. 整理数据项,建数据库做前期准备,并整理字典. 建立所需数据库表和视图和模型. 页面实现其初步功能(跳过逻辑后台代码),只是实现页面之间的跳转以及 ...

  3. K2项目开发流程

    (自己的学习资料) K2项目开发流程: 1.在VS2013中设计流程,并在K2 Workspce中测试流程 首先是新建新建一个k2的Process文件..kprx后缀. 在里面创建所需要的流程.由于我 ...

  4. 覃超:Facebook的项目开发流程和工程师的绩效管理机制

    覃超:Facebook的项目开发流程和工程师的绩效管理机制 http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650992350&am ...

  5. Django (九) 项目开发流程&项目架构

    项目开发流程&项目架构 1. 软件开发的一般流程 1. 需求分析及确认: 由需求分析工程师与客户确认甚至挖掘需求.输出需求说明文档. ​ 2. 概要设计及详细设计: 开发对需求进行概要设计,包 ...

  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-2.中大型公司里面项目开发流程讲解

    笔记 2.中大型公司里面项目开发流程讲解     简介:讲解一个项目如何从零到上线,经历过怎样的步骤和流程                  1.一个中大型项目的开发流程,从需求调研到项目上线    ...

  7. IT项目开发流程

    项目开发流程: 一.需求分析:相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步 ...

  8. Java高级项目实战之CRM系统01:CRM系统概念和分类、企业项目开发流程

    1. CRM系统介绍 CRM系统即客户关系管理系统, 顾名思义就是管理公司与客户之间的关系. 是一种以"客户关系一对一理论"为基础,旨在改善企业与客户之间关系的新型管理机制.客户关 ...

  9. Git多人项目开发流程演练

    1. 前言 本文利用 GitHub 平台进行一个多人项目开发流程的演练,以加深课上所学内容. 参考文献:五⼤场景玩转 Git,只要这一篇就够了! 2. 初始化项目 2.1 新建远程项目 一个多人项目通 ...

  10. Python基础之模块:7、项目开发流程和项目需求分析及软件开发目录

    一.项目开发流程 1.项目需求分析 明确项目具体功能: 明确到底要写什么东西,实现什么功能,在这个阶段的具体要询问项目经理和客户的需求 参与人员: 产品经理.架构师.开发经理 技术人员主要职责: 引导 ...

随机推荐

  1. ROS2时间同步(python)

    最近1周一直研究ROS2的时间同步,翻越很多博客,很少有人使用ROS2进行时间同步的代码,无奈不断尝试与源码阅读,终于将其搞定, 为此,本博客将介绍基于python的ROS2的时间同步方法. 本博客内 ...

  2. XAF新手入门 - 类型子系统(Types Info Subsystem)

    类型子系统概述 类型子系统是XAF的核心概念,但我们平时却很少关注它,它集中存储了模块中的类型,它是生成应用程序模型(Application Model)的基础,它与XAF中其它的概念都有所关联,了解 ...

  3. DQL-聚合函数

    DQL-聚合函数 SQL基本函数,聚合函数对一组值执行计算,并返回单个值,也被称为组函数. 聚合函数对一组值执行计算并返回单一的值.除 COUNT 以外,聚合函数忽略空值,如果COUNT函数的应用对象 ...

  4. 【云原生 · Kubernetes】配置 Rancher docker 云平台

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 1.1 Rancher 概述 Rancher 是一个开源的企业级容器管理平台.通过 Ranc ...

  5. 第2-3-7章 个人网盘服务接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.8 导入其他接口代码 5.8.1 接口导入-分页查询附件 5.8.2 接口导入-根据业务类型/业务id查询附件 5.9 导入网盘服务接口 5.9.1 导入FileController 5.9 ...

  6. 你认识的C# foreach语法糖,真的是全部吗?

    本文的知识点其实由golang知名的for循环陷阱发散而来, 对应到我的主力语言C#, 其实牵涉到闭包.foreach.为了便于理解,我重新组织了语言,以倒叙结构行文. 先给大家提炼出一个C#题:观察 ...

  7. Dubbo-聊聊Dubbo协议

    前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrap ...

  8. VH6501模板工程介绍(一)

    VH6501硬件结构 1.式样 1.正向有5个灯,用来指示干扰的触发状态,干扰类型(数字或模拟),通道通信以及设备状态. 2.两个DB9接口(公头male和母头female),这是CAN或CANFD通 ...

  9. 深刻理解JAVA并发中的有序性问题和解决之道

    欢迎关注专栏[JAVA并发] 更多技术干活尽在个人公众号--JAVA旭阳 问题 Java并发情况下总是会遇到各种意向不到的问题,比如下面的代码: int num = 0; boolean ready ...

  10. GitOps实践之kubernetes安装argocd

    1. 什么是argocd 1.Argo CD是Kubernetes的一个声明性GitOps持续交付工具. 2.应用程序定义.配置和环境应该是声明性的和版本控制的.应用程序部署和生命周期管理应自动化.可 ...