首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

中国DevOps社区经典重温:持续集成(上篇)

使用持续集成构建功能 对于我来说,解释什么是CI以及它是如何工作的最简单的方法是展示一个快速的例子,说明如何与一个小特性的开发一起工作。...现在拿着的工作副本,做任何需要做的事情来完成的任务。这将包括修改产品代码,以及添加或更改自动化测试。持续集成假定软件中有高度自动化的测试:称之为自测试代码的工具。...有正确的构建,就可以考虑将更改提交到存储库中。当然,问题是,在有机会提交更改之前,其他人可能,而且通常已经对主干进行了更改。因此,首先用他们的更改来更新的工作副本,并重新构建。...将详细阐述先前的经验法则:任何人都应该能够引入一台空白机器,签出存储库中的源代码,发出一个命令,之后在自己的机器上拥有一个正在运行的系统。...所以,一个好的构建工具会分析在流程中需要更改的内容。通常的做法是检查源文件和目标文件的日期,只有在源文件的日期较晚时才进行编译。

86030

把自己朝九晚五的工作自动化了,有错吗?

也许是被大量的关注给搞懵,世界各地的媒体纷纷报道这个故事。Etherable消失这个帖子后来演变了一个非常有价值的对话场地,内容主要是谁可以把工作自动化,以及怎么样自动化。...另一个自称为Jordan的人告诉,他曾经无意中使用自动化软件,让整个部门变得多余。他现在用自动化脚本每年只节省“几周”的时间。...2011年,一位用户在一个名为“AcceptableLosses”的帖子中写道,“他们拿走了开发的东西,用一个白痴代替,并指挥如何工作,因为“不服从”,他们很快开除了。...每年拿3万美元的工作,为他们带来了一个每年收入100万美元的项目,他们解雇,以此来节省每年3万美元的工资。”...那些将工作自动化的人独自行动,决定何时以及如何代码代替自己的工作。理想情况下,自动化决策会在同事和同事的参与下集体做出,这样收益就可以平均分配。

78010
您找到你想要的搜索结果了吗?
是的
没有找到

树莓派自建 NAS 云盘之——数据自动备份

这样,五年内在备份盘上产生大量备份: 每周 7 个日备份 每月 4 个周备份 每年 12 个月备份 每五年 5 个年备份 你应该还记得,我们搭建的备份盘和数据盘大小相同(每个 1 TB)。...如何将不止 10 个 1TB 数据的备份从数据盘存放到只有 1TB 大小的备份盘呢?如果你创建的是完整备份,这显然不可能。因此,你需要创建增量备份,它是每一份备份基于上一份备份数据而创建的。...增量备份方式不会每隔一天成倍的去占用存储空间,每天只会增加一点占用空间。 以下是的情况:的 NAS 自 2016 年 8 月开始运行,备份盘上有 20 个备份。...目前,在数据盘上存储 406GB 的文件。的备份盘用了 726GB。当然,备份盘空间使用率在很大程度上取决于数据的更改频率,但正如你所看到的,增量备份不会占用 20 个完整备份所需的空间。...自动化备份 你肯定也不想每天凌晨去输入命令进行数据备份吧。你可以创建一个任务定时去调用下面的脚本让自动化备份。 #!

2K20

怎么写出一份令人惊叹的设计文档?

工作过的其他公司中,没有一家对如何使用文档进行协作有这样深刻的理解。 这篇文章就是关于我在谷歌如何写设计文档的一个例子,这是一个真实的项目,用于在新冠疫情期间控制健身房现场人数。...即使在新冠疫情结束后不需要预约健身房,也可以访问GitHub上的源代码[1]。为了让这篇文章更有趣,现在每个人都可以在谷歌文档[2]上进行评论,而且谷歌文档的格式也比Medium支持的要好。...考虑到下面几点,认为浏览器自动化比模拟请求更好: [优点] 浏览器自动化启动了一个真实的浏览器实例,所以我们知道程序运行时发生了什么,使调试和开发更加容易。...考虑并测试了Chrome、Firefox和Safari,Safari和Chrome需要额外的步骤来使用相应的Selenium驱动程序,所以我选择Firefox。...一个有趣的事实 竞争确实非常激烈,通常在第1分钟预约结束。每个时段总共只有6个名额,毫无疑问,在早上6点预订是不可能的。

