2017-02-23 109 views
0

自从iVE开始作为一年前编程的实习生以来,我目前处于最糟糕的困境中。命名变量的长度

我目前在实习2个月,香港专业教育学院被告知:

“的时间越长,并描述您的变量和函数名是 更好”

中的问题我的意见是:

事情可以变得真的不可读。我的意思是变量名应该是明显的,而不必从左向右扫描眼睛。

例如让我们假设我们有一个名为汽车类:

Car { 

    int drivingSpeed = 1; 

    int drivingSpeedOfCar: 2; 

} 

我找到第二个变量unneccesarily描述自变量包含在已经类描述指的是什么样的速度。

再有是这样的:

Moon { 
    float rotationX = 45.0; 
    float rotationAngleX = 45.0; 
    float currentRotationXAngleInDegrees = 45; 
    float currentRotationXAngleInDegreesOfMoon = 45; 
} 

我发现已经的rotationX解释这一切。它指的是卫星的旋转角度。当我们做某种旋转时,我们知道它的角度。然后AngleInDegrees部分似乎有点矫枉过正,并使名称更复杂,但它是描述性的。

我的问题是:哪个例子最受欢迎?很长的描述性名称,以便任何人都可以理解正在发生的事情或减少变量名称,从而也减少总体冗长度?

回答

0

首先,所有变量名的长度都不会对程序的运行造成任何问题,而是对调试部分造成任何问题,特别是当另一位程序员想要帮助您时。我会建议你为变量使用最有意义的名称,不要将它们与方法或类混淆。

0

从来源:编码技术和编程实践https://msdn.microsoft.com/en-us/library/aa260844(v=vs.60).aspx

名称

最有影响力的辅助工具之一也许了解应用程序的逻辑流是如何应用的各种元素的命名方式。一个名字应该告诉“什么”而不是“如何”。通过避免公开可能会改变的底层实现的名称,您可以保留一个简化复杂性的抽象层。例如,您可以使用GetNextStudent()而不是GetNextArrayElement()。

一个命名的宗旨是难以选择一个合适的名称可能表明您需要进一步分析或定义一个项目的目的。使名字足够长有意义但足够短以避免罗嗦。以编程方式,一个唯一的名称只用于区分一个项目和另一个项目。表达性的名字作为对读者的帮助;因此,提供一个人类读者可以理解的名字是有意义的。但是,要确保所选名称符合适用语言的规则和标准。

以下是推荐的命名方法: 套路

Avoid elusive names that are open to subjective interpretation, such as Analyze() for a routine, or xxK8 for a variable. Such names contribute to ambiguity more than abstraction. 
In object-oriented languages, it is redundant to include class names in the name of class properties, such as Book.BookTitle. Instead, use Book.Title. 
Use the verb-noun method for naming routines that perform some operation on a given object, such as CalculateInvoiceTotal(). 
In languages that permit function overloading, all overloads should perform a similar function. For those languages that do not permit function overloading, establish a naming standard that relates similar functions.