优化变量的几条建议

"从命名开始提高编程效率"

Posted by Xion on September 10, 2017      views:

现实中的程序员和电影中的程序员

相比较于科幻电影中的程序员,现实中的程序员在写代码的时候,大部分实践不是用在了输入上,而是用在了阅读代码上。根据调查,程序员在写和阅读的时间比大约是1:10.通过这个数据,完全可以想象代码的可读性对的编程效率影响有多大。结合大量的实践来看,仅仅对代码中的变量和方法修改成一个合适的名字就能够很大程度上提高代码的可读性。因此,给变量和方法一个正确的名字,是一个低投入高性价比的事情。

道理我们或许都懂,但是想要做好还是需要一点点启发。在这里,结合一些现有的资料和我自己的亲生体会,给大家一些如何优化命名的建议。

建议一:如果在同一段代码中有十分相近的命名,改掉它

这是一个容易犯的一个错误,如果你发先交换两个变量的名字不会妨碍对程序的理解,那么你就需要重新命名了[1]。假如在一段代码的开头定义了两个十分相似的变量名,然后在接下来的代码中用到这两个变量,最后的结果很有可能是把这两个变量搞混。最让人懊恼的情况是:有的地方搞混了,有的地方没搞混。尤其是在使用python这种动态类型的语言的时候,你的变量就变成了一个薛定谔的变量:在这个变量没有被运行产生报错之前,对于阅读这份代码的人,它既是A变量也是B变量。

建议二:一旦你想到一个更好的命名,马上改掉它

变量、函数或类的名称应该已经答复了所有的大问题。它该告诉你,它为什么会存在,它做 什么事,应该怎么用。如果名称需要注释来补充,那就不算是名副其实。[2] 现在在各种IDE,或者编辑器的插件的帮助下,重命名一个变量并不是一件十分繁琐的事情。几乎所有的IDE都提供了重命名的功能,这是有原因的,为什么不用呢? 借用书中的一个例子来说明这个问题,这里我改成了python版 有下面一个函数

def getThem(){
  list1 = []
  for x in the_list:
      if x[0] == 4:
          list1.append(x)
  return list1
}

TBD

[1] 《代码大全》 11章变量名的力量 [2] 《代码简洁之道》 1章