《驯服烂代码》

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

在线试读

  • 书名:《驯服烂代码》:在编程操练中悟道
  • 分类:编程
  • 作者:伍斌
  • 出版社:机械工业出版社
  • 出版年: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 个评论

要评论图书请先登录注册

你也许想看:

Release It!

《Release It!》

Michael T. Nygard.Pragmatic Bookshelf.2007-03-30

““Feature complete” is not the same as “production ready.” Wh...”

逆向工程实战

《逆向工程实战》

[美] Bruce Dang,[法] Alexandre Gazet,[美] Elias Bachaalany,[法] Sébastien Josse.人民邮电出版社.2015-8

“本书是一本涵盖x86、x64和ARM操作系统的逆向工程类图书,由浅入深地讲解了包括Windows内核模式代码的恶意软件和...”

Getting started with IntelliJ IDEA

《Getting started with IntelliJ IDEA》

Hudson Orsine Assumpção.Packt Publishing.2013-10-17

“IntelliJ IDEA is a commercial Java development tool which co...”

格蠹汇编

《格蠹汇编》

张银奎.电子工业出版社.2013-3-1

“《格蠹汇编——软件调试案例集锦》以案例形式讨论了使用调试技术解决复杂软件问题的工具和方法。全书共36章,分为四篇。前两篇...”

Pro HTML5 Programming

《Pro HTML5 Programming》

Peter Lubbers,Brian Albers,Frank Salim.Apress.2011-12

“HTML5 is here, and with it, web applications have acquired p...”

Django Design Patterns and Best Practices

《Django Design Patterns and Best Practices》

Arun Ravindran.Packt Publishing - ebooks Account.2015-3-26

“”

The Way To Go

《The Way To Go》

Ivo Balbaert.iUniverse.2012-3-8

“”

Scheme and the Art of Programming

《Scheme and the Art of Programming》

George Springer,Daniel P. Friedman.Mit Pr.1989-10

“”

Android系统源代码情景分析(修订版)(含CD光盘1张)

《Android系统源代码情景分析(修订版)(含CD光盘1张)》

罗升阳 著.电子工业出版社.2016-1

“在内容上,《Android系统源代码情景分析(修订版)(含CD光盘1张)》结合使用情景,全面、深入、细致地分析了Andr...”

Mastering Clojure Macros

《Mastering Clojure Macros》

Colin Jones.The Pragmatic Bookshelf.2014-8-10

“Clojure offers some sharp tools in its toolbox, and one of t...”

Ruby Programming

《Ruby Programming》

高桥征义,后藤裕藏.电子工业出版社.2009-4

“《Ruby Programming:向Ruby之父学程序设计(第2版)》是为了让完全没有程序设计经验的读者也能灵活地使用...”

The iOS Apprentice

《The iOS Apprentice》

Matthijs Hollemans.Razeware LLC.2013-12-19

“”

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

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

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

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

MATLAB Demystified

《MATLAB Demystified》

David McMahon.McGraw-Hill Professional.2007-04-06

“Need to Learn MATLAB? Problem SOLVED! Get started using MATL...”

MacRuby

《MacRuby》

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

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

The Game Jam Survival Guide

《The Game Jam Survival Guide》

Christer Kaitila.Packt Publishing.2012-4-2

“”

Making Isometric Social Real-Time Games with HTML5, CSS3, and Javascript

《Making Isometric Social Real-Time Games with HTML5, CSS3, and Javascript》

Mario Andres Pagella.O'Reilly Media.2011-9-9

“Walk through the process of designing and implementing from ...”

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

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

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

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

iPhone and iPad in Action

《iPhone and iPad in Action》

Brandon Trebitowski,Christopher Allen,Shannon Appelcline.Manning Publications.2010-9-4

“iPhone and iPad In Action , compiled by mobile software deve...”

Confident Ruby

《Confident Ruby》

Avdi Grimm..2013-10-22

“For many programmers, discovering Ruby is a revelation. They...”