匠艺整洁之道

[美] Robert C. Martin

出版时间

2022-04-30

ISBN

9787121432248

评分

★★★★★
书籍介绍

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

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

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

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

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

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

马丁先生在多本行业杂志上发表过数十篇文章,是各种国际性会议和行业活动讲坛上的常客。他也是cleancoders.com网站上广受赞誉的多个系列视频的创作者,也是Designi...

(展开全部)

AI导读
核心看点
  • 本书深入阐述测试驱动开发(TDD)的高级实践,包括伦敦派与芝加哥派的融合、测试替身(Mock/Stub等)的正确使用,以及如何处理不确定性与架构设计,强调通过纪律性实践提升代码质量。
  • 作者提出软件工程师的职业伦理与操守,强调开发者有责任维护世界正常运行,技术决定权在人。书中包含十条规劝,旨在帮助程序员成为团队基石,提升专业素养与团队潜能,而非仅关注代码实现。
  • 内容涵盖敏捷开发中的验收测试、协同编程等常被忽视的侧面,探讨简单设计原则与SOLID原则的结合应用。强调易测试的代码即解耦代码,通过测试驱动设计来消除无关因素,放大本质逻辑。
适合谁读
  • 适合所有软件开发者、测试工程师及工程类院校师生阅读,特别是希望提升代码质量、学习TDD高级技巧、理解软件设计原则与职业伦理的从业人员,有助于建立正确的工程价值观。
  • 适合技术团队负责人及架构师,书中关于团队潜能激发、职业操守讨论及宏观工程理念,有助于管理者推动卓越工程文化,建立CI/CR基建,提升团队整体技术素养与协作效率。
  • 适合对软件工程历史、学科发展脉络感兴趣的读者,书中结合学科史上下文回顾软件工程技术,帮助读者从更高维度理解技术演进,避免陷入单纯的技术细节,提升对行业本质的认知。
读前提醒
  • 本书翻译质量参差不齐,部分章节语言晦涩且缺乏连贯性,建议读者结合英文原版或社区讨论辅助理解。书中代码示例为Java,但核心思想适用于所有语言,请勿因语言差异或翻译问题放弃阅读。
  • 书中TDD部分涉及大量具体代码实现与复杂逻辑推导,阅读时建议配合实际编程实践,切勿仅停留在理论层面。对于不熟悉的测试模式与架构设计,应通过动手编码来验证书中观点,避免空谈。
  • 作者观点具有强烈个人色彩,部分关于职业伦理的论述可能引发争议。读者应保持批判性思维,结合自身工作环境与价值观进行判断,取其精华去其糟粕,避免盲目照搬书中所有规劝。
读者共识
  • 读者普遍认为本书TDD部分讲解透彻,是精华所在,有助于提升编码质量与测试能力。但部分读者批评书中纯技术内容较少,宏观讨论过多,且翻译质量差,影响阅读体验,建议谨慎购买中文版。
  • 多数读者认可作者关于职业操守与工程师责任的观点,认为这是本书的重要价值。但部分读者对TDD能否自然生成算法持怀疑态度,认为其与实际快速迭代开发模式存在冲突,需结合实际情况灵活应用。
  • 读者指出本书并非技术新书,而是对以往工作的总结,无太多新东西。但作为Bob大叔的封山之作,其提供的实际方法与示例仍有参考价值,适合已有一定基础的开发者进行内功修炼与反思。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "Estimates are probability distributions. Probability distributions have a mean and a width—sometimes called the standard deviation or the sigma. We need to be able to express our estimates as both the mean and the sigma."
  • "My favorite technique for estimating how wrong an estimate is, is to estimate three numbers: the best case, the worst case, and the normal case."
  • "Okay, let’s say that we’ve got a whole project full of tasks that have been described in terms of Best (B), Normal (N), and Worst (W) case estimates. How do we aggregate them all into a single estimate for the whole project? It’s probably best to use a weighted average like this: mu = (2N + (B + W)/"
作者简介
作者 | 罗伯特 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

显示全部
用户评论
没啥价值的书
本书最宝贵的一点,不仅讲了软件设计的原则,还讲了这些原则的发展史。结合学科史上下文回顾软件这门科学/工程技术/行业,可以领会更多。
看的书,作者想通过一个非常轻松的写作语言,向读者展示TDD,如何学习使用、帮助提升编码质量。虽然代码都是Java的,但是纸质复杂代码是在有点影响阅读。翻译也没有做到信达雅。各个章节之间看不出什么连贯性,就好像好莱坞大片中看不懂的美式幽默。
可读性强;TDD讲得很透彻
匠艺是指懂得如何做好某件事,它源自良好的纪律和大量经验。 书名如果叫测试简洁之道,我觉得一点不违和,TDD是一切纪律的根本,没有TDD和重构,很难写出简洁代码。 首先是测试驱动设计,遵循SOLID。易测试的代码本身就是解耦的,好的测试是被测代码最好的范例。 遵循简单设计原则,高层策略不关心底层细节实现,通过抽象放大本质因素,消除无关因素。 亲身实践的感受也是,需要意志、态度、从第一行代码开始严守纪律,一刻都不能松懈。 正如作者所说,一方面是软件产品价值和结构价值的矛盾,一方面开发人员像摩尔定律一样增长,流动性和经验知识的不足是工程实践中面临的现实挑战。 我们生活在软件无处不在的世界,软件必须反脆弱,灵活稳定的运行。 程序员的匠艺应该是持续不断学习,努力创造最好的作品,无畏的改进我们所做的一切
嗯,我承认,确实看的有些“血压升高”。之前做测开时就有接触过 TDD,但一直觉得 TDD 是一种比较理想化的开发模式,确实是一种匠人的工作方式,但总是觉得它与当前快速发展,不断迭代的软件周期有些格格不入。很多时候大家更强调的也是,先基本想清楚了再写代码,避免初期反复的调整,也因为这可能会导致开发深陷实现的细节,出现过度设计的问题。比较喜欢书中对 Mock 和 TDD 不确定性原理的分析,不得不说,这是第一次去认真的审视不同的 Mock 类别。整本书聚焦在对软件开发中人的因素的讨论和思考,但读下来感觉内容还是单薄了一些,七分吧。
和前几本比,稍差。
单元测试是软件工程中最接近道的术,最接近术的道
收藏