糟糕的代码引发混乱! 别人修改糟糕的代码时,往往会越改越烂。
往深处说就是在细节上花心思。敷衍了事的错误处理代码 只是程序员忽视细节的一种表现。此外还有内存泄漏,还有 竞态条件代码。还有前后不一致的命 名方式。结果就是凸现出整洁代码对细节的重视。
整洁的代码力求集中。每个函数、每个类和每个模块都全神 贯注于一事,完全不受四周细节的干 扰和污染。
它应当有单元测试和验收测试。它使用有意义
的命名。它只提供一种而非多种做一件事的途径。它只有尽量少的依赖关系,而且要明确地定义
和提供清晰、尽量少的 API。代码应通过其字面表达含义,因为不同的语言导致并非所有必需信 息均可通过代码自身清晰表达。
没有测试的代码不干净。不管它有多优雅,不管有多可读、多易理解,微乎测试,其不洁亦可知也
— 能通过所有测试;
— 没有重复代码;
— 体现系统中的全部设计理念;
— 包括尽量少的实体,比如类、方法、函数等。
给这些事取个技术性的名称,通常是 最靠谱的做法。
如果不能用程序员熟悉的术语来给手头的工作命名,就采用从所涉问题领域而来的名称吧。 至少,负责维护代码的程序员就能去请教领域专家了。
优秀的程序员和设计师,其工作之一就是分离解决方案领域和问题领域的概念。与所涉问题
领域更为贴近的代码,应当采用源自问题领域的名称。
最理想的参数数量是零(零参数函数),其次是一(单参数函数),
再次是二(双参数函数),应尽量避免三(三参数函数)。
有足够特殊的理由才能用三个以上参
数(多参数函数)—所以无论如何也不要这么做。
标识参数丑陋不堪。向函数传入布尔值简直就是骇人听闻的做法(该文章是我读《代码整洁之道》的部分摘取相当于笔记的作用)欢迎大家留言勿喷。