易燃物汇聚 YouTube 有声书与书评
代码整洁之道:程序员的职业素养 封面

代码整洁之道:程序员的职业素养

[美]罗伯特 C. 马丁

1.7万人在读
13.3万字总字数
¥49定价

有声书与视频解读 YouTube有声书 1

内容简介

本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。

读者书评

★★★★★

这本书读完,大脑中清晰的呈现两个字:专业。 专业人员必须有专业的素质,对程序员这个行业来说这包含很多方面,这既有对事的也有对人的,既有对内的也有对外的。只有对这事业是真的热爱和投入,研究每一个细节,想把各个环节都做到完美才能渐渐理解这些专业的素养。 2026年Agent时代,代码已经完全由AI来写,程序员只需要描述清楚自己想要什么然后指挥AI去做就行了,就像这本书中描述的很多东西,程序员手敲代码也会成为历史,对这个行业来说很多东西都在因为AI的变革在快速的淘汰,但素养这个东西依然是需要的,甚至会更加重要。 以下是思想提炼: 1. 责任担当 原著思想:专业程序员必须对自己编写的软件负全部责任,不推诿、不找借口。 AI时代意义:AI只是工具,最终责任在人。无论代码是否由AI生成,上线后的风险、缺陷、后果都由你承担,不能用“AI写的”免责。 2. 保持诚实 原著思想:对进度、能力、风险保持真实,不夸大、不隐瞒、不盲目承诺。 AI时代意义:AI写得快不代表能按时交付,不可因工具高效而乱拍工期、虚报能力,诚实是职场信任的基础。 3. 坚守自律 原著思想:坚持整洁代码、测试、评审、重构,保持专业工作纪律。 AI时代意义:AI易生成可用但混乱的代码,自律决定你是“代码审核者”而非“搬运工”,规范、测试、整洁依然是系统稳定的关键。 4. 敢于说“不” 原著思想:专业人士有勇气对不合理需求、工期、设计说不,并给出合理方案。 AI时代意义:AI只会顺从指令,只有人能判断技术债、架构风险,敢于拒绝并提供方案,才是技术专家的价值。 5. 保守估算,承诺必达 原著思想:预估要务实保守,承诺必须兑现,尊重自己与他人时间。 AI时代意义:AI提升编码速度,但调试、联调、稳定性仍需人力,靠谱交付比速度更重要。 6. 持续学习,深耕本质 原著思想:专业程序员不断学习,不停止成长,不固守舒适区。 AI时代意义:AI只会实现,不会设计架构、理解业务、把控全局。底层原理与系统判断力,才是不被替代的核心。 7. 尊重协作,善于沟通 原著思想:尊重同事、清晰表达、理性协作,以团队为先。 AI时代意义:AI无法处理人际关系、冲突对齐、影响力建设,软能力是晋升与领导力的关键。 8. 恪守职业道德 原著思想:不编写危险、劣质、不负责任的代码,坚守专业底线。 AI时代意义:AI无道德判断,人必须把控安全、合规、稳定性,不让工具带来隐患。 9. 工作生活平衡 原著思想:拒绝透支身体,保持长期可持续的工作节奏。 AI时代意义:AI不会疲惫,但人会。好决策、架构力来自清醒状态,长期主义比短期冲刺更重要。

★★★★★

