软件工程实践书籍推荐

推荐软件工程实践书籍

Scrum转型想要做好,第一步先了解并真正落实Scrum,那么我推荐的Scrum书籍是要看懂并实践的。第二步是团队的工程实践要做扎实。

下面推荐工程实践书单:

  • 重构:改善既有代码的设计
  • 解析极限编程 : 拥抱变化
  • 代码整洁代码
  • 程序员的职业素养
  • 修改代码的艺术
  • 编写可读代码的艺术
  • 测试驱动开发 : 实战与模式解析
  • Cucumber:行为驱动开发指南
  • 实例化需求
  • 驯服烂代码

重构:改善既有代码的设计

作者:Martin Fowler
出版社:人民邮电出版社
译者:熊节
链接:https://item.jd.com/12584498.html
内容简介:

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。

本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。

解析极限编程 : 拥抱变化

作者:Kent Beck / Cynthia Andres
出版社:机械工业出版社
译者:雷剑文 / 李应樵 / 陈振冲
链接:https://item.jd.com/31536602426.html
内容简介:

极限编程(XP)是适用于中小型团队在需求不明确或者迅速变化的情况下进行软件开发的轻量级方法学。本书是XP宣言,也是第一本有关XP的图书。

这本书介绍了XP背后的思想——它的根源、哲学、情节等。它将帮助读者选择是否在项目中使用XP时做出明智的决策。本书的另一个目的是帮助那些已经在使用 XP的读者更好地理解它。 对程序员而言,XP做出的承诺是他们每天能够处理真正重要的工作,而不必单独面对令人担忧的状况。他们将能够集中全力来使他们的系统获得成功。他们将做出最适合由他们来做的决策。对于客户和管理人员而言,XP的承诺是他们将从每个编程周期中获得最多的利益。他们将能够在开发的中途更改项目的方向而不用承担太高的成本。

本书适合所有软件开发人员、管理人员参考。

代码整洁之道:程序员的职业素养

作者:罗伯特·C.马丁 (Robert C.Martin)
出版社: 人民邮电出版社
原作名: The Clean Coder:A Code of Conduct for Professional Programmers
译者: 余晟 / 章显洲
链接:https://item.jd.com/11977659.html
内容简介:

  1. 汇聚编程大师40余年编程生涯的心得体会
  1. 阐释软件工艺中的原理、技术、工具和实践
  2. 助力专业软件开发人员具备令人敬佩的职业素养

成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。他们之所以能够成功,是因为拥有一个共同点,都深切关注创建软件所需的各项实践。他们将软件开发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,他们具有职业素养。

软件开发大师Robert C. Martin在书中介绍了真实软件技艺中的各项原则、技术、工具和实践,展示了怎么以自豪、自尊和自信的心态进行软件开发,怎么取得卓越表现和丰硕成果,怎么做到有效沟通和确切估算,怎么以坦诚的心态面对困难,并引导读者认识到专业程序员肩负的责任重大,阐述了什么才是程序员的职业素养。

书中的具体内容包括:

● 成为真正的软件专业人士需要具备哪些条件,如何应对彼此冲突又紧张的进度表和不近情理的管理人员;

● 如何做到流畅编程,克服阻塞状态;

● 如何应对无休止的工作压力,避免崩溃;

● 如何培养坚持不懈的态度,如何拥抱新的开发范式;

● 如何管理好时间,避免身陷泥潭无法自拔;

● 如何培育有利于程序员和开发团队茁壮成长的环境;

● 什么时候应该说“不”,怎么说;

● 什么时候应该说“是”,承诺意味着什么。

软件强大、优雅而实用,让人惊叹不已,不论是开发者还是用户都乐于使用这样的软件。它们并非是由机器编写出来的,而是出自那些对软件技艺拥有坚定信念的专业软件开发者之手。本书将帮助读者成为专业软件开发者中的一员,并赢得只有他们才能拥有的荣誉感和成就感。

修改代码的艺术

作者: (美)Michael C. Feathers
出版社: 机械工业出版社
原作名: Working Effectively with Legacy Code
译者: 侯伯薇
链接:https://item.jd.com/12251466.html
内容简介:

世界级计算机专家Michael C. Feathers的经典之作,软件开发大师Robert C. Martin作序倾情推荐,修改遗留代码的权威指南。深入剖析修改遗留代码的各种方法和策略,从理解遗留代码、为其编码测试、重构及增加特性等方面给出大量实用建议,是所有程序开发人员必读之作。

修改代码时,你觉得容易吗?当你修改代码时,能否几乎即时地获得反馈?你理解那些代码吗?如果对于这些问题的答案是否定的,那么你面对的就是遗留代码,它们正在浪费你开发工作的时间和金钱。

