自从我一年前开始作为一名实习生开始以来,我目前处于最糟糕的困境。
我目前正在实习2个月,并且我被告知:
“您的变量和函数名称越长,描述性越强 更好“
我认为问题是:
事情真的变得难以理解。我的意思是变量名称在视线上应该是明显的,而不必从左到右扫描。
例如,假设我们有一个名为car的类:
Car {
int drivingSpeed = 1;
int drivingSpeedOfCar: 2;
}
我发现第二个变量是不必要的描述性的,因为包含变量的类已经描述了速度所指的那个。
然后有这个:
Moon {
float rotationX = 45.0;
float rotationAngleX = 45.0;
float currentRotationXAngleInDegrees = 45;
float currentRotationXAngleInDegreesOfMoon = 45;
}
我发现rotationX已经解释了这一切。它指的是卫星旋转角度。当我们进行某种旋转时,我们知道它和角度。然后,AngleInDegrees部分似乎有点矫枉过正,使名称更复杂,但它具有描述性。
我的问题是:哪个例子最受欢迎?很长的描述性名称,这样任何人都可以理解发生的事情或减少变量名称,从而也减少了总体冗长度?
答案 0 :(得分:0)
首先,变量名称的长度不会对程序的运行造成任何问题,而是对调试部分造成任何问题,尤其是当另一个程序员想要帮助你时。我建议您为变量使用最有意义的名称,不要将它们与方法或类混淆。
答案 1 :(得分: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.