《代码整洁之道》,最近一次被推荐,是去年的朋友圈,一位只见过一次的程序员老乡发的,他当时推荐两本书,一本《重构》,一本《代码整洁之道》。《重构》已经在萌哥要求下看过,所以当时,只将《代码整洁之道》加入书架,去年12月开始断断续续于手机上阅读,到上个月读完,累计花费7个半小时。 作者在前言中将本书结构、内容做了很好的概括,我摘抄于此: 本书大致可分为3个部分。前几章介绍编写整洁代码的原则、模式和实践。这部分有相当多的示例代码,读起来颇具挑战性。读完这几章,就为阅读第2部分做好了准备。如果你就此止步,只能祝你好运啦! 第2部分最需要花工夫。这部分包括几个复杂性不断增加的案例研究。每个案例都清理一些代码——把有问题的代码转化为问题少一些的代码。这部分极为详细。你的思维要在讲解和代码段之间跳来跳去。你得分析和理解那些代码,琢磨每次修改的来龙去脉。 你付出的劳动将在第3部分得到回报。这部分只有一章,列出从上述案例研究中得到的启示和灵感。在遍览和清理案例中的代码时,我们把每个操作理由记录为一种启示或灵感。我们尝试去理解自己对阅读和修改代码的反应,尽力了解为什么会有这样的感受、为什么会如此行事。结果得到了一套描述在编写、阅读、清理代码时思维方式的知识库。 读本书,很多句子会让我在心中发出“对的对的”、“是这样的,是这样的”、“作者厉害”、“好的好的”、“我改我改”这样简单的顺从回答,我选取几句摘抄于此处: 你该明白了。读与写花费时间的比例超过10:1。写新代码时,我们一直在读旧代码。既然比例如此之高,我们就想让读的过程变得轻松,即便那会使得编写过程更难。 聪明程序员和专业程序员之间的区别在于,专业程序员了解,明确是王道。专业程序员善用其能,编写其他人能理解的代码。 函数的第一规则是要短小。第二条规则是还要更短小。 过去30年以来,以下建议以不同形式一再出现:函数应该做一件事。做好这件事。只做这一件事。 这样的句子,还有很多,在这些总结性句子之后,会有对应的示例。我认为读本书的正确方式,是将本书的纸质版置于办公桌前,在某些犹豫时刻,拿出来翻一翻,常读常新。 读本书的同时,我正在搭建一个小项目,每读到一个点,就会在脑子中梳理一遍自己的代码。有些是对的,有些不够清晰,有些是应该改进的,梳理之后,看代码,再做些许调整。读书当时,影响最深。 读完本书,我是多了一种理念的:“当我看出代码能优化一下,能重构一下,能表达更清晰些,我会在当时尽量做一下。”这里在现在的我是“尽量”,书中是推荐立马改掉的。立马慢慢的、稳健的一点点重构;晚点做,则会变成“勒布朗法则”的另一个佐证。(勒布朗法则——Later equals never,稍后等于永不。) 人都是会犯错的。如果靠着经验或者某个大家都需要遵守的约定而让代码运行下去,迟早有一天会踩坑。之前租房处去公司路上有一个坑,我一直注意着它,有次下班太晚骑车路过,掉进坑里。这个坑,我已经避过它不下百次。 读完本书,改变最深的是对“注释”的看法——以后,能不写注释就尽量不写注释;无用但可能再用的代码,不注释直接删掉,交由Git管理。注释代码这个事情,与生活中的习惯很有关联,我不会想扔掉那些鸡肋的、可能再也用不到的东西。 读完本书,再去看各路(主要是工作中会用到的组件库)源码,绝大部分函数是真的能够通过名字便知道它作用的。使用人数越多的代码,越明显。 本书,是作者拥有几十年编码经验之后整理出来的。我没有碰到过、不甚了解、不够熟悉的场景,只能模糊理解作者的观点。这让我知道自己的短板,比如测试驱动开发,比如线程、进程,比如异常处理。 自子程序发明以来,软件开发领域的所有创新都是在不断尝试从源代码中消灭重复。 Don't repeat yourself!

★★★★★

自从有了 AI 大模型之后,我不知不觉就进入了程序员这个行当,变成了一个嘴喷的程序员,不过也因为这样,才发现,原来有些东西是基础,看了代码整洁之道才知道,东西是不断变化的,但是原理是不变的。当自己得意洋洋的可以手搓出一个 APP 的时候,其实也要关注到这个 APP 的架构上是否有缺陷,是否是 TDD 驱动的。经过这部分,发现自己的面也扩宽了一些。

★★★★★

写得真棒呀,如果我早点读到这本书可以提前避免一些问题,即书中说到的“说不,说是”,“承诺”等,不过现在也不晚,种一棵树最好是十年前,其次是现在嘛。 本以为是一本说代码规则和细节的问题,但是书中的重点在于如何成为专业人士,我觉得关于专业人士的叙述非常棒,我也到了要转行还是深耕这个领域的时间节点,非常感谢这本书的分享,对我的职业规划很有帮助。

