公司代码上线流程

简介:

说一说,正常上线的流程

很多时候,经验是被痛苦逼出来的,流程是被错误逼出来的。在上线的过程当中,这段时间遇到了一些问题,造成了研发耽误了不少时间。原因是上线的不规范性以及没有任何的权限限制。

另外互联网项目版本开发都非常频繁。一天上线十几个小版本,也是有可能的。像我现在的公司,经常一天修改好多次文案,就需要不断的上线。如果处理不及时上线的话,会造成用户的一些误解,导致一些投诉以及不好的用户体验。这么频繁的修改上线,也是需要一定的流程和规范保证。

Git 代码管理

很多互联网公司都开始使用Git,替换了svn。Git非常适合互联网迭代以及多人多版本开发。如果让我说为什么喜欢使用Git,我喜欢切换分支,以及分支之间merge的方便快捷。

新建分支以及合并分支的便利性,会造成一些问题,分支不自然的就会过多。所以需要定时的需要删除一些过时的分支。

项目分支

一般来说,互联网项目有上线分支,预上线分支,测试分支,开发分支等.

保证不同的分支做不同的事情,防止分支污染。

  1. 上线分支,是发布到线上的分支,以这个分支为准,其他分支都是以这个分支为基础拉取。

  2. 预上线分支,在预上线环境当中,防止出错的最后一道保证。

  3. 测试分支,可能测试环境大家共用一套,所以把代码都merge到这里,然后发布。这样大家各自测试自己的,互不打扰。如果有多个测试环境的话,直接使用开发分支测试也是可以的。

  4. 开发分支,从上线分支拉取,根据需求修改的新分支。

开发流程

上面的这张图看起来有一点复杂。总体上来,可以分为这么几步。

  1. 第一步,需求来了之后,从上线分支拉取一个开发分支。

  2. 第二步,在开发分支进行开发,自测。

  3. 第三步,合并到测试分支,通知QA测试。

  4. 第四步,如果通过测试,合并到预上线分支,然后继续测试。如果不通过测试,进入第二步。

  5. 第五步,如果预上线测试通过,将预上线分支合并到上线分支。如果不通过测试,进入第二步。

  6. 第六步,上线,然后线上测试。如果通过测试,那么这个需求开发就结束了。如果没有通过测试,就撤回上线,然后进入第二步。

分支规范

  1. 测试分支以及预上线分支要定时清理,和上线分支同步。

  2. 上线分支以及预上线分支,merge权限保证在少数人手里。merge的时候,需要检查提交以及对线上的影响。

  3. 只能在开发分支修改代码,其他分支都是等着被merge.

  4. 提交之前,需要保证和上线分支没有冲突。

  5. 防止分支被污染,特别是受到测试分支污染。

流程规范之外

人是最难管理的,以及人是懒惰的。这些话是非常准确的,所以会遇到一下问题,还得需要解决。

  1. 需求改动非常小,是不是还得走整体流程。

  2. 我只是修改文案,是不是还得走整体流程。

具体怎么做,每一个公司和组都有自己的做法,是不是都必须都得走一遍流程。但是,分支规范是必须的,不能随意修改。直接在上线分支修改,坚决说NO!


















本文转自浅景尘51CTO博客,原文链接:http://blog.51cto.com/857803451/1948889 ,如需转载请自行联系原作者


相关文章
|
前端开发
antd中table组件中如何进行换行操作(react中)
antd中table组件中如何进行换行操作(react中)
antd中table组件中如何进行换行操作(react中)
|
6月前
|
存储 缓存 NoSQL
Redis缓存设计与性能优化
Redis缓存设计与性能优化涵盖缓存穿透、击穿、雪崩及热点key重建等问题。针对缓存穿透,可采用缓存空对象或布隆过滤器;缓存击穿通过随机设置过期时间避免集中失效;缓存雪崩需确保高可用性并使用限流熔断组件;热点key重建利用互斥锁防止大量线程同时操作。此外,开发规范强调键值设计、命令使用和客户端配置优化,如避免bigkey、合理使用批量操作和连接池管理。系统内核参数如vm.swappiness、vm.overcommit_memory及文件句柄数的优化也至关重要。慢查询日志帮助监控性能瓶颈。
214 9
|
11月前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
11月前
|
监控 测试技术 持续交付
掌握跨平台测试策略:确保应用的无缝体验
【10月更文挑战第14天】在多元化设备和操作系统的今天,跨平台测试策略成为确保应用质量和性能的关键。本文探讨了跨平台测试的重要性、核心优势及实施步骤,涵盖Web、移动和桌面应用的测试方法,帮助开发者提高应用的无缝体验。
|
弹性计算 缓存 Linux
私网环境下使用云效流水线进行 CI/CD的方法
云效流水线可以托管用户的私网环境内的机器,并将构建任务调度到这些机器上,从而确保整个构建过程,和代码库和制品库的交互在私网环境下进行。
46933 18
|
开发工具 git
7-4 sdut-C语言实验-最长公共子序列
7-4 sdut-C语言实验-最长公共子序列
190 1
|
机器学习/深度学习 测试技术 数据处理
Numpy Tile:数组复制的艺术与效率之键
【4月更文挑战第21天】
279 0
|
消息中间件 监控 前端开发
研发人员如何做好日常工作的稳定性保障
本文介绍了一些研发人员如何做好稳定性建设的工作事项
458 0
|
测试技术 持续交付 开发工具
在阿里,我们如何管理代码分支?
阿里有很多的研发团队,不同事业部使用的发布流程、分支策略并非整齐划一,但总体上看是比较规整的。其中有一种主流的发布模式以及对应的分支使用方式,称为“AoneFlow”。这套工作模式思路独特,在阿里以外的地方并不多见。本文围绕这些实践,聊一聊分支管理的话题。
34453 61
|
Kubernetes Unix Linux
kubeadm安装kubernetes集群
kubeadm安装kubernetes集群

热门文章

最新文章