获得Jolt 大奖的《持续交付》作者David Farley又一新作《现代软件工程》

戴维 ·法利 (David Farley) 是持续交付的先驱、思想领袖, 也是持续交付、 DevOps、 测试驱动开发和软件开发领域的专家。

从现代计算的早期开始,戴维曾担任过程序员、软件工程师、系统架构师和成功团 队的领导者,他掌握了计算机和软件开发的基本原理,并形成了开创性的方法,改变了 开发人员和团队的工作方式。他挑战了传统的思维方式, 带领团队开发了世界级的软件。

戴维是获得 Jolt 大奖的《持续交付:发布可靠软件的系统方法》一书的作者之一, 是一位受欢迎的会议演讲者, 并在 YouTube 上运营着广受欢迎的“持续交付”频道, 主 题是软件工程。他建立了世界上速度最快的金融交易所之一,是行为驱动开发的先驱, 是《反应式宣言》 (The Reactive Manifesto) 的作者之一, 并凭借 LMAX Disruptor 获得了 杜克开源软件奖。

戴维热衷于通过咨询、 YouTube 频道和培训课程分享他的专业知识,帮助世界各地 的开发团队改进软件的设计,提高软件的质量和可靠性。

戴维 ·法利 (David Farley)新书:现代软件工程:如何高效构建软件

本书探讨了软件工程的真正含义,汇集了一些重要的软件开发基本原则,将它们紧 密结合成一个一致的模型,旨在帮助读者有效、快速地构建软件。全书共 4 个部分:第 1 部分探讨软件工程的真正含义, 以及如何将工程的原则和原理应用到软件开发中; 第 2 部分讲述运用科学思想优化软件开发过程的方法,包括迭代式、增量式工作,获得并利 用快速、高质量的反馈,采用实验性和经验主义的科学方法;第 3 部分介绍管理软件复 杂性的方法,深入探讨模块化、内聚力、关注点分离、信息隐藏和抽象、管理耦合等原 则;第 4 部分介绍支持软件工程的工具,以及一些贯穿本书的软件开发理念,包括可测 试性、可部署性、速度、控制变量、持续交付等。


本书适合对软件工程和软件开发团队管理感兴趣的人士阅读,也可作为软件工程相 关课程的参考教材。

这本书包含开发代码的混乱现实,或者应该说是软件工程的混乱现实:没有单一的 正确答案。没有什么东西是一成不变的。在某个时间点上正确的事情,有时甚至在很短 的时间之后,就会变得非常错误。

这本书的前半部分为我们提供了切实可行的解决方案,我们不仅可以在这样的混乱现实中存活下来,而且可以在其中得到发展。 后半部分讨论了可能被一些人认为抽象或者学术性的话题,并展示了如何应用它们来设计更好的代码(例如,更健壮、更可维护 或具有其他“更好的”特性的代码)。

在这里, 设计绝对不是指一页又一页地设计文档或 UML (统一建模语言) 图, 而是 简单得就像“在编写代码之前或编写过程中思考一下代码”一样。 (当我和戴维结对编程 时,我注意到一件事,他花在实际输入代码上的时间非常少。事实证明,在写之前先思 考一下我们要写的东西,可以帮我们节省很多时间和精力。)

戴维不会回避或者试图解释共同使用这些实践时出现的任何矛盾, 或可能由单个实践引 起的潜在混乱。相反, 因为他花时间讨论了权衡和常见的混淆领域, 我发现自己第一次明白, 正是这些平衡和冲突创造了“更好的”系统。 这关乎于理解, 这些平衡和冲突都可以作为参 考,了解它们的成本和收益,把它们当作“镜头”,时不时“调调焦”,来反复检视代码/ 设计/架构,而绝不是简单地以二元的、非黑即白的、或对或错的逻辑来理解它们。

——特丽莎 ·吉(Trisha Gee),开发技术推广工程师和 Java 拥护者


现代软件工程:如何高效构建软件 前言(摘选)

本书将工程重新引入软件工程。在书中,我将描述软件开发的一种实用方法,它使 用自觉的理性、严谨的思考方式来解决问题。 这些理念是过去几十年我们把从软件开发 中习得的心法持续应用的结果。

在本书中,我定义了一个模型,用来说明我们是如何组织自己来创建优秀的软件, 以及如何高效地做到的,而无论规模大小,不管是真正复杂的系统还是简单的系统。

总有一些人做了出色的工作。我们受益于创新先驱,他们向我们展示了什么是可能 的。然而,近年来,我们的行业已经学会了如何更好地解释什么是真正有效的。我们现 在更好地理解了哪些想法更通用,可以被更广泛地应用,我们有数据支持这一认知。

我们可以更可靠、更好、更快地构建软件,我们有数据证明这一点。我们可以解决 世界级难题,我们也有许多项目和公司的成功经验来说明这一点。

