开篇词:从“丑”代码出发你好,我是郑晔!我又回来了! 我在“极客时间”里已经写了两个专栏,分别是《10x 程序员工作法》和《软件设计之美》,从工作原则和设计原则两个方面对软件开发的各种知识进行了探讨,帮助你搭建了一个开启程序员精进之路的框架。 不过,无论懂得多少道理,程序员...2025-11-03代码之丑
开篇词:需求给到你,怎么写代码你好,我是郑晔。 我在开篇词中提到,缺乏识别代码坏味道的感觉,这才让很多问题代码堂而皇之地留在了自己的眼皮底下。识别坏味道,单纯学理论是不够的,你得结合具体问题进行分析,所以我才在课程中加入了大量真实的代码案例,帮助你理解坏味道。当然,除此之外,你还...2025-11-03代码之丑
1、如何精准命名你好,我是郑晔。 讲写代码的书通常都会从命名开始讲,《程序设计实践》如此,《代码整洁之道》亦然。所以,我们这个讲代码坏味道的专栏,也遵循传统,从命名开始讲。 不过,也许你会说:“我知道,命名不就是不能用 abcxyz 命名,名字要有意义嘛,这有什么好...2025-11-03代码之丑
2、乱用英语:站在中国人的视角来看英文命名你好,我是郑晔。 上一讲,我们讲了两种常见的命名的坏味道,这一讲的话题还是命名,只不过,这个主题是国外那些经典编程书籍所不曾涵盖的话题:英语命名。 现在主流的程序设计语言都是以英语为基础的,且不说欧美人设计的各种语言,就连日本人设计的 Ruby、巴西...2025-11-03代码之丑
3、重复代码:简单需求到处修改你好,我是郑晔。 前面两讲,我们讨论了命名中的坏味道。今天,我们来讨论另外一个常见的坏味道:重复代码。 记得我刚开始工作的时候,有人开玩笑说,编程实际上就是 CVS(CVS是当时流行的一个版本控制工具,相当于今天的 Git),也就是 Ctrl+C、C...2025-11-03代码之丑
4、长函数:为什么总写长函数你好,我是郑晔。 这一讲,我们来讲一个你一定深恶痛绝的坏味道:长函数。 有一个关于程序员的段子,说程序员一定要用大屏显示器,而且一定要竖起来用,这样才能看到一个函数的全貌。这显然是在调侃函数很长,小屏甚至横屏都不足以看到整个函数,只有竖起来才行。 只...2025-11-03代码之丑
5、大类:避免写出难以理解的大类你好,我是郑晔。 上一讲我们讲了长函数,一个让你感受最直观的坏味道。这一讲,我们再来讲一个你一听名字就知道是怎么回事的坏味道:大类。 一听到大类,估计你的眼前已经浮现出一片无边无际的代码了。类之所以成为了大类,一种表现形式就是我们上节课讲到的长函数,...2025-11-03代码之丑
6、长参数列表:处理不同类型的长参数你好,我是郑晔。 前面两讲,我们分别讲了长函数和大类,它们都是那种“我一说,你就知道是怎么回事”的坏味道,而且都让我们深恶痛绝,唯恐避之不及。这样典型的坏味道还有一个,就是长参数列表。 好吧,我知道你的脑子里已经出现了一个长长的参数列表了。每个程序员...2025-11-03代码之丑
7、滥用控制语句你好,我是郑晔。 在前面几讲,我们已经讲了不少的坏味道,比如长函数、大类等。对于有一定从业经验的程序员来说,即便不能对这些坏味道有一个很清楚的个人认知,但至少一说出来,通常都知道是怎么回事。 但这节课我要讲的坏味道对于很多人来说,可能就有点挑战了。这...2025-11-03代码之丑
8、缺乏封装:如何应对火车代码和基本类型偏执问题?你好,我是郑晔。 上一讲,我们讲的是控制语句体现出的坏味道,它们不是一种坏味道,而是一类坏味道。这一讲,我们再来讲一类代码的坏味道:缺乏封装。 在程序设计中,一个重要的观念就是封装,将零散的代码封装成一个又一个可复用的模块。任何一个程序员都会认同封装...2025-11-03代码之丑