《持续交付--发布可靠软件的系统方法》,英文名《ContinuousDelivery:ReliableSoftwareReleasesthroughBuild,Test,andDeploymentAutomation》,原作者:(英)JezHumble、(英)DavidFarley,翻译:乔梁,出版社:人民邮电出版社,ISBN:9787115264596,PDF格式,大小47MB。
内容简介:《持续交付--发布可靠软件的系统方法》是一本软件工程师的职场指南,以大量虚构的名字和情景描述了极客的日常工作,对他们常遇到的各类棘手问题给予了巧妙回答。
作者以自己在苹果、网景等公司中面临的生死攸关的时刻所做的抉择为例,总结了在硅谷摸爬滚打的经验,旨在为软件工程师更好地规划自己的职业生涯提供帮助。
  《持续交付--发布可靠软件的系统方法》适合软件工程师以及所有职场人士阅读。
目录:《持续交付--发布可靠软件的系统方法》第一部分 基础篇第1章 软件交付的问题 21.1 引言 21.2 一些常见的发布反模式 31.2.1 反模式:手工部署软件 41.2.2 反模式:开发完成之后才向类生产环境部署 51.2.3 反模式:生产环境的手工配置管理 71.2.4 我们能做得更好吗 81.3 如何实现目标 91.3.1 每次修改都应该触发反馈流程 101.3.2 必须尽快接收反馈 111.3.3 交付团队必须接收反馈并作出反应 121.3.4 这个流程可以推广吗 121.4 收效 121.4.1 授权团队 131.4.2 减少错误 131.4.3 缓解压力 151.4.4 部署的灵活性 161.4.5 多加练习,使其完美 17.1.5 候选发布版本 171.6 软件交付的原则 191.6.1 为软件的发布创建一个可重复且可靠的过程 191.6.2 将几乎所有事情自动化 191.6.3 把所有的东西都纳入版本控制 201.6.4 提前并频繁地做让你感到痛苦的事 201.6.5 内建质量 211.6.6“done”意味着“已发布” 211.6.7 交付过程是每个成员的责任 221.6.8 持续改进 221.7 小结 23第2章 配置管理 242.1 引言 242.2 使用版本控制 252.2.1 对所有内容进行版本控制 262.2.2 频繁提交代码到主干 282.2.3 使用意义明显的提交注释 292.3 依赖管理 302.3.1 外部库文件管理 302.3.2 组件管理 302.4 软件配置管理 312.4.1 配置与灵活性 312.4.2 配置的分类 332.4.3 应用程序的配置管理 332.4.4 跨应用的配置管理 362.4.5 管理配置信息的原则 372.5 环境管理 382.5.1 环境管理的工具 412.5.2 变更过程管理 412.6 小结 42第3章 持续集成 433.1 引言 433.2 实现持续集成 443.2.1 准备工作 443.2.2 一个基本的持续集成系统 453.3 持续集成的前提条件 463.3.1 频繁提交 463.3.2 创建全面的自动化测试套件 473.3.3 保持较短的构建和测试过程 473.3.4 管理开发工作区 493.4 使用持续集成软件 493.4.1 基本操作 493.4.2 铃声和口哨 503.5 必不可少的实践 523.5.1 构建失败之后不要提交新代码 523.5.2 提交前在本地运行所有的提交测试,或者让持续集成服务器完成此事 533.5.3 等提交测试通过后再继续工作 543.5.4 回家之前,构建必须处于成功状态 543.5.5 时刻准备着回滚到前一个版本 553.5.6 在回滚之前要规定一个修复时间 563.5.7 不要将失败的测试注释掉 563.5.8 为自己导致的问题负责 563.5.9 测试驱动的开发 573.6 推荐的实践 573.6.1 极限编程开发实践 573.6.2 若违背架构原则,就让构建失败 583.6.3 若测试运行变慢,就让构建失败 583.6.4 若有编译警告或代码风格问题,就让测试失败 593.7 分布式团队 603.7.1 对流程的影响 603.7.2 集中式持续集成 613.7.3 技术问题 613.7.4 替代方法 6
2024/6/7 5:49:25 46.47MB 软件 软件规划 职业规划 持续交付
1
本教程讨论持续集成的基本问题:什么是持续集成,为什么需要它,它是如何工作的,以及CI环境中的开发步骤。
本教程讲解如何设置CI过程来建立一个可重复的可靠的构建过程。
您将学习如何正确地配置CI服务器,让它查询SCM存储库,并在探测到源代码中的修改时运行Ant构建过程。
还要学习如何运行自动的JUnit测试,以及如何用PMD和FindBugs进行软件检查。
最后,体会一下Hudson(一种出色的CI服务器)如何在问题发生时发出通知,最终帮助您更快速地构建可靠的软件。
本教程使用Hudson、Ant和Subversion作为框架,讲解持续集成的基本概念。
在学完这个一小时的教程时,您会理解持续集成的好处,以及
2024/6/1 7:34:37 1.62MB 通过持续集成尽早发现缺陷
1
这是《一书中使用的简单演示应用程序。
建立项目该项目是一个简单的多模块Maven项目。
要构建整个项目,只需从根目录运行mvninstall。
运行游戏该应用程序是的非常简单的在线版本。
要查看游戏的功能,mvninstall如上所述运行mvninstall,然后转到gameoflife-web目录并运行mvnjetty:run。
该应用程序将在。
运行验收测试验收测试是使用Webdriver和编写的。
它们旨在在正在运行的服务器上运行。
按照有关描述运行码头实例,然后在另一个窗口中,转到gameoflife-acceptance-tests目录并运行mvncleanverify。
测试报告将在target/site/thucydides目录中生成。
这本书使用Jenkins简化软件开发,Jenkins是流行的基于Java的开源工具,它彻底改变了团队对持续集成
2024/1/28 2:44:09 18.31MB HTML
1
上次介绍了开源项目如何利用TravisCI进行持续集成,但是如果你的项目不是开源项目,用TravisPro就需要交钱了。
如果不想交钱,可以自己搭建CI环境,利用JenkinsCI进行持续集成。
首先,我们从Jenkins官方网站https://jenkins.io/下载最新的war包。
虽然Jenkins提供了Windows、Linux、OSX等各种安装程序,但是,这些安装程序都没有war包好使。
我从未见过Jenkins这样把Java包做得如此简单的项目。
只需要运行命令:Jenkins就启动成功了!它的war包自带Jetty服务器,剩下的工作我们全部在浏览器中进行。
第一次启动Jenkins时,出于
2024/1/4 19:56:14 272KB 使用Jenkins进行持续集成
1
IBM2010-2011软件创新论坛的相关演讲片子。
开发管理如何制定有效的管理过程?持续集成与自动化构建如何实现需求驱动的质量管理应用开发:统一的需求管理用模型驱动的开发方法建立敏捷快速的团队协作确保Java应用开发和良好代码分析保证应用开发的全面质量开发解决方案总览系统工程最佳实践经验,敏捷开发经验软件交付经验等。
2023/12/5 1:41:45 1.67MB 过程 变更 需求 质量
1
作者:[英]MattWynne/[挪]AslakHellesy出版社:人民邮电出版社原作名:TheCucumberBook:Behaviour-DrivenDevelopmentforTestersandDevelopers译者:许晓斌/王江平这是一本半技术书籍,虽然是测试使用,但阅读它实在也需要一定的代码基础,所以可见,测试的技术含量越来越高了:D由于本人使用Java,所以忽略了12章以后的内容,由于它所使用到的那些框架都是基于Ruby。
本书分为3部分:1.基础2.进阶3.应用在第一部分,基础篇中,介绍了Gherkin语法,Cucumber的产生背景与适用范围,以及常见问题与解答。
Cucumber是一种系统行为的描述文件,它是活文档,应该时刻描述当前系统的正确行为,并且能够自动测试。
这一特性事实上也要求在写Cu..ber文件时,务必做到用户精准,不要重复场景,用书上的话来讲,就是同一句话,对且只对应系统中的唯一的一个行为。
Cu..ber主要用于在团队中进行沟通,语言必须能通用,要通用就要求隐藏技术细节,以自然语言去描述系统的行为,最经典的场景如:Given...When...Then...给定一定场景,当做什么操作时,会产生什么样的结果。
表格的使用,Backgroud关键字都是为了让特性文件能更简洁,也更易懂和富有表现力。
第二部分进阶篇中,介绍了一些高级的功能,比如:钩子和标签钩子是指@Before@After这种加上实现方法之前,在测试开始时和结束后执行一些特定的操作。
Cu...ber的步骤是全局的,同理,@Be..这类钩子也是全局的,Cu...ber的全局是大有深意的,因为它认为,特性中的所有有用步骤,只能对应一种系统的行为。
若需要让其支持单个场景,则需要对在钩子后面加上标签的方式。
标签同钩子形式相同,可以在场景和特性关键词上加标签。
对于特性(Feature)的标签,会加在每个场景上。
Cu...ber可以对一组标签进行测试。
Cu...ber测试中(可以推而广之到任何测试中),凡是有数据库参与,需要在测试之前保证数据库是干净的,并且当前测试不会遗留下数据影响到下一个测试。
可以使用事务和Truncate的方式来保证这点,实际上,只要测试环节所需要的数据都由Given中提供,则不会有问题。
第三部分讲应用,基本上都是基于Ruby的一些库,但11章的命令行使用方式还是很有意义的,Cu...ber本身就是一个命令行工具,通过命令行,可以对特性文件进行一些过滤,对输出格式进行定制,以及集成到持续集成中。
命令行命令可以使用帮助:--help一些重要的命令:--tags过滤标签--lines指定行执行xxx.feature:45指定行的另一种形式--format格式化输出如果真能把Cucumber用起来,用严肃的态度对待每一个步骤,以测试驱动开发,做出来的项目质量应该能大上一个台阶的,是个很好的工具。
2023/11/3 8:45:35 6.7MB 软件测试
1
kohana框架中文文档(详细版),php轻量级框架Kohana是一个PHP5的柱架。
它采用∫模型、视图、控制器组成的结构模式。
它的目标是为∫安全,轻量级和容易使用。
Kohana用户手册QAPI于册Kohana论坛Github仓库项目页面官方邮件列表:捐助可发邮件至kohana刨librelist,com我该选择什么版本的Kohana?■Kohana2.x和3.x的区别以及你该如何选择正确的版本安装和配置Kohana3.0■从Github安装设置生产环境去除index.php如何使用控制器和视图如何创建和使用控制器如何创建和使用视图■如何绑定和设置数据到视图在视图中设置和使用全局数据制作一个模板驱动的网站创建一个模板继承模板控制器■基本页面控制器路由和请求操作Kohana中的IC:请求工丿路由基础忽略溢出的路由建立一个路由和控制器来处理国际化的静态页面多语言路由建立子目录路由■创建一个自定义的404页面■内部和外部的不同请求如何重定向用户请求如何测试路由反向路由和分页如何使用数据库模块■如何打开和配置数据库模块用查询生成器产生CRUD用査询生成器来高级查询■构建复杂的SELECT语句用查询生成器分页如何关闭一个数据库连接Cookies和Sessions■(okies和Sessions的使用如何使用HTML类③Kohanahtml类是一个HM助手。
它用来帮助创建HⅦ元素如何转换一个特殊字符为HIM实体■如何创建一个文本或图像链接如何在一个新窗口打开链接如何生成一个很难被其他人检测到的cmail地址如何创建一个email链接如何创建一个css链接如何创建一个脚本链接如何显示一张图片如何设置属性如何使用文本类Kohanatext类是一个文木助于。
它用来帮助处理字符串如何限制一个字符串的单词数如何限带一个字符中的字符数如何轮换两个或更多字符串如何产生一个随机字符串如何把字符串中多个反斜杠变成单个的反斜杠■如何从一个字符串中过滤掉特定的词语■如何查找相似词语如何自动把URLs转成链接如何自动为文本块增加段落标签如何把字节格式转换成人们常用的格式如何使用URL类ohanaUrl类是一个Url助手。
它用来帮助处理Urls如何获得你网站的基AUr1如何生成网站Ur1s如何生成查询字符串如何生成友好的rl标题字符申如何使用表单类③KohanaForm类是一个表单助于。
它用米帮助处理HML表单元素如何打开和关闭一个表单如何创建一个Input域如何创建一个隐藏域■如何创建一个密码域如何创建一个文件上传域■如何创建一个多选框如何创建一个单选框■如何创建一个文本区域如何创建一个选择域和下拉菜单■如何创建一个表单按钮如何创建表单标签表单验证如何使用日期类Kohanadate类是一个表单助手。
它用来帮助处理HTM.表单元素确定时区间的偏移(秒)获得一天,小时,分钟所包含的秒,分,小时获得所给时间处于上午还是下午转换一个非24小时数字为24小时数字■获得一个月有几天获得一年有几个月■获得起始年到终止年中的年份,并转换为数组获得两个时问戳之间的时差获得所给出时间和现在的差异转换UNIX和DOS的时间戳其他Kohana类在Kohana中使用数组(数组类)在Kohana中进行远程调用■使用Atom和RSSFeeds使用文件使用数字使用偏转器国际化设置和文件结构如何设置默认语言设置和检索语言字符中翻译消息多语言网站实例使用ORM对象建模■OM实例③oRM概述(经由jheathco维基百科仓库)OGithub.com/Kohana上的OM教程使用Sprig对象建模③Sprig概述(经由shadowhand仓库)■获得对象列表(finda1)■用Sprig用户模型来认证用Sprig用户模型使用sprig-auth来认证■验证一个Sprig模型通过AJAX来验证一个Sprig模型使用Je1ly对象建模■主要的Jelly文章http://jelly.jonathan-geiger.comJely认证@htp:/githuh.com/raeldc/jely-auth如何使用Auth模块继承Modeauthuser类在控制器中使用身份认证模块提示和技巧如何更好的在Kohana控制器中使用图片如何使用分页模块⑨用Capistrano部署Kohana应用如何使用Hudson安装持续集成■Kohana的命令行CLI用法
2023/10/1 22:01:01 3.81MB php 手册
1
circleci-hello-world-nodejs(活泼的名字,circleci-hello-world-nodejs!)一个简单的node.js“helloworld”应用程序,用于演示Circle-CI上的持续集成和部署(CI/CD)!看看在哪里使用GOTO:::winking_face:
1
唯品会现状唯品会PaaS功能点唯品会PaaS选型唯品会PaaS架构唯品会构建部署流程唯品会PaaS定制遇到的问题唯品会PaaS使用情况
2023/9/23 15:06:11 925KB docker
1
无加密版本。
如网盘失效请评论说明。
我会补新的网盘。
您可以再次下载。
不需要积分的本课程设计的技术及工具如下:后台服务架构:dubbo、spring-boot、springmvc、spring-security-oauth2、spring-ldap、spring-data-jpa等项目管理工具:maven、nexus版本管理工具:gitlab、git数据库:mysql、mongodb运维监控工具:Open-Falcon日志管理工具:ELK持续集成工具:Jenkins协作工具:confluence缓存:redis消息两头件:kafka、rocketmqweb服务器:tomcat、nginx容器引擎:docker
2023/2/21 21:39:24 130B jenkins elk kafka
1
共 31 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