12、不一致的代码,总被吐槽难懂你好,我是郑晔。 上一讲,我们讲了从依赖关系引申出来的坏味道,从代码本身看,这些坏味道并不如之前讲的那些,有非常明显的标识,一眼就能看出问题,但它们都属于问题高发的地带,一不小心就陷入其中,却不知所以。对于这类的问题,我们需要额外打起精神来发现问题。...2025-11-03代码之丑
13、落后的代码风格:使用“新”的语言特性和程序库升级你的代码你好,我是郑晔。 上一讲,我们讲的是因为代码不一致造成的坏味道,其中我提到的“方案不一致”,是因为随着时间的流逝,总会有一些新的方案产生,替换原有的方案。这其中,最明显的一个例子就是程序设计语言。没有哪门语言是完美的,所以,只要有一个活跃的社区,这门...2025-11-03代码之丑
8、缺乏封装:如何应对火车代码和基本类型偏执问题?你好,我是郑晔。 上一讲,我们讲的是控制语句体现出的坏味道,它们不是一种坏味道,而是一类坏味道。这一讲,我们再来讲一类代码的坏味道:缺乏封装。 在程序设计中,一个重要的观念就是封装,将零散的代码封装成一个又一个可复用的模块。任何一个程序员都会认同封装...2025-11-03代码之丑
9、可变的数据:不要让代码“失控”你好,我是郑晔。 最近几讲,我们讨论的坏味道挑战了很多人的编程习惯,明明很习惯的编码方式,如今却成了坏味道。这一讲,我们再来说一类这样的坏味道:可变的数据。 对于程序,最朴素的一种认知是“程序=数据结构+算法”,所以,数据几乎是软件开发最核...2025-11-03代码之丑
10、变量声明与赋值分离你好,我是郑晔。 我们已经用连续几讲的篇幅在挑战很多人固有的编程习惯了,从各种控制语句,到 getter 和 setter,甚至连直接使用基本类型都已经成了坏味道,这一讲,我们再来挑战一个很多人习以为常的编程习惯:变量的声明与赋值。 我估计有人已经露...2025-11-03代码之丑
7、滥用控制语句你好,我是郑晔。 在前面几讲,我们已经讲了不少的坏味道,比如长函数、大类等。对于有一定从业经验的程序员来说,即便不能对这些坏味道有一个很清楚的个人认知,但至少一说出来,通常都知道是怎么回事。 但这节课我要讲的坏味道对于很多人来说,可能就有点挑战了。这...2025-11-03代码之丑