对程序员来说,下面的几个任务,哪个最难?
给函数,变量等命名
向别人解释我们做什么(或者不做什么)
任务估时
与别人沟通
在别人代码的基础上工作
实现你不认同的功能
写文档
写测试
设计解决方案
Quora 和 Ubuntu Forums thread 上的 4500 个程序员对上面的问题进行投票。49%的程序员认为给函数,变量等命名是最难的任务。
年少时,我们也曾给函数取过这样的名字
function doSth(){}// 实在怎么起名字,先凑合叫这个吧。 function zds(){} // zds 是“做大事”的拼音缩写。哈哈。 function doThing1AndDoTing2(){}// 做事1和事2 // 还有更多惨不忍睹的
当我们编码渐多,越来越意识到到好的命名对我们理解代码是多么的重要。那么,什么样的名字算是合适的呢?我觉得,如果通过看函数名字能明确的知道函数做了什么,那就是合适的命名。上面的三个名字:
doSth: 这函数名就是废话。不看函数的内容,完全不知道这函数做什么。
zds: 鬼知道zds是什么简称。
doThing1AndDoTing2: 虽然我们知道是做了两件事,但也太罗嗦了。比如,我们有一个来做肉的函数,我们这样写
funcion washAndFireAndWrapMeat(){ washMeat();// 洗肉 fireMeat();// 煮肉 wrapMeet();// 将肉装盘 }如果把这个函数改成 cookMeat 是否更好。
下面是一些命名函数的技巧。
明确函数要做什么
在给函数命名前,明确函数到底要做什么。这有利于给函数命名。
以动词开头
函数总是做些什么,所以当然要以动词开头。
尽量不要以 do 开头
do 并不能给我们提供任何函数的信息。相比之下,search, compute, handle 之类的动词暗示着函数大概做了什么。
返回布尔值的方法以 is 或 are 开头
用 is 还是 are 取决于判断主体是单个还是多个。如:isButtonEnabled,areButtonsEnable。