在本书中,作者为更有效地处理大规模、缺少测试的遗留代码提供了自始至终的策略。本书内容来自Michael创建的非常知名的Object Mentor公司的研习会,Michael使用那些技术来指导并帮助了成千上万位开发者、技术经理和测试人员,让他们的遗留系统处于可控状态。

本书主要内容:

理解修改软件的机制:添加特性、修正缺陷、改进设计、优化性能

把遗留代码放到测试用具之中

编写测试,防止引入新的问题

包含Java、C++、C和C#的示例,其中介绍的大多数技术适用于其他任何语言或平台

精确地确定要在哪些地方修改代码

处理非面向对象的遗留代码

处理看起来没有任何结构的应用程序

编写可读代码的艺术

作者: Boswell, D. / Foucher, T.
出版社: 机械工业出版社
原作名: The Art of Readable Code
译者: 尹哲 / 郑秀雯
链接:https://item.jd.com/11020839.html
内容简介:

细节决定成败,思路清晰、言简意赅的代码让程序员一目了然;而格式凌乱、拖沓冗长的代码让程序员一头雾水。除了可以正确运行以外,优秀的代码必须具备良好的可读性,编写的代码要使其他人能在最短的时间内理解才行。本书旨在强调代码对人的友好性和可读性。

本书关注编码的细节,总结了很多提高代码可读性的小技巧,看似都微不足道,但是对于整个软件系统的开发而言,它们与宏观的架构决策、设计思想、指导原则同样重要。编码不仅仅只是一种技术,也是一门艺术,编写可读性高的代码尤其如此。如果你要成为一位优秀的程序员,要想开发出高质量的软件系统,必须从细处着手,做到内外兼修,本书将为你提供有效的指导。

主要内容:

简化命名、注释和格式的方法,使每行代码都言简意赅。

·梳理程序中的循环、逻辑和变量来减小复杂度并理清思路。

·在函数级别解决问题,例如重新组织代码块,使其一次只做一件事。

·编写有效的测试代码,使其全面而简洁,同时可读性更高。

测试驱动开发 : 实战与模式解析

作者: Kent Beck
出版社: 机械工业出版社
副标题: 实战与模式解析
原作名: Test-Driven Development: by Example
译者: 白云鹏
链接:https://item.jd.com/11315541.html
内容简介:

本书是测试驱动开发领域的开山之作,由软件工程领域泰斗、极限编程之父Kent Beck撰写,荣获第14界Jolt大奖,10余年畅销不衰,具有里程碑意义。书中不仅以案例的形式呈现了测试驱动开发的原则和方法,而且详尽地阐述了测试驱动开发(TDD)的模式和最佳实践。

本书共32章,分为三大部分。第一部分(第1~17章)从简单问题入手,介绍了TDD的概念、优势与设计方法,再逐步深入到解决复杂问题的方式;细致讲解了如何在编写程序代码前编写自动化测试,如何先塑造一个设计再通过重构逐渐添加设计上的构思,如何为更复杂的逻辑创建测试等。第二部分(第18~24章)讲解用xUnit创建测试的实例,介绍如何利用xUnit框架创建自己的测试用例,便于高效地进行测试。第三部分(第25~32章)介绍TDD的设计模式,包括部分经典的设计模式以及如何将这些模式与TDD相结合,还介绍了重构的方法,以及TDD中的特殊问题等。本书从始至终贯穿了两个TDD项目,展示了如何轻而易举且卓有成效地编写优质代码的技术。

代码整洁之道

作者: [美] Robert C·Martin
出版社: 人民邮电出版社
原作名: Clean Code: A Handbook of Agile Software Craftsmanship
译者: 韩磊
链接:https://item.jd.com/10064006.html
内容简介:

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。

本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。

Cucumber:行为驱动开发指南

作者: [英]Matt Wynne / [挪]Aslak Hellesy
出版社: 人民邮电出版社
原作名: The Cucumber Book:Behaviour-Driven Development for Testers and Developers
译者: 许晓斌 / 王江平
链接:https://item.jd.com/11266246.html
内容简介:

《cucumber:行为驱动开发指南》的两位作者是matt wynne和aslak hellesy,前者是cucumber最有经验的用户和贡献者之一,后者是cucumber的创始人,因此,《cucumber:行为驱动开发指南》是一本权威指南,它会提供使用cucumber所需的全部知识,让你和你的团队自信地开启cucumber之旅。尽管cucumber诞生于ruby社区,但你可以用它测试几乎所有系统,从简单的shell或perl脚本,到使用php、java或任何其他平台编写的web应用。

