【问题标题】:Length for naming variables命名变量的长度
【发布时间】:2017-02-23 11:50:33
【问题描述】:

自从一年前我开始做编程实习生以来,我目前处于最严重的困境。

我目前正在实习 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 部分似乎有点矫枉过正,使名称更复杂,但它是描述性的。

我的问题是:哪些示例最被接受?非常长的描述性名称,以便任何人都可以理解发生了什么或减少变量名称,从而也减少整体冗长?

【问题讨论】:

    标签: coding-style naming-conventions


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      来源:编码技术和编程实践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.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-21
        • 1970-01-01
        • 1970-01-01
        • 2011-02-28
        • 2012-12-28
        • 2021-07-29
        • 1970-01-01
        • 2012-02-05
        相关资源
        最近更新 更多