★★★★★

笑死啦,我想看的是《代码整洁之道:clean code》,而不是《代码整洁之道:程序员的职业素养》

★★★☆☆

本书作者是从穿孔纸带编程时代就开始接触程序设计的老兵,读这本书你会发现作者卷得可怕,拥有异常严苛的职业精神。这本书中很少提及技术,而是将重点放到了开发规范、职业操守上,并提到了许多作者的血泪教训,不论对于初入职场的新手或是深耕多年的老兵来说,都会有一定的启示。 我的思考:我是个初级开发者,并没有参与到过企业里实际的项目开发中,因为希望了解项目开发的完整流程、架构的设计原则、代码的编写要领等,但这本书并不符合我的期待,讨论了更多关于开发人员本身应该具备的专业素养,对严谨沟通、遵守规则、编码原则、良好协作等方面做了讨论,但行文风格会比较夸张,对我比较有帮助的是关于TDD的理念探讨以及测试的重要性和一些方法。 给出一段原文,有助于指引初级开发者的学习方向: 下面列出了每个专业软件开发人员必须精通的事项。 设计模式。必须能描述GOF书中的全部24种模式,同时还要有POSA书中的多数模式的实战经验。 设计原则。必须了解SOLID原则,而且要深刻理解组件设计原则。 方法。必须理解XP、Scrum、精益、看板、瀑布、结构化分析及结构化设计等。 实践。必须掌握测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程。 工件。必须了解如何使用UML图、DFD图、结构图、Petri网络图、状态迁移图表、流程图和决策表。

★★★★★

这本《代码整洁之道》是普通程序员走向“专业”的灯塔。它改变了我对软件的看法,也使得我摆脱了一个纯编码者的思维,继而转向以研究设计架构、分析用户需求为中心的软件开发方式。看完此书第一个感觉就是:大叔也是跌跌撞撞一路走来,我什么时候才能成为大叔这种级别的高手呢! 全书十四章。我自己是在顺序阅读中,是沿着三大主线进行思考的:学习、纪律、交流。 前三章可以作为一组,从“职业精神、学会拒绝、学会承诺”三个切入点,讲述了作为一个职业程序员,要学会从工作经验中学习为人处世之道。具体说来,要会依据一些周围的情势、同事的语气、自己的能力与时间安排等因素,决定是应该拒绝一个新功能的加入还是应该承诺在一个给定的时间内按时交付它。我在学会拒绝和承诺新需求的方面,一直做的很不到位。看了此书我才发现,要根据整个项目所处的状态,向队友陈述项目的实际情况。只有大家了解了实际情况,才能作出一个建设性的答案,以决定一个新功能是应该在下一版在做,还是应该加班做好,抑或采用一些临时方案先使它上线。关于工程进度,表面的和谐和不够深入的交流,都是导致工程延期的重要因素。 中间六章可以作为一组,从“编码、测试驱动开发、例行代码功力训练、验收测试、测试策略、时间管理”等六个方面讲述了一个专业程序员(即本书标题所谓的“干净编码者”)所应具有的工作行为准则。 在编码这章中,作者讲述了专注编码的重要性。同时也强调了过于专注,而不时时用代码审查或测试用例来辅助督促代码质量的话,也会导致代码细节美丽但是大方向走偏。编码应当是短时间,高效率的作业,如果思维受到阻滞,应当及时放松,不能强求。

★★★★★

