软件代码与质量管理(更新版)(一)

简介: 软件代码与质量管理(更新版)(一)

开发者学习笔记【阿里云DevOps助理工程师认证(ACA)课程软件代码与质量管理(更新版)(一)

课程地址:https://edu.aliyun.com/course/3112069/lesson/18999


软件代码与质量管理(更新版)(一)

 

内容介绍:

一、版本控制

二、代码规约

三、单元测试基础

 

一、版本控制

版本控制在软件工程学里有一个正式的定义,它是指追踪和控制软件变更的实践。版本控制系统是用来辅助进行版本控制的工具。

图片179.png

我们先来看版本控制系统的发展历史。最早在 1982 年出现第一个版本控制系统RCS,它的全称是 revision control system,然后在 1990 年的时候出现一个著名的广泛使用的版本控制系统。 CBS 的全称是 concurrent version control system,虽然它并不是并行的,也并不是分布式的,但是我不知道为什么它的名字里出现concurrent。然后 CBS 是最早大范围使用的,曾经在工作站上非常的流行,大概在像 San 的 slots 和 IBM 的工作站上,惠普的工作站上基本上是所有的 Unix 工作站上都有CBS。在 1992 年的时候, IBM 出品一个著名的里程碑式的版本控制系统,叫 clear case,那时 clear case 是非常有名,非常高端,特别昂贵,只有很少的人使用过。大概在 2000 年的时候出现subversion,这是目前为止上一代用的最为广泛的版本控制系统。大概在 205 年的时候出现现代的分布式版本控制系统,包括Git,Mercury和 TFS,还包括像Bazar,这些都是分布式的版本控制系统。

为什么需要版本控制系统

图片180.png

首先版本控制系统它能记录下你所有的activity,包括是谁在什么时间做了什么事情。 commit message,它还提供你做的事情的这个额外的信息,解释变更的原因,然后由这个信息我们可以帮助软件进行发布管理。 同时现代的版本控制系统,像Git,SUB, Mercurio 和 TFS 这些分布式的版本控制系统,它还可以进行同步和并行,这样辅助多人团队进行协作,因为它是分布式。git,不光是 git 所有的版本控制系统,它还有一个辅助的功能,是帮助你进行 bug 调试,比如有一次改动,比如你的线上的版本出现一个问题,但是你知道在那之前的某一个版本是没有问题的,就可以利用版本控制系统,这中间可能有 10 次变更,你一次一次的去看到底是哪一次变更导致你的问题,你就可以把这一次变更到底改了什么拿出,这样可以极大的缩小你的追踪的范围,可以让 bug 调试变得简单。


现代的版本控制系统都支持分支和分支的合并,分支策略是版本控制里面一个非常重要的组成部分。分支策略现在大概分成主要的分支策略有三种,第一种是主干开发,分支发布,可以看图里面所有的开发的动作都在主干上完成,而一旦需要做一个分支的做一个发布的时候,我们就拉出一个分支,然后在这个分支上进行发布。 它的主要的优势是管理比较简单,大家从图上就能直观的看出这种管理方式是相对的简单一些。但是它也有一个弱点,就是主干的问题会阻碍开发的进程,因为一旦主干出现问题,这个时候想发布就没有一个稳定的地方可以发布。主干上现在有问题,就不能拉出一个分支来进行发布。


我们看第二个分支策略叫做分支开发,主干发布所有的开发活动都在分支上面进行,然后一旦这个分支稳定,需要进行发布的时候,就把它合并回主干,然后做一次发布。这有一个优点跟第一个不一样,它的开发是在分支上进行,和主干的代码提供一个可靠的隔离。但是它和第一个分支策略也有同样的问题,主干的问题会阻碍开发的进程。比如这一个分支已经准备好,你需要发布的时候,这个时候如果同一时间主干上的代码有问题,就没有办法合并到主干上,然后使用一个能用的分支进行发布。所以这也就是主干问题会阻碍开发的进程。

第三个分支策略是什么呢?


分支开发,分支发布,它可以兼顾上面两个策略的优点,比如它可以开发分支,提供了可靠的代码隔离,然后它主干的问题也不会阻碍发布,因为它是分支上发布完之后再合并回主干。但是这个同时会导致另一个问题,就是集成的时间点可能会比较延后。不过这个问题其实相对于阻碍开发进程的问题,这是一个相对较小的问题。所以现在用分支开发,分支发布这种策略的公司会比较多,当然不是仅仅是简单的这种分支开发,分支发布,这种有的时候会有一些变通。

