热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:前后端分离的工作流:在项目中引入持续集成

本文由编程笔记#小编为大家整理,主要介绍了前后端分离的工作流:在项目中引入持续集成相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了前后端分离的工作流:在项目中引入持续集成相关的知识,希望对你有一定的参考价值。








前言


在前端后分离的背景下,


前端工程师的职责进一步扩大,


以往不需要关心的代码部署环节,


也开始变成工作的一部分。


传统的人工发布方式,


已经不能满足日益工程化的前端工作流。


本文分析了现有工作流的问题,


依托Git Flow 和GitLab CI,


提出了在项目中引入持续集成的方案





几个概念


传统后端主导项目(简称:传统项目):


前端交付静态页面,后端套页面写逻辑;


前后端分离项目:


一般是SPA(Single Page Application)应用,


前端写逻辑,


后端仅提供数据接口和入口页面;


前端源码仓库:


现在一般都托管在gitlab上,


存放未经构建的前端源码;


产品仓库:


一般是后端svn/git仓库,


前端资源独立部署的项目除外;



















传统项目工作流














适用于站点类项目。


这类项目通常对seo有要求。




















问题分析













重度依赖后端环境(后端或运维维护),


一旦出现问题只能等;


重度依赖人工部署(后端发,没有钩子的联调环境你懂的),


沟通成本高;


通常是在联调阶段才能发现问题;


缺乏自动化测试流程;





















前后端分离工作流








前后端分离的工作流:在项目中引入持续集成







适用于Web App、WebView客户端或管理平台项目。


这类项目通常交互复杂度较高,对用户体验和视觉呈现有较高要求。




















问题分析












度依赖本地开发环境,


要想在不同机器搭建一模一样的环境,


需要精力和RP;


地开发环境与生产环境有差异


(windows vs linux),


代码正确性无法保证;


然依赖人工部署


(从后端发变成了前端发),


容易出现误操作;


乏自动化测试流程;
























前端开发工作流








前后端分离的工作流:在项目中引入持续集成

























一些变化










在产品仓库直接开发,

过渡到了拥有自己的源码库;

依赖后端发布代码,

过渡到了我们也有了发布权限;

端开发的复杂度越来越高,

项目渗透度越来越高;

后端分离的趋势越来越明显;




 


但是,


构建工具的引入,


一定程度上提高了开发效率,


但远远不够。


我们maybe也许开始进入大前端时代




引入持续集成


持续集成


(ContinuousIntegration)


指的是,


频繁地(一天多次)将代码集成到主干;


持续交付


(ContinuousDelivery)


指的是,


频繁地将软件的新版本,


交付给质量团队或者用户以供评审


持续部署


(ContinuousDeployment)


是持续交付的下一步,


指的是代码通过评审以后,


自动部署到生产环境


 


为什么要引入持续集成


让我们看三个小故事















故事1








前后端分离的工作流:在项目中引入持续集成





上面的故事告诉我们: 
永远不要忽视环境的差异






























故事2








前后端分离的工作流:在项目中引入持续集成





上面的故事告诉我们: 
人工发包有风险,


请先更新本地代码再打包

























故事3








前后端分离的工作流:在项目中引入持续集成





上面的故事告诉我们: 
求人不如求己,


自己动手丰衣足食





















用 GitLab CI 进行持续集成






GitLab CI 是GitLab v8.0开始配套的持续集成工具


流程设计


设计原则


保证简单易执行,支持流程定制;


支持持续集成,降低人工误操作风险;


倡导DevOps;


Git分支划分


这里以Git Flow为例,


主分支


master分支(必须)


主干分支,用于保存当前稳定版本。


建议每一个稳定版本打一个tag


dev分支(必须)


主开发分支,


用于主功能开发、测试bug修复等。


基于master分支,最后 merge 到master分支


test分支(必须)


提测分支,用于保存提测版本。


基于master分支,最后merge到master分支


 


其他分支


feature-*分支


特性分支,用于特性功能开发。


基于master分支,最后 merge 到devmaster分支


hotfix-*分支


bug修复分支,用于修复线上紧急bug。


基于master分支,最后 merge 到master分支







