2017-02-23 143 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.