9、可变的数据:不要让代码“失控”你好,我是郑晔。 最近几讲,我们讨论的坏味道挑战了很多人的编程习惯,明明很习惯的编码方式,如今却成了坏味道。这一讲,我们再来说一类这样的坏味道:可变的数据。 对于程序,最朴素的一种认知是“程序=数据结构+算法”,所以,数据几乎是软件开发最核...2025-11-03代码之丑
10、变量声明与赋值分离你好,我是郑晔。 我们已经用连续几讲的篇幅在挑战很多人固有的编程习惯了,从各种控制语句,到 getter 和 setter,甚至连直接使用基本类型都已经成了坏味道,这一讲,我们再来挑战一个很多人习以为常的编程习惯:变量的声明与赋值。 我估计有人已经露...2025-11-03代码之丑
11、依赖混乱你好,我是郑晔。 我们前面已经讲了许多坏味道,无论是你很容易接受的,还是挑战你编程习惯的,它们都有相对直观的表现形式,属于你很容易一下子就看出来问题的。这一讲,我们要讲的坏味道就不属于一下子就能看出来的,需要你稍微仔细一点看代码才会发现问题,那就是依...2025-11-03代码之丑
12、不一致的代码,总被吐槽难懂你好,我是郑晔。 上一讲,我们讲了从依赖关系引申出来的坏味道,从代码本身看,这些坏味道并不如之前讲的那些,有非常明显的标识,一眼就能看出问题,但它们都属于问题高发的地带,一不小心就陷入其中,却不知所以。对于这类的问题,我们需要额外打起精神来发现问题。...2025-11-03代码之丑
13、落后的代码风格:使用“新”的语言特性和程序库升级你的代码你好,我是郑晔。 上一讲,我们讲的是因为代码不一致造成的坏味道,其中我提到的“方案不一致”,是因为随着时间的流逝,总会有一些新的方案产生,替换原有的方案。这其中,最明显的一个例子就是程序设计语言。没有哪门语言是完美的,所以,只要有一个活跃的社区,这门...2025-11-03代码之丑
14、多久进行一次代码评审最合适你好,我是郑晔。 前面我们讲了很多代码的坏味道,我们的关注点都在代码本身上。知道了什么样的代码是坏味道,有了具体的评判标准。那么,该如何去运用坏味道这把“尺子”呢? 有一个发现坏味道的实践,就是代码评审,也就是很多人熟悉的 Code Review,W...2025-11-03代码之丑
15、新需求破坏了代码,怎么办你好,我是郑晔。 我前面课程讲的所有坏味道都是告诉你如何在已有的代码中发现问题。不过你要明白,即便我们能够极尽所能把代码写整洁,规避各种坏味道,但我们小心翼翼维护的代码,还是可能因为新的需求到来,不经意间就会破坏。 一个有生命力的代码不会保持静止,新...2025-11-03代码之丑
17、发现“你”代码里的坏味道你好,我是郑晔。 在这个专栏刚开始的时候,我给你留了一个课前作业,实现一个待办事项管理的软件。许多同学都利用自己的业余时间完成了这个作业,感谢大家的付出! 学习代码的坏味道,听别人讲是一种方式,但这种方式总会让人有一种隔岸观火的感觉,虽然知道有问题,...2025-11-03代码之丑
16、熊节:什么代码应该被重构你好,我是郑晔。 代码坏味道的说法源自《重构》这本书,坏味道和重构这两个概念几乎是如影随形。提及《重构》这本书,在国内谁还能比《重构》两版的译者熊节更了解它呢?所以,这一讲,我就请来了我的老朋友熊节,谈谈在他眼中看到的重构和坏味道。有请熊节老师! 你...2025-11-03代码之丑
18、结束语:写代码是一生精进的事你好,我是郑晔。 春节将至,祝你新春快乐!我们的专栏到这里也正好要更新完结了,在结束语这一讲,我想和你聊聊程序员精进的话题。 创作《10x 程序员工作法》之初,我曾经定下了“写下 100 篇”的宏伟目标。在第三个专栏结束的时候,这个当年许下的宏伟目标...2025-11-03代码之丑