匠艺整洁之道 : 程序员的职业修养

0
(0)

匠艺整洁之道
: 程序员的职业修养

作者:[美]RobertC.Martin

出版社:电子工业出版社

出品方:博文视点

副标题:程序员的职业修养

原作名:CleanCraftsmanship:Disciplines,Standards,andEthics

译者:韩磊

出版年:2022-5

页数:372

定价:128.00元

装帧:平装

ISBN:9787121432248

内容简介
······

鲍勃大叔因在技术人群中声名远播的Clean系列在全球圈粉无数。本书为其烫手新作,旨在为广大工程师指明一条通向匠师之路,包括饱经洗砺的敏捷技术实践,如何通过持续的努力提高专业素养,软件可用之上的目标与技能,以及如何激发团队最大潜能,等等。本书融会几本经典著作的精髓,将“整洁”方法论推向至高境界—软件开发者有责任维护世界正常运行,而“人”才是“技术”的决定者。

本书共分三部分,前两部分用实例阐释TDD在敏捷软件中的运用,以及验收测试、协同编程等常被忽视的敏捷侧面与具体策略,还探讨了颇有价值的软件设计方案相关话题;第Ⅲ部分拔地而起,直接提出十条堪称金玉良言的“规劝”,以帮助程序员成为团队基石。

本书适合所有软件开发者、测试工程师及工程类院校师生,对技术团队负责人及架构师同样大有助益。

作者简介
······

作者 | 罗伯特 C. 马丁(鲍勃大叔)

软件开发行业领军人物,曾任C++ Report杂志主编、敏捷联盟首任主席、Object Mentor公司总裁,面向对象设计、模式、UML、敏捷方法学和极限编程领域的资深顾问。

1964年,年仅12岁的就已写下他的第一行代码。他自1970年起从事程序员职业。他与人合办了cleancoders.com网站,为软件开发者提供在线视频培训服务。他还创办了Uncle Bob咨询有限公司,为分布于世界各地的大公司提供软件咨询、培训和技能培养服务。同时,他也供职于芝加哥的软件咨询企业8th Light,任大匠(Master Craftsman)一职。

马丁先生在多本行业杂志上发表过数十篇文章,是各种国际性会议和行业活动讲坛上的常客。他也是cleancoders.com网站上广受赞誉的多个系列视频的创作者,也是Designing Object-Oriented C++ Applications Using the Booch Method 以及 Jolt 获奖图书 Agile Software Development, Principles, Palterns,and Practices,Clean Code 等畅销书作者。

译者 | 韩磊

IT产品与运营专家、IT图书专业译者,译有《代码整洁之道》《梦断代码》《C#编程风格》等多部计算机图书。曾担任CSDN副总经理、《程序员》总编辑、广东二十一世纪传媒股份有限公司新媒体事业部总经理等职,现任AR初创企业亮风台广州公司总经理。

目录
······

第1章 匠艺 1

第Ⅰ部分 纪律 9

极限编程 11

生命之环 11

测试驱动开发 12

重构 13

简单设计 14

协同编程 14

验收测试 15

第2章 测试驱动开发 17

概述 18

软件 20

TDD三法则 20

第四法则 28

基础知识 29

简单示例 30

栈 30

质因数 46

保龄球局 55

小结 72

第3章 高级测试驱动开发 73

排序示例一 74

排序示例二 78

卡壳 86

安排、行动、断言 94

进入BDD 95

有限状态机 96

再谈BDD 97

测试替身 98

DUMMY 100

STUB 103

SPY 106

MOCK 108

FAKE 111

TDD不确定性原理 113

伦敦派对决芝加哥派 126

确定性问题 126

伦敦派 127

芝加哥派 128

融合 128

架构 129

小结 131

第4章 设计 133

测试数据库 134

测试GUI 136

GUI输入 138

测试模式 138

专为测试创建子类 139

自励 140

HUMBLE OBJECT 140

测试设计 143

脆弱测试问题 143

一一对应 144

打破对应关系 145

VIDEO STORE 147

具体vs通用 166

转换优先顺序 167

{} → NIL(无代码→空值) 169