图片181.png

相关文章
|
3月前
|
人工智能
阿里云CN域名收费价格2026年最新整理,CN域名注册、续费、转入和赎回费用整理
阿里云2026年CN域名最新资费:英文.cn注册38元/年,续费42元/年;中文.cn注册99元/年;转入同注册价;赎回高达1200元。享“互联网上的中国标识”等专属口令优惠,详情见万网官网。
480 1
|
3月前
|
数据采集 人工智能 自然语言处理
Coze 智能体工作流:从零搭建企业级 AI Agent 的工程化实践
AI智能体运营工程师是连接大模型与真实业务的工程化桥梁,以Coze/LangChain等工具为核心,通过工作流编排、Python数据处理、RAG知识库与API集成,将模糊需求转化为可执行、可评估、可优化的智能体系统,实现从对话工具到业务交付系统的质变。(239字)
|
4月前
|
关系型数据库 数据库 文件存储
告别数字麻木,重拾消费感知:ezBookkeeping —— 您的轻量自托管记账伴侣
在数字支付时代,金钱变得抽象,ezBookkeeping 让消费重新可感。这款开源、自托管的轻量记账工具,支持 Docker 部署,兼顾隐私与易用,助你找回对支出的真实掌控,适合树莓派到 NAS 各类设备。
632 0
告别数字麻木,重拾消费感知:ezBookkeeping —— 您的轻量自托管记账伴侣
|
7月前
利用Applitools Eyes识别视觉bug
Appilitools eyes是一款检测不同次运行页面是否相同的软件。同样运行一个测试程序,可能呈现出来的结果不同。不同的结果可能是bug,也可能是每次展现给用户的结果不同,比如百度搜索,淘宝页面,这里以百度搜索作为案例
365 22
|
9月前
|
算法 安全 数据安全/隐私保护
微信红包尾数0-9技巧控制是真的假的?
微信红包尾数控制的技术真相 1. 红包算法基础原理
|
11月前
|
物联网 测试技术 vr&ar
《云测平台赋能:让移动应用测试告别低效困境》
移动应用市场的蓬勃发展对应用质量提出了更高要求,而高效的测试流程是确保应用稳定流畅的关键。云测试平台作为新兴工具,基于云计算技术提供了丰富的测试资源、简化的环境配置和强大的自动化功能,解决了传统测试中设备碎片化、成本高、效率低等问题。通过合理使用云测试平台,开发者可显著提升测试效率,优化应用质量。未来,随着AI、物联网等技术的融合,云测试平台将进一步革新移动应用测试方式,推动行业进步。
321 20
|
计算机视觉
【方便的Opencv】实现图片合成视频+附带图片生成gif
【方便的Opencv】实现图片合成视频+附带图片生成gif
1146 0
【方便的Opencv】实现图片合成视频+附带图片生成gif
|
存储 分布式计算 监控
运营商大数据精准截取点击网站、app、短信、座机通话等数据,高精准高意向。
【销售要求】:教育、房产、汽车、招商、婚庆、移民、留学、医疗等处于前期流量红利期,单个线索低于百度投放,转化率远高于竞价排名。短信营销、电话营销,需要合作企业有正规资质,金融业需要对应牌照,个人无法合作,仅限有营业执照的公司,运营商需备案!
运营商大数据精准截取点击网站、app、短信、座机通话等数据,高精准高意向。
|
存储 SQL 关系型数据库
数据库(MySQL)规范
数据库(MySQL)规范
485 0
|
Web App开发 前端开发 JavaScript
网页自适应跟随系统深色模式
近几年,各个主流操作系统都逐渐开端注重深色方式,从而改善用户在环境光亮低时的阅读体验。随着水果在 iOS 13 与 macOS Mojave 中添加了深色方式,除了 Linux 以外一切的主流操作系统都曾经完成了系统层级的深色方式。Linux 由于 DE、WM 的种类繁杂暂时没有统一的标准,但目前可以经过深色 GTK+ 主题、阅读器插件等方式完成“伪全局”深色方式。既然有了系统层级的适配,阅读器就可以读取深色方式开关,从而完成网页的自顺应。这就是新标准 prefers-color-scheme。
1524 0
网页自适应跟随系统深色模式