书中将展示如何用一组清晰、可执行且团队中任何人都能读懂的规格说明来表达用户那些天马行空的想法。你将学会如何将这些示例提供给cucumber,并让它指导你的开发过程。《cucumber:行为驱动开发指南》的第一部分会提供cucumber入门所需的全部知识,引导你从cucumber的核心特性起步,通过cucumber的gherkin dsl,使用自然语言来描述客户想要的系统行为,然后带你编写ruby代码来解释这些自然语言描述的规格说明并据此来验证应用的行为。第二部分将通过一个可以工作的例子来巩固学到的知识,同时学习一些更高级的cucumber技术,还将学习如何测试异步系统和使用数据库的系统。第三部分提供了一些解决问题的方法,针对的都是作者曾帮助其他团队解决过的最困难、最常见的问题。基于这些模式和技术,你将学习如何使用capybara和selenium测试大量使用ajax的web应用,测试rest web服务、ruby on rails应用、命令行应用、遗留程序等。

cucumber有助于在软件团队中的技术人员和非技术人员之间架起沟通的桥梁。《cucumber:行为驱动开发指南》的内容既适合开发人员和测试人员阅读,也适合软件团队中的非技术读者阅读。

实例化需求

作者: Gojko Adzic
出版社: 人民邮电出版社
副标题: 团队如何交付正确的软件
原作名: Specification by Example:How Successful Teams Deliver the Right Software
译者: 张昌贵 / 张博超 / 石永超
链接:https://item.jd.com/30336762.html
内容简介:

《实例化需求:团队如何交付正确的软件》是在世界各地调查了多个团队软件交付过程后的经验总结。《实例化需求:团队如何交付正确的软件》介绍了这些团队如何在很短的周期内说明需求、开发软件,并交付正确的、无缺陷的产品;为团队在实施实例化需求说明时使用的模式、想法和工件创建了一致的语言;展示了案例中的团队用来实现实例化需求说明原则的关键性实践;并在案例分析部分展示了一些团队实施实例化需求说明的历程。

《实例化需求:团队如何交付正确的软件》适合与项目管理、开发、测试、交付有关的人员阅读。

驯服烂代码

作者: 伍斌
出版社: 机械工业出版社
副标题: 在编程操练中悟道
出版年: 2014-11
链接:https://item.jd.com/11576919.html
内容简介:

Kent Beck、Martin Fowler、Michael C. Feathers、Robert C. Martin、Joshua Kerievsky、Gerard Meszaros等大师们的传世著作为如何提升编程技艺和代码质量提供了思想和原则上的指导,本书则为实践和融合这些思想、原则提供了过程和方法上指导。本书通过编程操练的方式讲述了如何用TDD(测试驱动开发)的方法来驯服烂代码,通过结对编程的对话形式展示了驯服烂代码的完整过程,将驯服烂代码所需要的思想、态度、习惯、方法和技艺完全融入编程操练实践中,是目前最具实践指导意义的驯服烂代码的著作。

全书共20章,分为四个部分:第一部分(第1~10章)首先通过测试后行和测试先行两种方法完成了一个名为“码农酒店”(世界时钟)的编程操练题目,然后对这两种方法进行对比,引出了烂代码的概念,读者能非常直观看出哪一种方法更容易写出烂代码。第二部分(第11~15章)通过一个名为Trivia(答题闯关游戏)的经典编程操练题目详细讲述了驯服一段烂代码的过程,首先讲解了代码腐臭的识别和记录,然后讲解了如何通过一系列的重构来清除这些腐臭。第三部分(第16~18章)通过三个编程操练题目详述了编写真正的单元测试的过程,首先讲解了用提取接口的办法编写Stub来进行单元测试,以及用子类化并覆写方法的办法编写Mock来进行单元测试,然后讲解了如何将被测类与文件系统之间的这种不适用于单元测试的耦合,转化为被测类与字符串之间这种适合与单元测试的耦合。第四部分(第19~20章)总结了驯服烂代码的步骤及方法,首先讲解了TDD开发方法的一种实现:I-EPP-TR方法,该方法中的全面重构的概念对传统的重构概念进行了扩展,然后讨论了如何才能将前面所讨论的良好的编程方法形成习惯并固化下来。

思考

敏捷转型想要真正提升效能,不采用工程实践是不可能的。这次推荐的书单都是非常值得认真阅读的。

行动

关于工程实践,你还有哪些书推荐?

每日问题

  • 最近一周你看过的有意思的书是什么?

与BoB面对面

关于作者

BoB Jiang

  • 中国北方的第一位CST(Certified Scrum Trainer)
  • 敏捷变革中心(Center for Agile Transformation)合伙人
  • Bob的博客、《Scrum精髓》译者
  • 欢迎加入自由职业者俱乐部 微信群,请加微信:
  • hiblocknet ; 添加微信后,发送消息 dream

版权声明

本文采用 CC BY-NC-SA 3.0 许可协议

转载请注明出处!

Comments
Write a Comment