NIL → CONSTANT(空值→常量) 169

UNCONDITIONAL → SELECTION(无条件→条件选择) 171

VALUE → LIST(值→列表) 171

STATEMENT → RECURSION(语句→递归) 172

SELECTION → ITERATION(条件选择→遍历) 172

VALUE → MUTATED VALUE(值→改变了的值) 173

示例:斐波那契数列 173

变换模式优先顺序假设 177

小结 178

第5章 重构 179

什么是重构 180

基础工具包 181

重命名 181

方法抽取 182

变量抽取 183

字段抽取 185

魔方 199

纪律 199

测试 199

快速测试 199

打破紧密的一一对应关系 200

持续重构 200

果断重构 200

让测试始终能通过 201

留条出路 201

小结 202

第6章 简单设计 203

YAGNI 206

用测试覆盖 207

覆盖 208

渐近目标 210

设计? 210

但还有更多好处 210

充分表达 211

底层抽象 213

再论测试:问题的后半部分 214

尽量减少重复 214

意外重复 215

尺寸尽量小 216

简单设计 216

第7章 协同编程 217

第8章 验收测试 221

纪律 224

持续构建 224

第Ⅱ部分 标准 225

你的新CTO 226

第9章 生产力 227

永不交付S**T 228

成本低廉的变更适应能力 230

时刻准备着 231

稳定的生产力 232

第10章 质量 235

持续改进 236

免于恐惧 237

极致质量 238

我们不把问题留给QA 239

QA之疾 239

QA什么问题也不会发现 240

测试自动化 241

自动化测试与用户界面 241

测试用户界面 243

第11章 勇气 245

我们彼此补位 246

靠谱的预估 247

你得说不 249

持续努力学习 250

教导 251

第Ⅲ部分 操守 253

第一个程序员 254

75年 255

书呆子与救世主 259

榜样和恶棍 261

我们统治世界 262

灾难 263

誓言 265

第12章 伤害 267

首先,不造成伤害 268

对社会无害 269

对功能的损害 270

对结构无害 272

柔软 274

测试 275

最好的作品 276

使其正确 277

什么是好结构 278

艾森豪威尔矩阵 279

程序员是利益相关者 281

尽力而为 282

可重复证据 284

狄克斯特拉 284

正确性证明 285

结构化编程 288

功能分解 290

TDD 290

第13章 集成 293

小周期 294

源代码控制的历史 294

GIT 299

短周期 300

持续集成 301

分支与切换 301

持续部署 303

持续构建 304

持续改进 305

测试覆盖率 306

突变测试 306

语义稳定性 307

清理 307

创造 308

保持高生产力 308

拖慢速度的因素 309

解决注意力分散问题 311

时间管理 314

第14章 团队合作 317

组团工作 318

开放式/虚拟办公室 318

诚实和合理地预估 319

谎言 320

诚实、准确、精确 321

故事1:载体 322

故事2:pCCU 324

教训 325

准确度 325

精确度 327

汇总 329

诚实 330

尊重 332

永不停止学习 332

评论 ······

没听过鲍勃大叔和韩磊的人呢,恭喜你们还很年轻:)

看的书,作者想通过一个非常轻松的写作语言,向读者展示TDD,如何学习使用、帮助提升编码质量。虽然代码都是Java的,但是纸质复杂代码是在有点影响阅读。翻译也没有做到信达雅。各个章节之间看不出什么连贯性,就好像好莱坞大片中看不懂的美式幽默。

匠艺是指懂得如何做好某件事,它源自良好的纪律和大量经验。
书名如果叫测试简洁之道,我觉得一点不违和,TDD是一切纪律的根本,没有TDD和重构,很难写出简洁代码。
首先是测试驱动设计,遵循SOLID。易测试的代码本身就是解耦的,好的测试是被测代码最好的范例。
遵循简单设计原则,高层策略不关心底层细节实现,通过抽象放大本质因素,消除无关因素。
亲身实践的感受也是,需要意志、态度、从第一行代码开始严守纪…

bob大叔你的书越来越贵了

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

推荐阅读

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册