42820

的第一本区块链书中学到了什么

自动化。智能合约可以使交易瞬间发生,因为一旦满足预编程的某些条件,交易就会执行。稍后我们将以汽车保险为例进行讨论。 增加透明度。想象一下飞机在准备好用于商业用途之前必须经历的复杂系统和过程。...微信图片_20180318091638.jpg 2018年的区块链 所以,现在我们了解了区块链利益之后,让我们来谈谈如何在当今的各个行业中使用。我们来谈谈金融。...数字认证的出生证明是时间戳,不可变的,任何可以解决这个(开户)问题的人具有(数字认证的)访问权。想象一下人口贩卖现象的减少。 医疗机构将使用区块链。...这是一个艰难的,因为我们距离医学史的数字化还很遥远,但孩子,我们的确需要。每个医生需要了解病人的全部病史,才能够正确评估每种疾病,但今天这是不可能的。...微信图片_20180318091653.jpg 区块链应用程序的平台 你可能会想到以下几点: “好的,这一切都很棒,但是我们究竟如何构建应用程序来解决刚才提到的所有问题?” 你猜怎么

84540

怎么写设计文档?

工作过的其他公司中,没有一家对如何使用文档进行协作有这样深刻的理解。 这篇文章就是关于我在谷歌如何写设计文档的一个例子,这是一个真实的项目,用于在新冠疫情期间控制健身房现场人数。...考虑到下面几点,认为浏览器自动化比模拟请求更好: [优点] 浏览器自动化启动了一个真实的浏览器实例,所以我们知道程序运行时发生了什么,使调试和开发更加容易。...考虑并测试了Chrome、Firefox和Safari,Safari和Chrome需要额外的步骤来使用相应的Selenium驱动程序,所以我选择Firefox。...相对于DOM结构和属性(类名等),内部文本的优势并不是说它不太可能更改,而是如果它们发生更改,更容易调试。...一个有趣的事实 竞争确实非常激烈,通常在第1分钟预约结束。每个时段总共只有6个名额,毫无疑问,在早上6点预订是不可能的。 ---- ---- 欢迎加入的知识星球,一起探讨架构,交流源码。

1.8K30

别再错了,数字化转型与数据和应用程序无关,而与流程有关

感到既困惑又好笑,回答说:“你是知道每个流程实例都有一个内置的审计跟踪,对吧?工作流的当前状态已经给你想要跟踪的状态?内置的注释维护一个线程,每个人的免费注释记录带有时间戳?” 还不止这些。...当我问“你真的需要这个字段吗?似乎与赞助没有任何关系”时,他们回答说:“想不是,但我通常会在其他应用程序中为一个组织收集这些数据,而赞助商就是组织。”...你如何知道该活动确实会以你所期望的方式被触发呢?就此而言,你怎么知道这是正确的活动呢?不管怎么说,这种偏见是真实存在的;我们中有多少人(如果不是大多数人的话)接受过这样的教育。...它还能使流程更易于审核和监控,并且有助于更容易地弄清楚如何改进你所看到的流程...... 改进是必须的;如果说在流程自动化方面有一件事情是可以期待的,那就是更改。从一开始完美是不可能的。...当然,在时间允许的情况下,各个步骤也可以而且通常也应该实现自动化。但时间就是一切,如果你从一开始就只考虑如何连接到数据以及如何自动化手动活动,那么你没有抓住要点。

30740

【软件工程】代码质量综合指南:最佳实践和工具

代码质量是一组不同的属性和需求,由您的业务决定和确定优先级。以下是可用于确定的主要属性: 清晰:对于不是代码创建者的人来说,阅读和监督都很容易。如果很容易理解,那么维护和扩展代码容易多了。...不仅仅是计算机,人类也需要理解。 可维护性:高质量的代码并不复杂。任何使用代码的人如果想做任何更改,都必须理解代码的整个上下文。...由于作者的写作必须易于阅读和全面,所以软件开发人员的代码也应该如此。 知道,当你在压力下不得不在下一个截止日期前完成工作时,很难关注代码质量,但是如果你想长远考虑,你肯定需要生成可读和可维护的代码。...为您的团队构建代码质量保证体系 在这一部分中,将向您展示如何使用版本控制、样式指南和自动化测试来确保我们的代码符合预定义的质量标准。...在这里您可以看到如何轻松地启用它。 但是你如何决定代码是否足够好呢? 在下一部分中,将向您展示跟踪代码质量的工具和可用于度量代码质量的度量。 1。可读和可理解代码的样式指南 ?

