2010-05-07 112 views
0

我有一堆不相同的相关常量。有什么更好的方法来命名它们?它是kEatSpeed还是kSpeedEat?

方式#1

 
kWalkSpeed 
kRunSpeed 
kEatSpeed 
kDrinkSpeed 

或者,

方式#2

 
kSpeedWalk 
kSpeedRun 
kSpeedEat 
kSpeedDrink 

如果我们评估这些基于

  • 可读性
  • 可理解
  • 组织在成员列表(自动完成)
  • 不是由于使用错误的变量名的bug容易有细微的错误

我想办法#1胜可读性,他们并列可理解,方法#2胜用于自动完成列表中的组织,并且方式#1也因不易出错而获胜。

我不确定其他人发生这种情况的频率如何,但是当这样的变量名变长时,那么当您真正意思为kSpeedEatingWhenInHome时,尤其是在使用自动完成时,它很容易编写kSpeedEatingWhenInAHurry

任何观点?

+0

只要我们谈论变量命名,'k'是什么? – 2010-05-07 23:44:52

+0

这是一个'k'onstant – bobobobo 2010-05-08 01:16:09

回答

9

如果出现这种情况,我总是会选择#1。 kSpeedWalk听起来应该是一个布尔值,而不是一个值(例如,我是在加快行走还是正常行走)。

+2

就是这样。第一组是名词,第二组是动词。似乎向我传达了错误的意图。快速喝酒,在房子里! – tzaman 2010-05-07 22:07:37

+1

高速行走实际上是[奥林匹克运动](http://en.wikipedia.org/wiki/Speed_walking)。快速编程...唉,不是。 – 2010-05-07 22:13:23

+0

绝对#1。 #2让我的“快速阅读”能力上升。 – 2010-05-07 22:29:48

1

我更喜欢kSpeedWalk。 IMO更加一致。你指的是obj.x,obj.y. x.obj没有意义!最左边的术语应该是所有右手术语适合的组。

另一种选择是kSpeed_walk,其中下划线的作用类似于点符号。但是这不是一个广泛使用的符号AFAIK,可能会导致任何人试图使用/添加到您的代码混淆。

但真的,最重要的是不要混合它们。我已经在过去处理这

4

一种方法是命名空间中的常数,所以你(当然,使用资本的首选方法):

Speed.walk 
Speed.run 
Speed.eat 
Speed.drink 

Speed::walk 
Speed::run 
Speed::eat 
Speed::drink 

(或者那些可能是KSpeed - 我不确定你的例子中的k是什么。)

+0

k代表“konstant” – 2010-05-07 23:45:22

1

是否基于动词的变量,例如你正在行走,还是描述属性你正在做的动作?

如果你在谈论你步行的速度,通常是WALSPSPEED,WalkSpeed,walkSpeed(这种情况与你选择的语言相匹配)。

要命名它,speedWalk会告诉下一位讲英语的程序员,他会评论你的代码,你正在处理某种speed-walking模拟和eating competition

相关问题