欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二、有意义的命名

程序员文章站 2022-06-07 12:28:49
...
名副其实:

变量、函数或类的名称就能够说明为什么它存在,做什么事,怎么用,如果需要注释来补充,就不算名副其实:

//消逝的时间,以日计, bad!
int d;

//good
int daysSinceCreation; 
int daysSinceModification;  
避免误导

避免留下隐藏代码本意的错误线索。
accountList 一组账号,如果类型不是List会引起误判,accountGroup或bunchOfAccoutns,甚至accounts,更可怕的例子:使用小些字母l跟字母O作为变量名

做有意义的区分

代码是写给人看的,仅仅是满足编译器的要求,就会引起混乱

  • 以数字系列命名:void copyChars(char a1[],char a2[]) ==> void copyChars(char source[],char destination[])
  • 说废话: a, an, the, Info, Data
  • 使用可读的名字:避免过度使用缩写,genymdhms (生成日期,年月日时分秒)
  • 使用便于搜索的名称:避免使用Magic Number,避免使用单字母,或出现频率极高的短字母组合(注意度的把握);MAX_CLASSER_PER_STUDENT 跟 “7” “e”
类名

类名和对象名应该是名词或名词短语,Customer、Account

方法名

动词或动词短语:deletePage、save,属性访问、修改和断言:加上get、set和is

别装可爱

使用俗语或俚语, eatMyShorts()表示abort() eatMyShorts:去死吧

每个概念对应一个词

给每个抽象概念选一个词,并一以贯之。比如获取数据可以使用fetch、retrive、get这些词语,但最好能够统一使用一种(controller、manager类似)

名字尽量来自解决方案领域或问题领域:
  • 使用解决方案领域名称:使用计算机领域的科学术语、算法名、模式名等。如AccountVisitor:Visitor模式实现的Account类。
  • 使用问题领域的名称:如果不能用程序员熟悉的术语来命名,就采用所涉问题领域的名称。排序==> sort
适当使用有意义的语境:
  • 良好命名的类、函数、名称空间来放置名称,给读者提供语境
  • 给名称前加前缀:firstName、lastName、street、houseNumber、city、state和zipcode,和在一起知道是地址,孤零零时无法推断, state=》addrState
  • 事不过三,如果传递给函数的变量超过三个,考虑封装成概念,添加struct或class
  • 不要添加没用的语境