1.1K10

破坏开发人员生产力的十二件事

“这是错的,这个,这看起来很糟糕,”等等,然后又飞走了。不得不承认喜欢这个形象,但不幸的是,这种情况比我们想要的更频繁。...这在的名单上相当高,因为觉得产生了如此多的紧张,只会在很长一段时间内摧毁整个开发人员的生产力。 6....“如何”文档 在学习如何编码时,我们被告知要尽早和经常写注释。这个想法是,多写一点注释总比写得少好。...也不。问题是虽然有很多评论描述代码正在做什么,但没有一个描述它为什么这样做。如果程序中存在错误并且您偶然发现这段代码,那么您将不知道从哪里开始。 12....管理人员甚至会认为,由于开发人员自己“决定”估算,他们承诺在截止日期前完成,因此截止日期应该被视为足够有效,以便与高层管理人员共享。

40520

如何处理前任程序员留下的代码

通过这三个测试,我们现在对现有代码的工作方式有大致的了解:如果一个人不到30岁,且每年赚$ 68,300,那么他被认为是成功人士。...例如,如果初始的工资阈值是每年75,000美元,而后来更改为我们的68,330美元,那么下面这个过时的测试可能会使我们误入歧途: ? 这个测试还是会通过的,但没有预期的作用。...通过的原因不是因为正好是阈值,而是因为超出了阈值。如果此测试组件包含这样一个测试用例:当薪水低于阈值1美元时,过滤器返回false,这样第二个测试将会失败,表明阈值是错误的。...另外,要查看代码和测试用例的存储库日志(即Git日志):如果代码的最后更新日期比测试的最后更新日期更近(对代码进行了重大更改,例如更改阈值),则测试可能已经过时,应谨慎查看。...几乎每个开发人员碰到过这样的场景,他或她看着别人的代码,自问自答:“为什么他/她要这样做?为什么他们不这样做?”然后花几个小时来得出本来只要原作者回答就能得到的结论。

56920

如何写出令人惊叹的设计文档?

工作过的其他公司中,没有一家对如何使用文档进行协作有这样深刻的理解。 这篇文章就是关于我在谷歌如何写设计文档的一个例子,这是一个真实的项目,用于在新冠疫情期间控制健身房现场人数。...即使在新冠疫情结束后不需要预约健身房,也可以访问GitHub上的源代码[1]。为了让这篇文章更有趣,现在每个人都可以在谷歌文档[2]上进行评论,而且谷歌文档的格式也比Medium支持的要好。...考虑到下面几点,认为浏览器自动化比模拟请求更好: [优点] 浏览器自动化启动了一个真实的浏览器实例,所以我们知道程序运行时发生了什么,使调试和开发更加容易。...考虑并测试了Chrome、Firefox和Safari,Safari和Chrome需要额外的步骤来使用相应的Selenium驱动程序,所以我选择Firefox。...一个有趣的事实 竞争确实非常激烈,通常在第1分钟预约结束。每个时段总共只有6个名额,毫无疑问,在早上6点预订是不可能的。

32120

适用于可扩展测试自动化框架的简洁编码实践

我们需要像对待其他应用程序开发项目一样对待这个项目。为了构建可伸缩的测试自动化框架,需要记住以下三个最重要的干净编码实践。 作为测试或SDET软件开发工程师,可以参与软件及其测试的开发。...因此,组织期望其SDET或测试自动化架构师设计和开发健壮,可维护的智能测试自动化框架。 但是,由于缺乏远见,许多自动化测试计划失败。...如果没有,那么您就设置代码复制的情况。 随着框架的增长,不必要的代码重复将导致更多的返工,维护成本将开始增加。在一个地方修复报告生成代码中的错误要比遍历整个框架、调试和修改代码要容易得多。...当我成长为热爱自动化的SDET时,意识到,当您在框架团队中工作时,不仅要取用不同团队的需求并使它们工作。 我们还需要从一开始考虑干净的编码原则。...最好检查彼此的代码,并确保在批准和合并代码之前遵循最佳编程实践。 这样,我们将为可扩展和可维护的健壮框架奠定基础。

