《驯服烂代码》

《驯服烂代码》 《驯服烂代码》

在线试读

  • 书名:《驯服烂代码》:在编程操练中悟道
  • 分类:编程
  • 作者:伍斌
  • 出版社:机械工业出版社
  • 出版年:2014-11
  • 售价:69.00
  • 装订:平装
  • 页码:272

《驯服烂代码》 内容介绍:

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方法,该方法中的全面重构的概念对传统的重构概念进行了扩展,然后讨论了如何才能将前面所讨论的良好的编程方法形成习惯并固化下来。

作者伍斌介绍:

伍斌(英文名Ben) 资深软件技术专家,匠艺程序员,拥有超过20年的软件行业工作经验,在软件开发、软件测试、敏捷项目管理和软件开发咨询等诸多方面都有深厚的造诣,专注于测试驱动开发、驯服烂代码及编程操练,积累了丰富的经验。 活跃于Agile China、Scrum Gathering、敏捷之旅、CSDN、中国软件测试大会和InfoQ等组织和社区,曾经多次在这些平台举办的各种技术大会上发表与敏捷、测试和驯服烂代码相关的主题演讲,深受欢迎。此外,他还是 “北京设计模式学习组”(http://www.bjdp.org)的组织者和开创者,这是国内首家中文公益编程操练社区,他全身心投入到社区的运营中,希望能帮到尽可能多的程序员。有《测试驱动数据库开发》和《优质代码》等译著。

《驯服烂代码》 目录大纲:

目  录

前言
致谢
第1章 刻舟求剑的文档 1
第2章 按图索骥地编写代码 7
第3章 写main()方法测试一下 17
第4章 调试一下 24
第5章 用TDD重做编程操练题目 33
第6章 消除假数据所带来的重复代码 40
第7章 让下一个测试足够有意思 46
第8章 嗅出代码“腐臭”和新的测试点 55
第9章 测试后行 vs 测试先行 64
第10章 何谓“烂代码” 68
第11章 记录所闻到的“腐臭” 75
第12章 用测试描绘用户意图 89
第13章 分而治之——釜底抽薪 105
第14章 分而治之——抛砖引玉 118
第15章 打扫战场 134
第16章 分而测之——编写Stub及提取接口 169
第17章 分而测之——编写Mock及子类化并覆写方法 191
第18章 真正的单元测试 217
第19章 驯服烂代码的步骤:IePpTr 232
第20章 习惯出自专注、长期和用心的结对操练 238
附录A 编程操练简介 244
附录B 怎样在Windows系统中搭建编程操练环境 246
附录C 怎样在OS X系统中搭建编程操练环境 251
附录D 怎样在Linux系统中搭建编程操练环境 256


微信扫一扫关注公众号

0 个评论

要评论图书请先登录注册

你也许想看:

Docker源码分析

《Docker源码分析》

孙宏亮.机械工业出版社.2015-8-1

“本书是一本引导读者深入了解Docker实现原理的技术普及读物,主要目标是通过对Docker架构和源代码的详细讲解和解剖,...”

安全软件开发之道

《安全软件开发之道》

[美]John Viega,Gary Mcgraw.机械工业出版社.2014-3-20

“本书被誉为安全技术领域的“黄帝内经”,由安全技术大师亲力打造,畅销全球,数位安全技术专家联袂推荐。综合论述如何在软件开发...”

参数化逻辑构建过程

《参数化逻辑构建过程》

.江苏凤凰科学技术出版社.2015-6

“这是一本可以帮助想进入编程设计领域的设计者学习的手册。从内容上避免了对所有Grasshopper组件的详细解析,而将重点...”

解析极限编程

《解析极限编程》

[美] Kent Beck.人民邮电出版社.2002-6

“极限编程(XP)是一种经历过实践考验的轻量级软件开发方法学。《解析极限编程》是XP宣言,也是第一本有关XP的图书。 全书...”

The C++ Standard Library Extensions

《The C++ Standard Library Extensions》

Pete Becker.Addison-Wesley Professional.2006-7-31

“"TR1 roughly doubles the size of the C++ standard library, a...”

游戏编程全接触

《游戏编程全接触》

(美)Mike McShaffry.人民邮电出版社.2006-1

“本书从游戏是怎样一个行业到游戏业中形形色色的人;从细琐的技巧和算法,到游戏的结构和架构;从调试技巧到进度里程碑的创建和项...”

软件工程的事实与谬误

《软件工程的事实与谬误》

[美] Robert L. Glass.中国电力出版社.2006-1

“关于构建软件,我们理应知道许多东西,但是实际上却因为这样或那样的原因不知道,甚至我们想当然的一些看法实际上是显而易见的错...”

Advanced Linux Programming

《Advanced Linux Programming》

CodeSourcery LLC,Mark L. Mitchell,Alex Samuel,Jeffrey Oldham.New Riders.2001

“Advanced Linux Programming is divided into two parts. The fi...”

CSS揭秘

《CSS揭秘》

[希] Lea Verou.人民邮电出版社.2016-4

“本书是一本注重实践的教程,作者为我们揭示了 47 个鲜为人知的 CSS 技巧,主要内容包括背景与边框、形状、 视觉效果、...”

Mastering Python Regular Expressions

《Mastering Python Regular Expressions》

Félix López,Víctor Romero.Packt Publishing - ebooks Account.2014-2-26

“”

C++网络编程(卷1)

《C++网络编程(卷1)》

[美]Douglas C.Schmidt,Stephen D.Huston 著,於春景 译.华中科技.2004-6-1

“”

iOS 9 by Tutorials

《iOS 9 by Tutorials》

Aaron Douglas, Caroline Begbie, Chris Wagner, Derek Selander, Evan Dekhayser, James Frost, Jawwad Ahmad, Pietro Rea, Soheil Azarpour, Vincent Ngo.Razeware LLC.2015-10-7

“Learn the New iOS 9 APIs! iOS 9 introduces a ton of great ne...”

C++ Primer(第4版)习题解答

《C++ Primer(第4版)习题解答》

蒋爱军、李师贤、梅晓勇编.人民邮电出版社.2007-2

“《C++ Primer习题解答》为C++ Primer(第4版)的配套书籍,根据C++ Primer(第4版)中所介绍的...”

iOS 7 Programming Cookbook

《iOS 7 Programming Cookbook》

Vandad Nahavandipoor.O'Reilly Media.2013-10-30

“”

iOS Drawing

《iOS Drawing》

.Addison-Wesley Professional.2013-10

“Covers iOS 7 and Xcode 5 Apple lavished iOS with a rich and ...”

Unreal Development Kit Game Programming with UnrealScript

《Unreal Development Kit Game Programming with UnrealScript》

Rachel Cordone.Packt Publishing.2011-12-15

“”

MacRuby

《MacRuby》

Matt Aimonetti.O'Reilly Media.2011-7-15

“Want to develop apps for the iPhone and iPad, but prefer to ...”

Windows黑客技术揭秘与攻防Ⅰ

《Windows黑客技术揭秘与攻防Ⅰ》

.中国铁道出版社.2010-9

“《Windows黑客技术揭秘与攻防1·C语言篇》对目前流行的Windows黑客编程技术逐一进行讲解,揭开黑客编程的神秘面...”

Swifter(第二版) : 100 个 Swift 2 开发必备 Tip

《Swifter(第二版) : 100 个 Swift 2 开发必备 Tip》

王巍.电子工业出版社.2015-11

“《Swifter(第二版):100个 Swift 2 开发必备 Tip》面向商业实战与技能进阶,内容与案例完全基于 Sw...”

构建高性能可扩展ASP.NET网站

《构建高性能可扩展ASP.NET网站》

Richard Kiessig.人民邮电出版社.2011-3

“本书专门讲解如何利用ASP.NET和SQL Server开发出高性能、高扩展性的网站,并结合具体的问题给出切实有效的解决...”