#代码整洁之道 - 阅读笔记(一)

近期参与培训CICD,以及阅读代码整洁之道这本书,记录下学习过程。

代码整洁之道共分为三个部分:

代码整洁之道 - 阅读笔记 (一)

此次读书笔记从基础开始记录:第一部分 - 整洁代码

在这一章节中,提出了一个非常有用的话题:什么样的代码是整洁的代码?本章从要有代码 - 糟糕的代码 - 混乱的代价引入,参考多种著名工程师的理解,作者认为代码包括:变量名、函数、类,整洁代码可以从:整洁变量名、整洁函数、整洁类进行详细分析。

##整洁变量名

变量名包括:变量、函数、参数、类、封包、目录、jar包、war包等,为这些命名时,需要遵循的规则有:

代码整洁之道 - 阅读笔记 (一)

针对于上述规则,对几点进行特殊说明:

###2.1 名副其实

变量、函数或类的名称要求已经答复所有的大问题,该告诉阅读者:为什么存在,做什么事,该怎么用。如果名称需要注释,那就不算名副其实,比如:

代码整洁之道 - 阅读笔记 (一)

名称d什么也没有说明,应该选择指明了计量对象和计量单位的名称。如:

代码整洁之道 - 阅读笔记 (一)

选择体现本意的名称,能更容易理解和修改代码。

比如:

代码整洁之道 - 阅读笔记 (一)

该代码中的getThem、list1、theList都不能表达具体业务含义,应该将其改为更有意义的代码,比如:

代码整洁之道 - 阅读笔记 (一)

仅仅将代码变量的命名进行修改,读起来的时候清晰了很多。

###2.2 避免误导

以同样的方式拼写出同样的概念才是信息。拼写前后不一致的就是误导。举例说明误导性错误的例子,是以小写字母l和大写字母O做变量名,尤其是组合使用时。

代码整洁之道 - 阅读笔记 (一)

问题在于它们看起来完全像是常数1和0。

###2.6 避免使用编码

编码太多了,不要自找麻烦。把类型或作用域编进名称里面,增加了阅读的负担,需要阅读该代码时还要了解另外的编码。

2.6.1 成员前缀

不必用m_前缀标明成员变量,应当把类和函数做的足够小,消除对成员前缀的需要。应该用如下的变量进行命名,

代码整洁之道 - 阅读笔记 (一)

而不是用m_des进行命名。

2.6.2 接口和实现

有时也会出现采用编码的特殊场景。比如,你在做一个创建形状用的抽象工厂(Abstract Factory)。该工厂是一个接口,要用具体类来实现。用来命名:IshapeFactory和ShapeFactory吗?不要加修饰的接口。签到字母 I 被滥用到了说好听点是干扰,说难听点就是废话的程度。不要让用户之道我给他们的是接口,只让他们知道是ShapeFactory。如果接口和实现必须选一个编码的话,可以选择:ShapeFactoryImp,都比对接口名称编码来得好。

2.11 使用解决方案领域名称

只有程序员才会读代码。所以,尽量用计算机科学术语、算法名、模式名、数学术语来命名。依据问题所涉及领域来命名可不算是聪明的做法,因为不该让协作者老是跑去问客户每个名称的含义,虽然他们早该了解其概念。

对于熟悉访问者模式的程序来说,名称AccountVisitor富有意义。那个程序员不知道JobQueue的意思呢?程序员要做太多技术性工作,给这些变量取个技术型的名称,通常是最靠谱的做法。

相关文章:

  • 2021-07-06
  • 2021-12-08
  • 2021-11-16
猜你喜欢
  • 2021-05-06
  • 2021-12-23
  • 2021-10-05
  • 2021-10-28
  • 2022-02-18
  • 2021-05-25
  • 2022-01-05
相关资源
相似解决方案