这种方法汇集了一系列重要的基本思想, 而且建立在之前工作的基础上。在某种程度上,就新的实践而言,其中并没有什么新东西,但是我所描述的方法会将重要的思想 和实践结合成一个连贯的整体,并为我们建立软件工程行为准则提供依据。

这并不是将完全不同的思想随机结合在一起,而是将这些思想紧密地交织在一起, 使之相辅相成。当将它们结合在一起,并一致地应用到我们的思考、组织、工作开展中 时,它们对工作的效率和质量有着重大的影响。尽管每一个孤立的思想可能都是我们熟 悉的,但是将之结合是一种从根本上完全不同的思考,思考我们究竟在做什么。当这些 思想结合在一起,并被用作软件决策的指导原则时,它们代表了一种新的开发范式。

作为软件工程师,我们理所当然地期待一个针对软件的工程学科,能够帮助我们以 更高的质量和更高的效率解决我们面临的问题。

这样的工程学科还会帮助我们解决那些我们尚未想到的问题。这样一个学科的概念 必定是通用的、持久的和普遍的。

本书试图定义一个紧密相关的思想集合。我的目标是将它们组合成一个连贯的东西, 我们可以将其视为一个方法,一个可以影响我们(软件开发人员和软件开发团队)所做 出的几乎所有决策的方法。

软件工程作为一个概念, 如果要说它有什么意义的话, 那一定是为我们提供了优势, 而不仅仅是采用新工具的机会。

并非所有的思想都有同等价值。有好的思想,也有坏的思想,那么我们该如何区分 它们呢?什么样的原则能够帮助我们评估软件和软件开发中出现的新思想的价值,并判 定它是好还是坏呢?

任何思想如果可以被合理地归类为解决软件问题的工程方法,那么它都是普遍适用 的,而且是基础性的。本书就是关于这些思想的。你应该用什么标准来选择你的工具? 你应该如何组织你的工作?你应该如何组织你构建的系统和你编写的代码,来增加你成 功创建它们的机会?

本书有什么?

第 1 部分“什么是软件工程?”,首先看看工程在软件环境中究竟意味着什么。这是 关于工程的原则和原理,以及我们如何将这些原则和原理应用到软件中。这是软件开发 的技术原理。

第 2 部分“优化学习”,着眼于我们如何组织工作, 让我们在小步骤中也能取得进展。 我们如何评估我们是取得了良好的进展,还是仅仅在今天创造了明天的遗留系统?

第 3 部分“优化管理复杂性”,探讨管理复杂性所需要的原则和技术。本部分更深入地探讨每一条原则,以及它们对于构建高质量软件的意义和适用性,而无论软件性 质如何。

第 4 部分“支持软件工程的工具”,描述一些思想和工作方法, 这些思想和工作方法 可最大限度地增加我们的学习机会,增强我们在小步骤中取得进展的能力,以及在系统 增长时管理系统复杂性的能力。

本书以加灰底的形式在全书中贯穿了关于软件工程的历史和原理以及思想发展的内 容。这些插入的内容为本书中的许多观点提供了有益的背景。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/72962.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程导论09-人机界面设计

人机界面设计 人的因素 人的因素主要包括 人对感知过程的认识用户的技能和行为方式用户所要求完成的整个任务以及用户对人机界面部分的特殊要求。 人对感知过程的认识 人通过感觉器官认识客观世界,因此设计用户界面时要充分考虑人的视觉、触觉、听觉的作用。人…

软件开发相关书籍看这些就够了

本文分享以下软件开发类的书籍,附带PDF下载,但我建议你看纸质书。 以下是部分截图,有需要的关注“嵌入式软件实战派”回复books获取(限时分享)。 C/C类 1. C Primer第五版 久负盛名的经典,学习C必备&…

转型设计师常用的软件,推荐给大家

现在优秀的UI设计师是非常不好找的,所以如果想转行从事UI设计工作,好好学习实践其实这也是个不错的选择,我自己在大厂呆过2年,遇到不少非常优秀的UI设计人员,对于这些优秀设计人员的共同点呢,我总结了基本上…

谈谈过度设计

简单来说,过度设计就是进行了过多的面向未来的设计,进行了不必要的抽象封装,为系统增加了不必要的复杂度。 举个例子,你要做一个功能模块,但你考虑到到这个系统里还有几个未完成的模块和你要做的东西类似,所…

Java实现调用第三方相关接口(附详细思路)

目录 1.0.简单版2.0.升级版2-1.call.timeout()怎么传入新的超时值2-2.timeout(10, TimeUnit.SECONDS)两个参数的意思,具体含义 3.0.进阶版3-1.java.net.SocketTimeoutException: 超时如何解决 4.0.终极版 1.0.简单版 以下是一个使用 Java 实际请求“第三方”的简单示…

python客户端实现利用第三方smtp发邮件