gpt4预习: 《代码整洁之道:程序员的职业素养》是一本由 Robert C. Martin(也被称为 Uncle Bob)编写的书籍。这本书的主要目标是教导程序员如何以专业的方式开发软件。 这本书的主要内容包括以下几个方面: 1. **专业主义**:书中强调了程序员应该具备的专业素质和道德责任。Martin 提出,专业程序员应该对自己的工作负责,对代码质量有严格的要求,对自己的继续教育和职业发展有计划。 2. **代码质量**:Martin 认为,写出高质量的代码是程序员的主要职责。他强调了代码应该是清晰、简洁、可读的,并且应该具有良好的结构和设计。他提出了许多实用的技巧和方法来提高代码质量,例如测试驱动开发(TDD)、重构、持续集成等。 3. **工作习惯**:Martin 讨论了一些有助于提高生产力和代码质量的工作习惯,例如避免过度工作,保持专注,定期休息,保持学习等。 4. **职业发展**:Martin 讨论了如何规划和管理自己的职业发展,包括选择适合自己的工作,学习新技术,参加行业活动,建立个人品牌等。 5. **与他人合作**:Martin 讨论了如何有效地与同事、经理、客户等其他人合作。他强调了良好的沟通能力和团队协作能力的重要性。 总的来说,《代码整洁之道:程序员的职业素养》是一本关于如何成为一个更好的、更专业的程序员的书。它提供了许多实用的建议和指导,无论你是新手还是有经验的开发者,都可以从中受益。

★★★★★

这本书适合一个小时内读完,然后花一整个职业生涯去体验去完善书中的内容,去反驳作者 1请务必理解“本页有意留空”这句话 2无论谁给你了开了什么样的玩笑,请一笑置之 3荣誉与骄傲是责任和义务 4练习道歉,失误率不可能为零,但是你要让他无限接近于零 5什么样的代码是有缺陷的呢,那些你没有把握的代码都是!!! 6为什么不敢修改代码呢,因为你知道你不会测试 7留点时间给你自己的职业生长,这与工作无关,只为了自己 8工作是必须精通的事情不是了解 9有自信确定什么能什么不能,因为这才是专业 10为什么不重要,重要的是你知道为什么,为什么而来得这个为什么 11不要用尝试,可能,应当,希望来搪塞自己,你只是推脱,请给确定的词汇 12对自己的承诺负责 13少说我们,让我去完成这件事,不准推卸责任 14确保你的每一行代码都不带任何私人的情绪 15事情必有结论 16请保持自己的节奏,避免焦虑 加油职业人们!

★★★★★

我认为作为一个靠编程技能吃饭的专业人士都应该看看Bob大叔的这本书。这本书有些年头了,但是技术会过时,核心素养却不会,它甚至是跨领域通用的。如果在刚出社会能看到这本书,能少走很多弯路。 第一,成为专业人士,必须要有专业主义。专业主义意味着你要学会承担责任和义务,程序员的责任义务实际是简单的——但却又不简单——那就是尽量少bug的交付自己的代码。这很难,代码有bug很正常 ,但是得知道你要承担责任。 第二,要不断精进自己的技能。每周为自己工作20h,用于学习和训练。 第三,学会说“不”。说“不”不是推诿任务,而是作为专业人士敢于说明真相。可以就是可以,不可以就是不可以,什么叫试一试?说“不”需要有很大的勇气,但是更需要有对自己能力的清晰认知。 第四,学会说“是”。说“是”意味着承诺,承诺是必须要完成的。如果你一直信守承诺,那你就足够专业。 第五,时间管理。最简方法:紧急事件优先和番茄工作法。 第六,预估。未来的事情会有太多的偶然,预估是很困难的,但是我们依然有一些方法能给出比较符合的预估。同时要区分预估和承诺。 PERT(三点预估法),使用乐观估计(O)、标准估计(N)、悲观估计(P),预估时间=(O+4N+P)/6。 德尔菲法。多人参与的预估法,多人投票,如果有分歧继续讨论,重复进行直到消除分歧。 第七,要重视测试。这是消除bug的唯一方式。测试分为几个层面,从下往上分别为:单元测试、组件测试、集成测试、系统测试。其中单元测试和组件测试对程序员最为密切,单元测试覆盖率应当时刻保持超过90%。 保持专业,是在一个行业存活下去的基石

书籍信息

作者[美]罗伯特 C. 马丁
译者余晟 章显洲
出版社人民邮电出版社有限公司
出版时间2016-09-01
ISBN9787115434159
分类计算机-计算机综合
格式EPUB
完结状态连载中
章节数26