开发联调流程















流程图








前后端分离的工作流:在项目中引入持续集成





















CI干啥了








前后端分离的工作流:在项目中引入持续集成

















测试流程














流程图








前后端分离的工作流:在项目中引入持续集成



























CI在干啥








前后端分离的工作流:在项目中引入持续集成


















上线流程













流程图








前后端分离的工作流:在项目中引入持续集成




























CI干了啥

























作者说:

我讲完了,




推荐阅读
  • 在 Windows 10 环境中,通过配置 Visual Studio Code (VSCode) 实现基于 Windows Subsystem for Linux (WSL) 的 C++ 开发,并启用智能代码提示功能。具体步骤包括安装 VSCode 及其相关插件,如 CCIntelliSense、TabNine 和 BracketPairColorizer,确保在 WSL 中顺利进行开发工作。此外,还详细介绍了如何在 Windows 10 中启用和配置 WSL,以实现无缝的跨平台开发体验。 ... [详细]
  • 关于ScrumXPDevOps的学习
    最近听了ECUG大会上孙敬云老师的分享感觉受益匪浅,毕竟大学课本上只讲到瀑布模型就没有下文了,工作以后一直贯彻的都是Scrum路线,一直也没有时间好好的去学习整理这部分的知识,直到 ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 使用多项式拟合分析淘宝双11销售趋势
    根据天猫官方数据,2019年双11成交额达到2684亿元,再次刷新历史记录。本文通过多项式拟合方法,分析并预测未来几年的销售趋势。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文对比了杜甫《喜晴》的两种英文翻译版本:a. Pleased with Sunny Weather 和 b. Rejoicing in Clearing Weather。a 版由 alexcwlin 翻译并经 Adam Lam 编辑,b 版则由哈佛大学的宇文所安教授 (Prof. Stephen Owen) 翻译。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 思科IOS XE与ISE集成实现TACACS认证配置
    本文详细介绍了如何在思科IOS XE设备上配置TACACS认证,并通过ISE(Identity Services Engine)进行用户管理和授权。配置包括网络拓扑、设备设置和ISE端的具体步骤。 ... [详细]
  • 在本阶段的Java编程实战中,我们将深入探讨位运算的应用。具体任务是实现逻辑位运算。用户需从键盘输入一个位运算符(如AND、OR、XOR或NOT)及相应的操作数,系统将根据输入的运算符执行相应的位运算并输出结果。此练习旨在加强学员对位运算的理解和实际操作能力。 ... [详细]
  • 当使用 `new` 表达式(即通过 `new` 动态创建对象)时,会发生两件事:首先,内存被分配用于存储新对象;其次,该对象的构造函数被调用以初始化对象。为了确保资源管理的一致性和避免内存泄漏,建议在使用 `new` 和 `delete` 时保持形式一致。例如,如果使用 `new[]` 分配数组,则应使用 `delete[]` 来释放内存;同样,如果使用 `new` 分配单个对象,则应使用 `delete` 来释放内存。这种一致性有助于防止常见的编程错误,提高代码的健壮性和可维护性。 ... [详细]
  • 贪心策略在算法设计中的应用与优化
    贪心算法在算法设计中具有广泛的应用,特别是在解决优化问题时表现出色。本文通过分析经典问题“买卖股票的最佳时机II”,探讨了贪心策略的基本原理及其在实际问题中的应用。通过实例分析,展示了贪心算法如何通过局部最优选择逐步达到全局最优解,并讨论了其在时间和空间复杂度上的优势。此外,还提出了一些优化方法,以提高算法的效率和适用性。 ... [详细]
  • 无论你是刚毕业的大学生,还是想在职业中寻求进步的经验丰富的IT专家,这些提示都可以帮你成为DevOps工程师。DevOps工程是一个备受称赞的热门职业。不管你是刚毕业正在找第一份工 ... [详细]
  • Android常见漏洞漏洞名称:Log敏感信息泄露漏洞描述: 程序运行期间打印了用户的敏感信息,造成泄露修改建议: 建议禁止隐私信息的log  ... [详细]
author-avatar
mobiledu2502881283
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有