上面采用的是qq邮箱,需要登录qq邮箱打开pop3 参考资料1(20条消息) Python使用SMTP协议实现邮件发送(含明文/SSL加密/TLS加密)_dev_zyx的博客-CSDN博客 参考资料2(20条消息) python实现smtp协议发送邮件_Clarence-CSDN博客

mathtype7 正版官网 宣布免费使用

地址:谷歌搜索去,后缀是com的 ,不是cn的。

MathType7应用中文版特色功能介绍

MathType 是由美国Design Science公司开发的功能强大的数学公式编辑器,它同时支持Windows和Macintosh 操作系统,与常见的文字处理软件和演示程序配合使用,能够在各种文档中加入复杂的数学公式和符号。2021年11月1日,MathType升级到…

MathType中/英文版下载地址汇总(适用于Mathtype6.9)

*本文不提供任何破解相关情报,仅提供官方下载地址,供word用户交流学习使用 一、中文官网 百度能直接找到的MathType中文版下载地址 https://www.mathtype.cn/xiazai.html 优点:简体中文网页,方便访问 缺点:只能下最…

mathtype7.4数学计算工具下载安装教程

很多朋友使用word写文档或者论文,但是又要插入很多数学计算公式的情况,使用word本身的公式和符号并不是很方便用,今天分享给大家一个实用的数学工具mathtype。 MathType软件可以选择下载Windows版本MathType 7或Mac版本MathType 7。MathType…

福音:IDEA、VSCODE神级插件Bito

文章目录 Bito是什么?IDEA环境安装注册使用 VSCODE环境疑难问题后叙 Bito是什么? Bito是一款在编程软件中使用的插件,由ChatGPT团队开发,它是ChatGPT团队为了提高开发效率而开发的一款工具。 Bito的AI帮助开发人员极大地提高了其…

用chargpt一分钟,一键生成PPT!

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 这是《ChatGPT 从入门到精通》第 13 篇基础教程 有同学留言,问:还有没有更简单的方法?更快的…

计算机专业英语公开课教案,8个维度,教你如何上好一节英语公开课

原标题:8个维度,教你如何上好一节英语公开课 理性看待公开课 公开课的主要功能是探讨教学规律,研究教学方法,推广教学经验,提升教学质量。具有展示和研究的双重性质,既可以用来赛课评奖,展示教师…

【英语:基础进阶_新闻美剧听说】G4.听力进阶—如何理解英美剧中的文化梗

英美剧中梗 的常见类型 双关梗节日梗名人梗习俗梗1.双关梗 1.1.双关语 Pun: the clever or humorous use of a word that has more than one meaning, or of words that have different meanings but sound the same 双关语是一种在特定的语言环境中, 巧妙利用语言中声音、意…

计算机专业英语公开课教案,如何上好一节优秀英语公开课?(附视频)

对青年教师来说,开一节公开课,如同完成一次蜕变,累掉一层皮,有着刻骨铭心的阵痛,但换来的是突飞猛进的专业成长。可以说,公开课是青年教师培训的有效途径,是名师培养的摇篮。下面,我…

分享一个边看视频就能边练口语的学习网站,超实用,不仅仅能学英语

“情感是一种智力,生活需要学习”,快节奏的生活中,我们最不能放下的就是学习,稍不注意就会和其他人脱节,好比一天不刷两个视频,看看新梗,你就不知道别人在说什么。盘哥最近每天睡觉前都会看半小…

六级备考6天|CET-6|听力第一二三四讲|复习回顾|长对话篇章|14:00~16:30

长对话 篇章 目录 听写笔记 练习讲义 听写笔记 1. 听力策略 听前:读题——分析文章——预测题目 听中:划出听到的内容——对应程度高为正确选项 听后:不听题目——往下读题 2. 重点词汇 proofread / ˈpruːfriːd / …

Lesson 25 Do the English speak English? 英国人讲的是英语吗?

1.原文 2. 参考译文 3. New words and expressions ★several quantifier 几个 several=a number of… 一些,只能修饰可数 several times 许多次(不能说some times) some 一些, 即可以修饰可数, 又可以修饰不可数 a great number of… 大量的some time …

推荐三个很赞的英语学习网

很多读者都知道我有在学英语,对英语蠢蠢欲动的同学,纷纷给我留言,问我是怎么学习的?有什么学习渠道、学习技巧之类的么?哪有啊,我也就是随意瞎学,没有任何技巧而言,我总觉得学习哪有…

英语学习打卡-美国语文1-4

水滴打卡 -美国语文 目录 十大词类: 第一篇 文章 单词 语法 生活场景 第二篇 单词 语法 生活场景 第三篇 单词 语法 生活场景 第四篇 单词 语法 生活场景 十大词类: 1,名词,Nouns (n.) 表示人或事物的名称 box,pen,tree,apple 2,代词…