48920

GitHub 上只卖5美元的脚本,却给我带来了一年数十万元报酬

“有一段时间感到内疚,好像有种在敲诈律师事务所的感觉,但最终说服自己,只要每个人开心,没有伤害。正在做他们雇做的事,所有的工作按时完成,开始享受的生活。” 怎么做到的?...而所采取的针对所在办公室的额外步骤的内容,省略。” 当你用程序代替自己工作, 需要告诉老板吗?...“觉得所有这些类型的帖子教会的是需要 1)学习如何编码和 2) 找到一份悠闲的办公室工作。” 获得最多赞同的第一热评则说,“将你的工资看成是自动化程序的订阅服务,哈哈。...2016 年 Reddit 上也有一个程序员分享说自己在过去 6 年内实际工作时间可能只有 50 个小时,因为入职 8 个月后就把全部工作自动化了。第六年老板意识到这个事情后,就把他解雇。...,有可能会损害公司利益,因此可以不必告诉公司自动化程序的事情,但不能不诚实。

32410

如何正确执行功能API测试

本文将讲述更多API测试以及如何使其最佳运行。 API或应用程序接口是一种通信方法系统,使开发人员和非开发人员能够访问程序,过程,函数和服务。API中使用的最常见协议是HTTP以及REST架构。...理想情况下,在编程时,开发人员会形成一个“API契约”,描述了如何使用API中开发的服务。 在此标准化之前,编程就像狂野西部的草原放飞自我。...这样可以确保没有任何机会,所有参数和排列经过测试。试图测试其API的敏捷开发小组可能会测试一个或两个正面测试流程,或者一个正面测试流程和一个负面测试流程,并称之为成功。...但这不是彻底的API测试,并且为不必要的发布风险打开了大门,因为错过了许多变体并且未实现完全验证。 例如,假设API采用作者姓名和图书发布日期。将测试名称和日期,看看它们是否有效。...例如,插入一个正确的日期但没有书,或更改日期格式,或一年中不存在的正确日期格式,或长名称,或插入向数据库授予数据的SQL代码等。这些仅是需要测试的许多变体中的一些示例,即使它们未在合同中涵盖。

1K20

开始使用 TaskBoard 吧,一款轻量级看板

每年年初似乎都有疯狂的冲动想提高工作效率。新年的决心,渴望开启新的一年,当然,“抛弃旧的,拥抱新的”的态度促成了这一切。通常这时的建议严重偏向闭源和专有软件,但事实上并不用这样。...image.png 安装只需要解压 Web 服务器上的文件,运行一两个脚本,并确保目录可正常访问。第一次启动时,你会看到一个登录页面,然后可以就可以添加用户和制作看板。...你还可以将用户分配给指定看板,这样每个人只能看到他们需要查看的看板。 用户管理是轻量级的,所有帐户都是服务器的本地帐户。你可以为服务器上的每个用户设置默认看板,用户也可以设置自己的默认看板。...当有人在多个看板上工作时,这个选项非常有用。 image.png TaskBoard 还允许你创建自动操作,包括更改用户分配、列或卡片类别这些操作。...例如,在下面的截图中,如果将卡片分配给 “admin” 用户,那么的颜色将更改为红色,并且当将卡片分配给我的用户时,其颜色将更改为蓝绿色。

72630

BI技巧丨均值之上

厕所! BOSS:哎哟!这个时候扫什么厕所啊,把他给我喊过来! ...... 白茶:(手湿漉漉的往身上擦了擦)BOSS你喊啊!...BOSS:(捂鼻子)那个,是介样子,咱们是个小企业,每年呢业务上也没有一个固定的目标,年度汇报也就是想看一下每年的均值,现在想看看一年里有哪些月份是均值之上,哪些是均值之下,这个能搞不?...白茶:(下意识挠挠头)能搞是能搞,但是还得扫厕所呢! BOSS:哎呦,你抓紧弄,能整出来替你扫厕所! 白茶:好嘞!...[strip] 实际生活中,有很多公司发展到一定阶段开始注意每年的经营分析,那么经营分析的参照点是什么?...那么如何计算每年的均值呢?

