【Git 小妙招】来浅浅聊一下企业级开发模型

这篇具有很好参考价值的文章主要介绍了【Git 小妙招】来浅浅聊一下企业级开发模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文是学习 Git 系列的最后一篇文章, 在学习完所有 Git 的使用技巧后, 本文重点来谈谈开发时的一些企业级开发模型.

关注收藏, 开始学习吧🧐


1. 讲个故事

我们知道,⼀个软件从零开始到最终交付,⼤概包括以下⼏个阶段:规划、编码、构建、测试、发布、部署和维护。

最初,程序⽐较简单,⼯作量不⼤,程序员⼀个⼈可以完成所有阶段的⼯作。但随着软件产业的⽇益发展壮⼤,软件的规模也在逐渐变得庞⼤。软件的复杂度不断攀升,⼀个⼈已经hold不住了,就开始出现了精细化分⼯。如下图所⽰:

【Git 小妙招】来浅浅聊一下企业级开发模型,从零开始手把手学习 Git 神器,git,团队开发,gitee,github,源代码管理

但在传统的 IT 组织下,开发团队(Dev)和运维团队(Ops)之间诉求不同:

  • 开发团队(尤其是敏捷团队)追求变化
  • 运维团队追求稳定

双⽅往往存在利益的冲突。⽐如,精益和敏捷的团队把持续交付作为⽬标,⽽运维团队则为了线上的稳定⽽强调变更控制。部⻔墙由此建⽴起来,这当然不利于 IT 价值的最⼤化。

为了弥合开发和运维之间的鸿沟,需要在⽂化、⼯具和实践⽅⾯的系列变⾰⸺DevOps正式登上舞台。

DevOps(Development和Operations的组合词)是⼀种重视“软件开发⼈员(Dev)”和“IT运维技术⼈员(Ops)”之间沟通合作的⽂化、运动或惯例。透过⾃动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。在DevOps的软件开发过程包含计划、编码、构建、测试、预发布、发布、运维、监控,由此可⻅DevOps的强⼤。

讲了这么多,这个故事到底和我们系列的主题 Git 有什么关系呢?

举⼀个很简单的例⼦就能说明这个问题。⼀个软件的迭代,在我们开发⼈员看来,说⽩了就是对代码进⾏迭代,那么就需要对代码进⾏管理。如何管理我们的代码呢,那不就是 Git(分布式版本控制系统) !所以 Git 对于我们开发⼈员来说其重要性就不⾔⽽喻了。

2. 系统开发环境

⾔归正传,对于开发⼈员来说,在系统开发过程中最常⽤的⼏个环境必须要了解⼀下:

  1. 开发环境:开发环境是程序猿们专⻔⽤于⽇常开发的服务器。为了开发调试⽅便,⼀般打开全部错误报告和测试⼯具,是最基础的环境。
  2. 测试环境:⼀个程序在测试环境⼯作不正常,那么肯定不能把它发布到⽣产机上。该环境是开发环境到⽣产环境的过渡环境。
  3. 预发布环境:该环境是为避免因测试环境和线上环境的差异等带来的缺陷漏测⽽设⽴的⼀套环境。其配置等基本和⽣产环境⼀致,⽬的是能让我们发正式环境时更有把握!所以预发布环境是你的产品质量最后⼀道防线,因为下⼀步你的项⽬就要上线了。要注意预发布环境服务器不在线上集成服务器范围之内,为单独的⼀些机器。
  4. ⽣产环境:是指正式提供对外服务的线上环境,例如我们⽬前在移动端或PC端能访问到的APP都是⽣产环境。

这⼏个环境也可以说是系统开发的三个重要阶段:开发->测试->上线。⼀张图总结:

【Git 小妙招】来浅浅聊一下企业级开发模型,从零开始手把手学习 Git 神器,git,团队开发,gitee,github,源代码管理

对于规模稍微⼤点的公司来说,可不⽌这么⼏个环境,⽐如项⽬正式上线前还存在仿真/灰度环境,再⽐如还存在多套测试环境,以满⾜不同版本上线前测试的需要。

⼀个项⽬的开始从设计开始,⽽⼀个项⽬的成功则从测试开始。⼀套良好的测试体系可以将系统中绝⼤部分的致命Bug 解决在系统上线之前。测试系统的完善和成熟也是衡量⼀个软件企业整体⽔平的重要指标之⼀,测试往往被忽视,因为它对可以的隐性、对软件开发企业不产⽣直接的效益,但是它却是软件质量的最终保障,乃⾄项⽬能否成功的重要因素!

3. Git 分支设计规范

环境有了概念后,那么对于开发⼈员来说,⼀般会针对不同的环境来设计分⽀,例如:

分支 名称 适用环境
master 主分⽀ ⽣产环境
release 预发布分⽀ 预发布/测试环境
develop 开发分⽀ 开发环境
feature 需求开发分⽀ 本地
hotfix 紧急修复分⽀ 本地

注:以上表格中的分⽀和环境的搭配仅是常⽤的⼀种,可视情况⽽定不同的策略。

