赞
踩
Phil Karlton
曾经说过:计算机科学领域只有两件难事:缓存失效和命名。而命名又是写出整洁代码基础中的基础,本文的副标题其实是《关于命名的读书笔记》,自己在学习过程中的整理出来一点心得笔记,共勉!
任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。—— Martin Fowler
整洁的代码如同优美的散文。—— Grady Booch
程序写出来是给人看的,附带能在机器上运行。–《计算机程序的结构与解释》
读悬疑侦探类小说,透过神秘的文字推测故事情节是个挺不错的体验。但是如果是在阅读代码,这种体验会让你泪奔。
起名字这件事看似不难,但是要经过深思熟虑,取出名副其实、表达性好的名字并不是一件很容易的事。
命名为什么难呢?因为命名的过程本身就是一个抽象和思考的过程,在工作中,当我们不能给一个模块、一个对象、一个函数,甚至一个变量找到合适的名称的时候,往往说明我们对问题的理解还不够透彻,需要重新去挖掘问题的本质,对问题域进行重新分析和抽象,有时还要调整设计和重构代码。因此,好的命名是我们写出好代码的基础。
就像Stack Overflow
的创始人Joel Spolsky
所说的:“起一个好名字应该很难,因为一个好名字需要把要义浓缩在一到两个词中。(Creating good names is hard, but it should be hard,because a great name captures essential meaning in just one or two words.)“
此外,Martin Fowler
也表示过,他最喜欢的一句谚语,就是我们的导语中提到的那句话:“在计算机科学中有两件难事:缓存失效和命名。(There are only two hard things in Computer Science:cache invalidation and naming things.)”
这是为变量命名时最重要的考虑选项。名字要完全、准确的描述出该变量代表的事物。
最简单的方法是用文字描述变量所表达的含义,对变量的描述就是最好的变量名。这种名字很容易阅读,因为它不包含容易晦涩的缩写,同时也没有歧义。因为他对代表的事物做了完整描述,因此不容易混淆。
如描述运动场中座椅数数量,number_of_sets_in_the_stadium
备注: 本文命名都以python
的命名方式书写,其他语言的根据语言命名格式转换即可。
如果有一种变量你没法描述,那么说明你可能要重新思考业务,思考逻辑。
好记的名字往往反映的通常都是问题,而不是解决方案。好的名字通常表达 what
,而不是 how
,如果名字反映了计算的某些方面而不是问题本身,那么它反映的就是 how
而不是 what
。
举例子说明一个员工的数据记录,input_rec
或者 employee_data
,input_rec
反映的就是输入记录这些计算机学术用语。employee_data
则直指问题。那么 employee_data
就是个好名字。
变量名的最佳长度似乎应该介于 n
和 number_of_sets_in_the_stadium
之间。太短的名字无法传达足够的信息。太长的名字很难写,同时还会使程序视觉结构变得模糊不清。
国外的大佬 Gorla、Benander
研究发现,当变量名平均在
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。