44860

Jenkins持续集成「编译打包、代码检查、单元测试、环境部署、软件测试​」

可能出现 2 个人都要更改这个文件。或者更改 A 和 B,但是的 A 当中是有引用 B 的。每天都要提交代码。...复杂度越高就意味着这个函数太难懂了,问题的可能性也非常大。 如果复杂度偏高,那你就要想办法将这个偏高的函数想办法将它简单化,降低的复杂度,这样的流程以及 bug 方面就不会有那么多。...发布、部署测试版本的时候不需要去找环境管理人员,直接在 Jenkins 平台上点击触发下这个工程构建 Ok 。...部署过程中会涉及各种操作,会涉及 python 脚本、shell 脚本,还用到上传的软件(vpm\ftp),全看自己公司内部是怎么做的。知道流程之后,再想想每一步代码如何实现。...如何在 Jenkins 平台搭建自动化测试?请看《Jenkins使用介绍》一文。 当然这里也需要有 svn\git,互相管理下,这样无论在哪个环境去做自动化测试,脚本都是可以执行的。

57720

WordPress SEO:关键字调查

如果你用谷歌搜索关键字看到描述这个主题的内容极少,那么这个是好的关键词。下面是常用的关键词调查和查找工具 。...油管视频的关键字 如何用数据线手机连接手提电脑…… ? 上图下拉显示的很多关键字,这意味着可能有大量的搜索量(但在排名方面也颇具竞争力)。...人们正在搜索最新的插件设置,设置年份(在页面标题,seo标题和元描述中)以获得更多流量(不要在网址设置),因为这样会导致每年更改一次URL很痛苦也影响排名) Moz关键字资源管理器 为确保不错过谷歌输入框下拉自动填充的任何关键字...如果文章对时间敏感则在SEO标题+元描述中使用日期可以增加点击率同时优化日期关键字 最主要的是在页面标题,SEO标题,元描述中包括日期(年)。...2018年Facebook营销策略 定位多个关键字 你要做主要关键字的同义词调查,然后将这两个关键词合并到你的页面标题,SEO标题和元描述中。

81520

Serverless比你预期要贵得多

在本文,想谈谈 Serverless 和它的主要替代方案——微服务(容器化)架构,它们之间的实际区别。...由于大多数工作负载非常“火爆”,因此即使是用 Lambda 托管一个非常流行的服务,你也只需要支付不到 100 美元每年。...每年 500 美元的容器会由一名每年 75000 美元的开发者维护。 实际上,人力成本是很多公司低估的。如果你有一个本地无法复现的 bug,开发人员使用一个闭源的 AWS 账户会很难复现和调试。...这个数字已经是最初成本差异的 4 倍。 相反,一个容器架构可能完全运行在一个开发人员的电脑上,因此每个开发人员都可以在他们自己的笔记本上重现 bug,而不必使用一个演示(staging)环境。...容器化架构更容易进行测试,因为你可以在单个 VM 中运行。想要运行持续集成,serverless 架构需要请求你的云服务商为每次更改进行部署。

49620

Sprint如何让你慢下来:一种更好的软件构建方式

过去 12 年来,一直在经营一家软件公司,在此之前,学习软件工程,并获得了计算机科学博士学位(编程系统)。...这种想法忽略这样一个事实:开发软件从根本上不同于其他业务实践,使其不适合截止日期。...没有每日站立会议,也没有不必要的沟通。而且,由于工程师控制着整个堆栈的实现,因此他们可以对如何构建其功能做出原则性的工程决策,而不是受他们碰巧拥有的代码库部分的限制,从而提供更具凝聚力的实现。...他们不必因为早先的截止日期而自己扑灭自己点燃的火。他们更自由地协作,因为他们不必权衡帮助同事和自己头上的截止日期。而且,由于他们没有被孤立在代码库的某个特定部分,因此他们不断学习新概念并应对新挑战。...我们不会放任自流,让每个人走自己的路。我们只是不会设定会损害工作质量(和乐趣)的任意截止日期。 另一个常见问题是我们如何承诺在特定日期向客户交付特定功能,答案是我们不承诺。

9110
领券