3.1 master 分支

  • master 为主分⽀,该分⽀为只读且唯⼀分⽀。⽤于部署到正式发布环境,⼀般由合并 release 分⽀得到。
  • 主分⽀作为稳定的唯⼀代码库,任何情况下不允许直接在 master 分⽀上修改代码。
  • 产品的功能全部实现后,最终在 master 分⽀对外发布,另外所有在 master 分⽀的推送应该打标签(tag)做记录,⽅便追溯。
  • master 分⽀不可删除。

3.2 release 分支

  • release 为预发布分⽀,基于本次上线所有的 feature 分⽀合并到 develop 分⽀之后,基于 develop 分⽀创建。可以部署到测试或预发布集群。
  • 命名以 release/ 开头,建议的命名规则: release/version_publishtime
  • release 分⽀主要⽤于提交给测试⼈员进⾏功能测试。发布提测阶段,会以 release 分⽀代码为基准进⾏提测。
  • 如果在 release 分⽀测试出问题,需要回归验证 develop 分⽀看否存在此问题。
  • release 分⽀属于临时分⽀,产品上线后可选删除。

3.3 develop 分支

  • develop 为开发分⽀,基于 master 分⽀创建的只读且唯⼀分⽀,始终保持最新完成以及 bug 修复后的代码。可部署到开发环境对应集群。
  • 可根据需求⼤⼩程度确定是由 feature 分⽀合并,还是直接在上⾯开发(⾮常不建议)。

3.4 feature 分支

  • feature 分⽀通常为新功能或新特性开发分⽀,以 develop 分⽀为基础创建 feature 分⽀。
  • 命名以 feature/ 开头,建议的命名规则: feature/user_createtime_feature
  • 新特性或新功能开发完成后,开发⼈员需合到 develop 分⽀。
  • ⼀旦该需求发布上线,便将其删除。

3.5 hotfix 分支

  • hotfix 分⽀为线上 bug 修复分⽀或叫补丁分⽀,主要⽤于对线上的版本进⾏ bug 修复。当线上出现紧急问题需要⻢上修复时,需要基于 master 分⽀创建 hotfix 分⽀。
  • 命名以 hotfix/ 开头,建议的命名规则: hotfix/user_createtime_hotfix
  • 当问题修复完成后,需要合并到 master 分⽀和 develop 分⽀并推送远程。⼀旦修复上线,便将其删除。

⼀张图总结:

【Git 小妙招】来浅浅聊一下企业级开发模型,从零开始手把手学习 Git 神器,git,团队开发,gitee,github,源代码管理

其实,以上跟⼤家谈的是企业级常⽤的⼀种 Git 分⽀设计规范:Git Flow 模型。但要说的是,该模型并不是适⽤于所有的团队、所有的环境和所有的⽂化。如果你采⽤了持续交付,你会想要⼀些能够尽可能简化交付过程的东西。有些⼈喜欢基于主⼲的开发模式,喜欢使⽤特性标志。然⽽,从测试的⻆度来看,这些反⽽会把他吓⼀跳。

关键在于站在你的团队或项⽬的⻆度思考:这种分⽀模型可以帮助你们解决哪些问题?它会带来哪些问题?这种模式为哪种开发提供更好的⽀持?你们想要⿎励这种⾏为吗?你选择的分⽀模型最终都是为了让⼈们更容易地进⾏软件协作开发。因此,分⽀模型需要考虑到使⽤者的需求,⽽不是盲⽬听信某些所谓的“成功的分⽀模型”。

所以对于不同公司,规范是会有些许差异,但万变不离其宗,是为了效率与稳定。

4. 修复问题建议

4.1 修复测试环境 Bug

develop 测试出现了 Bug,建议⼤家直接在 feature 分⽀上进⾏修复。

修复后的提测上线流程 与 新需求加⼊的流程⼀致。

4.2 修改预发布环境 Bug

release 测试出现了 Bug,⾸先要回归下 develop 分⽀是否同样存在这个问题。

  • 如果存在,修复流程 与 修复测试环境 Bug流程⼀致。
  • 如果不存在,这种可能性⽐较少,⼤部分是数据兼容问题,环境配置问题等。

4.3 修改正式环境 Bug

master 测试出现了 Bug,⾸先要看下 releasedevelop 分⽀是否同样存在这个问题。

  • 如果存在,修复流程 与 修复测试环境 Bug 流程⼀致。
  • 如果不存在,这种可能性也⽐较少,⼤部分是数据兼容问题,环境配置问题等。

4.4 紧急修复正式环境 Bug

需求在测试环节未测试出 Bug,上线运⾏⼀段时候后出现了 Bug,需要紧急修复的。

有的企业⾯对紧急修复时,⽀持不进⾏测试环境的验证,但还是建议验证下预发布环境。

可基于 master 创建 hotfix/xxx 分⽀,修复完毕后发布到 master 验证,验证完毕后,将 master 代码合并到 develop 分⽀,同时删掉 hotfix/xxx 分⽀

拓展阅读
阿⾥⻜流flow分⽀模型,及项⽬版本管理实践


总结

