登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書

『簡體書』驯服烂代码:在编程操练中悟道(资深软件技术专家、匠艺程序员20余年编程、测试和管理经验和智慧结晶,最具实践指导意义的驯服烂代码的著作,通过编程操练的方式完整展示了驯服烂代码的过程、思想和方法)

書城自編碼: 2483613
分類:簡體書→大陸圖書→計算機/網絡软件工程/开发项目管理
作者: 伍斌 著
國際書號(ISBN): 9787111481553
出版社: 机械工业出版社
出版日期: 2014-11-01
版次: 1 印次: 1
頁數/字數: 272/
書度/開本: 16开 釘裝: 精装

售價:HK$ 179.4

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
云上的中国3:剧变中的AI时代
《 云上的中国3:剧变中的AI时代 》

售價:HK$ 90.9
转念的奇迹
《 转念的奇迹 》

售價:HK$ 78.2
福柯最后十年
《 福柯最后十年 》

售價:HK$ 124.2
王阳明心学(新版)
《 王阳明心学(新版) 》

售價:HK$ 78.2
就这样成了老板:关于创业的真相与启示(写给“白手起家”创业者们的枕边书)
《 就这样成了老板:关于创业的真相与启示(写给“白手起家”创业者们的枕边书) 》

售價:HK$ 79.4
中国历史常识(全新修订,全书插图本)
《 中国历史常识(全新修订,全书插图本) 》

售價:HK$ 67.9
对你有企图
《 对你有企图 》

售價:HK$ 53.8
多代社会
《 多代社会 》

售價:HK$ 86.3

 

編輯推薦:
(1)资深软件技术专家、匠艺程序员20余年编程、测试和管理经验和智慧结晶,著名软件技术专家、ThoughtWorks领队咨询师张逸作序推荐

(2)最具实践指导意义的驯服烂代码的著作,通过编程操练的方式完整展示了驯服烂代码的过程、思想和方法
內容簡介:
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)的组织者和开创者,这是国内首家中文公益编程操练社区,他全身心投入到社区的运营中,希望能帮到尽可能多的程序员。有《测试驱动数据库开发》和《优质代码》等译著。
个人网站:wubinben.com
微信订阅号:bjdp_org
目錄
目录?Contents

前言
致谢
第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
內容試閱
第2章
按图索骥地编写代码
现在,设计文档都齐备了,github也配好了,安装了JDK7和Maven,空项目已经用Maven建好了。还安装好了一个免费使用的IntelliJ IDEA 13.1 Community版,用来编程。现在就可以按照细化后的类图来编写第一个类TimeSubject了。
下面就是TimeSubject类的代码:
public abstract class TimeSubject {
protected MapString, Clock clocks = new HashMapString, Clock;
public void attachString cityName, Clock clock {
clocks.putcityName, clock;
}
public void detachString cityName {
clocks.removecityName;
}
public abstract void notifyAllClocks;
}
“我有个疑问。这段代码中,TimeSubject类依赖Clock类,而后者还没有创建,您就开始用它编程了。为什么不先编写Clock类呢?”
嗯,好问题!先编写Clock类当然可以。不过先编写TimeSubject类会有额外的好处,就是能让IDEA帮助咱们创建Clock类。后面会看到。
如果按照类图来实现,抽象的成员方法的名字notify已经被Java语言本身的Object类给占用了,notifyAll也被占用了,所以只好把notify改名为notifyAllClocks了。
现在代码中Clock显示为红色,表示这个类还没有定义。不过现在就可以提交代码到git。
“啊?代码编译还未通过就提交?我们公司可是要求我们直到测试运行通过才能提交代码的。”
对,你们公司说得没错,不过我认为这个要求是针对某种特殊情况而言的,即版本管理系统的代码库是使用客户端-服务器这种集中式管理的情况。你们公司管理代码版本用的是什么工具?
“SVN。”
嗯,SVN就是用这种集中式管理的方式来管理代码版本的。早先的代码管理工具CVS也是用这种方式。这种方式最明显的特点就是一旦断网就无法提交代码。
“是呀,用SVN管理代码必须联网。我在家办公的时候,要是连不上公司网络,那就没法写代码了。”
现在咱们使用的是git,这是一种分布式的代码版本管理工具。用这种分布式的工具提交代码时,代码仅仅是被提交到使用git的这台计算机的本地代码库中,尚未提交到远程的代码库中。所以即使提交尚未通过编译的代码到本地,也不会影响在远程的代码库上进行的编译工作。等咱们一次次提交到本地的代码最后编译运行通过了,再统一push到远程代码库也不迟。
在提交代码之前,先填写Commit Message提交注解。
“哦,我以前一直都不填Commit Message。”
每次提交代码都需要填Commit Message。因为如果想在写错代码时能回退到写错前的代码状态,就得依靠它。另外Commit Message还能起到代码注释的作用。
如果能做到当有少量代码改动时就频繁地把代码提交到本地代码库而不管是否通过编译,且每次提交都能填写有关此次代码改动的意图明确的Commit Message,那么这种每次少量且意图描述清晰的代码提交,一方面增强了将来阅读代码变动的可读性,另一方面当代码写错需要回退时也能有助于做到更精细的回退。
这次提交的Commit Message不妨写成Created and wrote class TimeSubject according to the class diagram.
代码提交完,现在就可以创建那个标红的Clock类了。在IDEA里,可以把光标移到Clock中,然后按Alt+Enter快捷键,就能让IDEA自动帮咱们写这个类了。
Clock类的3处编译错误在图2-1中用箭头标了出来,图中还显示了在Clock上按Alt+Enter快捷键后出现的创建Clock类的快捷菜单。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.