8、缺乏封装:如何应对火车代码和基本类型偏执问题?你好,我是郑晔。 上一讲,我们讲的是控制语句体现出的坏味道,它们不是一种坏味道,而是一类坏味道。这一讲,我们再来讲一类代码的坏味道:缺乏封装。 在程序设计中,一个重要的观念就是封装,将零散的代码封装成一个又一个可复用的模块。任何一个程序员都会认同封装...2025-11-03
9、可变的数据:不要让代码“失控”你好,我是郑晔。 最近几讲,我们讨论的坏味道挑战了很多人的编程习惯,明明很习惯的编码方式,如今却成了坏味道。这一讲,我们再来说一类这样的坏味道:可变的数据。 对于程序,最朴素的一种认知是“程序=数据结构+算法”,所以,数据几乎是软件开发最核...2025-11-03
10、变量声明与赋值分离你好,我是郑晔。 我们已经用连续几讲的篇幅在挑战很多人固有的编程习惯了,从各种控制语句,到 getter 和 setter,甚至连直接使用基本类型都已经成了坏味道,这一讲,我们再来挑战一个很多人习以为常的编程习惯:变量的声明与赋值。 我估计有人已经露...2025-11-03
7、滥用控制语句你好,我是郑晔。 在前面几讲,我们已经讲了不少的坏味道,比如长函数、大类等。对于有一定从业经验的程序员来说,即便不能对这些坏味道有一个很清楚的个人认知,但至少一说出来,通常都知道是怎么回事。 但这节课我要讲的坏味道对于很多人来说,可能就有点挑战了。这...2025-11-03
5、大类:避免写出难以理解的大类你好,我是郑晔。 上一讲我们讲了长函数,一个让你感受最直观的坏味道。这一讲,我们再来讲一个你一听名字就知道是怎么回事的坏味道:大类。 一听到大类,估计你的眼前已经浮现出一片无边无际的代码了。类之所以成为了大类,一种表现形式就是我们上节课讲到的长函数,...2025-11-03