✨ 想了解更多知识, 请持续关注博主, 本人会不断更新学习记录, 跟随我一起不断学习 -> 跳转Git专栏.
✨ 感谢你们的耐心阅读, 博主本人也是一名学生, 也还有需要很多学习的东西. 写这篇文章是以本人所学内容为基础, 日后也会不断更新自己的学习记录, 我们一起努力进步, 变得优秀, 小小菜鸟, 也能有大大梦想, 关注我, 一起学习.

再次感谢你们的阅读, 你们的鼓励是我创作的最大动力!!!!!文章来源地址https://www.toymoban.com/news/detail-765148.html

到了这里,关于【Git 小妙招】来浅浅聊一下企业级开发模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git企业级使用

    1.初始Git 1.1创建Git仓库 要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来。创建⼀个Git本地仓库对应的命令为 git init ,注意命令要在⽂件⽬录下执⾏,例如: 刚创建的git仓库会有一个隐藏文件  .git这个文件不能

    2024年02月10日
    浏览(48)
  • Git 与 Maven:企业级版本管理与版本控制规范设计

    当今,许多开发人员熟悉 GitFlow 工作流程,但往往忽略了 GitFlow 如何与 Maven 版本控制结合,尤其是在管理 snapshot 和 release 版本时的最佳实践。本文旨在整合 GitFlow 工作流程与 Maven 版本管理,提出一个统一的企业级规范,以供开发人员参考。 GitFlow 是一种流行的分支管理模型

    2024年02月04日
    浏览(49)
  • 文心千帆大模型平台,一站式企业级大模型平台

    随着人工智能技术的不断发展,尤其是深度学习技术的广泛应用,大模型训练已成为当下研究的热点之一,随着计算能力的不断提升和数据规模的不断增加,大模型展现出了惊人的能力,能够处理更加复杂和庞大的任务。从计算机视觉到自然语言处理,从语音识别到推荐系统

    2024年02月16日
    浏览(50)
  • 企业级开发中协同开发与持续集成持续部署

    每个项目有唯一的代码仓库,所以不是每个开发者都需要创建一个代码仓库,一般都是项目负责人创建: 代码仓库有以下几种: github gitee gitlib 代码仓库的使用方法都差不多。 以gitee为例创建一个仓库: 如果没有账户的话,要注册一个新的用户名,注册用户之后,使用注册

    2024年02月14日
    浏览(57)
  • 从零开始:构建企业级AI大模型的最佳实践

    随着人工智能技术的不断发展,越来越多的企业开始投入人力、物力和财力来构建自己的企业级AI大模型。这些大模型在处理大规模数据、自然语言处理、图像识别等方面具有显著优势,为企业创造了巨大的价值。然而,构建企业级AI大模型并不是一件容易的事情,需要面对许

    2024年02月21日
    浏览(57)
  • 云表|低代码开发崛起:重新定义企业级应用开发

    nbsp; nbsp; nbsp; nbsp;低代码开发这个概念在近年来越来越受到人们的关注,市场对于低代码的需求也日益增长。据Gartner预测,到2025年,75%的大型企业将使用至少四种低代码/无代码开发工具,用于IT应用开发和公民开发计划。 nbsp; nbsp; nbsp; nbsp;那么,为什么低代码开发如此受到

    2024年02月08日
    浏览(48)
  • 百度文心千帆大模型平台:企业级大模型服务的新航标

    随着人工智能和大数据的快速发展,大模型平台正越来越受到各大企业和个人开发者的青睐。本文将以百度最新推出的文心千帆大模型平台为例,深入分析其在国家战略布局,经济发展趋势,市场变化动向和技术研发周期等方面的影响和应用。同时,也将深入探讨其当前所面

    2024年02月15日
    浏览(50)
  • 大数据开发之Hive(企业级调优)

    创建测试用例 1、建大表、小表和JOIN后表的语句 2、分别向大表和小表中导入数据 1、基本语法 2、实例操作 1)查看下面这条语句的执行计划 (1)没有生成MR任务的 (2)有生成MR任务的 2)查看详细执行计划 10.2.1 列裁剪和分区裁剪 在生产环境中,会面临列很多或者数据量很

    2024年01月18日
    浏览(42)
  • Mysql 数据库开发及企业级应用

    1.1、为什么要使用数据库 ​ 程序员 Jack 还是在在校学习期间, 就听高年级的大哥忠告, “ 小伙子, 搞编程, 想要成为最牛逼的程序员, 一定要学好 C/C++语言和数据结构及算法” , Jack 谨记了这句忠告, 因为这位高年级的哥们还没毕业就已经被 BAT 公司预定, 在学校那是

    2024年02月16日
    浏览(51)
  • 前端工程化实战-开发企业级CLI

    1. 前言 脚手架大家一定都不陌生,比如我们经常使用的 vue-cli、create-react-app,它可以帮助我们快速的初始化一个项目,无需从零配置,极大的方便我们的开发。到这里你可能会疑惑,既然市面上有成熟的脚手架,为什么需要写一个属于自己的脚手架呢。因为公共脚手架虽然强

    2024年02月12日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包