
作者:罗伯特?C.马丁
页数:400
出版社:电子工业出版社
出版日期:2023
ISBN:9787121445828
电子书格式:pdf/epub/txt
内容简介
罗伯特?C.马丁(鲍勃大叔)因在技术人群中声名远播的Clean系列在全球圈粉无数。本书为其烫手新作,旨在为广大工程师指明一条通向匠师之路,包括饱经洗砺的敏捷技术实践,如何通过持续的努力提高专业素养,软件可用之上的目标与技能,以及如何激发团队优选潜能,等等。本书融会几本经典著作的精髓,将”整洁”方法论推向至高境界―软件开发者有责任维护世界正常运行,而”人”才是”技术”的决定者。 本书共分三部分,前两部分用实例阐释TDD在敏捷软件中的运用,以及验收测试、协同编程等常被忽视的敏捷侧面与具体策略,还探讨了颇有价值的软件设计方案相关话题;第Ⅲ部分拔地而起,直接提出十条堪称金玉良言的”规劝”,以帮助程序员成为团队基石。
作者简介
罗伯特?C.马丁,自1970年起从事程序员职业。他与人合办了cleancoders.com网站,为软件开发者提供在线视频培训服务。他还创办了Uncle Bob咨询有限公司,为分布于世界各地的大公司提供软件咨询、培训和技能培养服务。同时,他也供职于芝加哥的软件咨询企业8th Light,任大匠(Master Craftsman)一职。
罗伯特?C.马丁,自1970年起从事程序员职业。他与人合办了cleancoders.com网站,为软件开发者提供在线视频培训服务。他还创办了Uncle Bob咨询有限公司,为分布于世界各地的大公司提供软件咨询、培训和技能培养服务。同时,他也供职于芝加哥的软件咨询企业8th Light,任大匠(Master Craftsman)一职。
本书特色
Robert C.Martin 鲍勃大叔封山之作◎Clean系列最终章,3000万读者苦追多年的大结局;◎中国黄金一代程序员的技术偶像;◎代码—>架构—>匠艺,解密编码生涯的终极命题;◎如何打破35岁魔咒?程序员是终身职业吗?是码农还是大师?
◎美亚、豆瓣高分高赞的传奇系列。
鲍勃的《匠艺整洁之道》阐释了敏捷技术实践的目的,深入探讨了敏捷技术实践出现的历史因素,指出了敏捷技术实践为何总是那么重要。作者曾亲历敏捷技术的发展和成型过程,全面了解其实践目标和手段,这在本书中体现得淋漓尽致。
—蒂姆·奥廷格(Tim Ottinger)知名敏捷教练,图书作者
鲍勃文风上佳。书稿易于阅读,概念解释得非常详尽,即便是新入行的程序员也能读懂。鲍勃也会时不时幽上一默,让你稍做放松。本书的真正价值在于呼唤变革,呼唤更好的东西……呼唤程序员的专业素养……以及对软件无处不在的认识。此外,我相信,鲍勃写到的历史还有很多价值。我很高兴地看到,他没有浪费时间指责我们如何走到今天。鲍勃呼吁大家行动起来,要求大家提高标准和专业素养,从而承担责任,即便有时这意味着某种退步。 —海瑟·坎瑟(Heather Kanser)作为软件开发者,我们必须不断为雇主、客户、同事和未来解决重要问题。让软件可用尽管困难,但远未足够,并不能令你成为成功匠人。软件能运行,只代表你通过了能力测试。你也许具备成为匠人的能力,但还要掌握更多东西。在本书中,鲍勃阐明了能力测试之外的技能和责任,展示了严肃软件匠人该有的样子。
—詹姆斯·葛莱宁(James Grenning)《测试驱动的嵌入式C语言开发》(Test-Driven Development for Embedded C)作者,《敏捷宣言》(Agile Manifesto)作者之一
鲍勃是少数我愿意与之合作技术项目的知名开发者之一。并不只因为他技能出众、名声在外、善于沟通,更在于他曾帮助我成为更好的开发者和团队成员。他往往早于其他人好几年发现软件开发领域的重要变化趋势,且能解释其重要性,鼓舞我学习新技能。回顾我入行之时,匠艺和职业操守的概念还没在软件领域出现,大家只是告诉你要做个有诚信的好人。如今,这些概念已然成为专业开发者能习得的最重要能力,甚至比编码本身更为重要。我很高兴地看到鲍勃再领风气之先,迫不及待想听他阐述观点,并将他的观点应用于实践。
—丹尼尔·马克汉姆(Daniel Markham)
目录
第Ⅰ部分 纪律 …………………………………………………………………….. 35
极限编程 ……………………………………………………………………………………………………………… 37
生命之环 ………………………………………………………………………………………………………. 38
测试驱动开发 ………………………………………………………………………………………………………. 39
重构 …………………………………………………………………………………………………………………….. 40
简单设计 ……………………………………………………………………………………………………………… 41
协同编程 ……………………………………………………………………………………………………………… 41
验收测试 ……………………………………………………………………………………………………………… 42
第 2 章 测试驱动开发 …………………………………………………………….. 43
概述 …………………………………………………………………………………………………………………….. 44
软件 ……………………………………………………………………………………………………………… 46
TDD 三法则 ………………………………………………………………………………………………….. 47
第四法则 ………………………………………………………………………………………………………. 58
基础知识 ……………………………………………………………………………………………………………… 59
简单示例 ………………………………………………………………………………………………………. 60
栈 …………………………………………………………………………………………………………………. 60
质因数 ………………………………………………………………………………………………………….. 76
保龄球局 ………………………………………………………………………………………………………. 86
小结 …………………………………………………………………………………………………………………… 103
第3章 高级测试驱动开发 …………………………………………………………. 105
排序示例一 ………………………………………………………………………………………………………… 106
排序示例二 ………………………………………………………………………………………………………… 111
卡壳 …………………………………………………………………………………………………………………… 119
安排、行动、断言 ……………………………………………………………………………………………… 127
进入 BDD ……………………………………………………………………………………………………. 128
有限状态机 …………………………………………………………………………………………………. 129
再谈 BDD ……………………………………………………………………………………………………. 131
测试替身 ……………………………………………………………………………………………………………. 132
DUMMY ……………………………………………………………………………………………………… 135
STUB ………………………………………………………………………………………………………….. 139
SPY …………………………………………………………………………………………………………….. 142
MOCK ………………………………………………………………………………………………………… 145
FAKE ………………………………………………………………………………………………………….. 148
TDD 不确定性原理 ……………………………………………………………………………………… 150
伦敦派对决芝加哥派 …………………………………………………………………………………… 163
确定性问题 …………………………………………………………………………………………………. 164
伦敦派 ………………………………………………………………………………………………………… 165
芝加哥派 …………………………………………………………………………………………………….. 166
融合 ……………………………………………………………………………………………………………. 167
架构 …………………………………………………………………………………………………………………… 167
小结 …………………………………………………………………………………………………………………… 169
第 4 章 设计 ……………………………………………………………………… 171
测试数据库 ………………………………………………………………………………………………………… 172
测试 GUI ……………………………………………………………………………………………………………. 174
GUI 输入 …………………………………………………………………………………………………….. 177
测试模式 ……………………………………………………………………………………………………………. 178
专为测试创建子类 ………………………………………………………………………………………. 179
自励 ……………………………………………………………………………………………………………. 180
HUMBLE OBJECT ………………………………………………………………………………………. 181
测试设计 ……………………………………………………………………………………………………………. 184
脆弱测试问题 ……………………………………………………………………………………………… 184
一一对应 …………………………………………………………………………………………………….. 185
打破对应关系 ……………………………………………………………………………………………… 187
VIDEO STORE ……………………………………………………………………………………………. 188
具体 vs 通用 ………………………………………………………………………………………………… 207
转换优先顺序 …………………………………………………………………………………………………….. 208
{} → NIL(无代码→空值) ………………………………………………………………………. 210
NIL → CONSTANT(空值→常量) …………………………………………………………… 211
UNCONDITIONAL → SELECTION(无条件→条件选择) ………………………… 212
VALUE → LIST(值→列表) ……………………………..















