2010-06-05 220 views
9

假設我有一個變量,它包含文件中搜索引擎名稱的數量,你會怎樣命名它?長變量名稱

  • number_of_seach_engine_names
  • search_engine_name_count
  • num_search_engines
  • 引擎
  • engine_names
  • 其他名字呢?

第一個名稱描述了變量包含的內容,但不是太長嗎?,有關選擇變量名稱的任何建議?特別是如何縮短太長的名稱或使用什麼樣的縮寫?

+3

我不幸與許多人稱它爲「nsen」,甚至只是'n'。 只要你的變量和函數名稱是一致的和描述性的,不要太擔心它(你可能會考慮命名函數作爲動詞,使你的代碼「讀」更好)。 如果你曾經用任何無意義的變量維護任何代碼,你肯定會詛咒作者(而且地獄有一個特殊的地方保留給那些必須維護自己的代碼,遇到麻煩並且仍然不改變方式的人) 。 – Mawg 2010-06-23 01:02:23

+3

很久以前,我曾經剪切和粘貼我的變量和函數名,但是現在大多數IDE都有代碼完成,所以要說明性。 我相信可憐的變量命名是一種「代碼味道」,並且通常伴隨着缺乏結構,缺乏評論等。 也許我會過度的,但不再使用傳統的(來自Fortran)'' i,j,k'爲循環控制變量。 – Mawg 2010-06-23 01:02:45

+0

你可能會存儲在一個數組或字典'引擎',然後說'engines.count'或'engines.len'或任何適當的方法名稱可能是 – Brandin 2014-08-08 18:43:30

回答

19

numEngineNames怎麼樣?

選擇變量名稱比科學更具有藝術性。你想要一些不需要劃分時代的東西,但要足夠長才能表達。這是一個主觀的平衡。

問問你自己,如果有人第一次看變量名,那麼這個人是否理解它的目的是否合理?

6

它取決於變量的範圍。在一個短的函數中的局部變量通常不值得一個'完美的名字',就叫它engine_count或類似的東西。通常意義很容易被發現,如果不是評論可能比兩行變量名稱更好。更大範圍的

變量 - 即全局變量(如果他們是真的必要!),成員變量 - 恕我直言值得的名稱是幾乎自紀錄片。當然,查看原始聲明並不困難,大多數IDE會自動完成,但變量的標識符不應該沒有意義(即numbercount)。

當然,這一切都很大程度上取決於您的個人編碼風格和工作場所的慣例。

12

如果存在一個較短的名稱,該名稱同樣表達變量的用途,則該名稱太長。

我認爲engineCount會很好。引擎名稱的數量大概等於引擎的數量。

請參閱JaredPar的帖子。

1

如果它是一個函數中的局部變量,我可能會稱之爲n,或者可能是ne。大多數函數只包含兩個或三個變量,所以不需要長名稱。

+7

我不同意,它肯定取決於函數,但變量應該仍然足以描述其意義。如果它只是一個三線函數,並且n被設置爲engines.Count在第一行,那麼含義是顯而易見的。但隨着函數的增長,n的使用可能會越來越遠離它的初始化方式,這個名稱的含義就更少了。一般來說,我認爲1和2個字符的名字應該僅用於短時間的一次性變量,比如循環變量和lambda參數。 – 2010-06-05 19:34:02

+0

@Anthony隨着函數的增長,它應該被重構爲更短的函數。 – 2010-06-05 19:36:17

+5

我不是在談論延伸數百行甚至數十行的函數。但是給這個名字的含義有多難?想象一下可能需要在代碼的某處查看代碼的可憐的sap,並且認爲可憐的sap可能是你。 – 2010-06-05 19:41:50

-2

取決於使用期限或預期用途。但是,這包括髮展壽命。我最近命名了一個矢量「東西」,因爲它僅用於實驗。

如果一個變量只在其使用旁邊聲明或定義,那麼我就不會打擾一個表達性的名稱。如果沒有,我會去找一箇中等長度的名字。我永遠無法理解爲什麼人們會使用名字,比如說10個以上的字符。像enames這樣的東西將是我對你提出的問題的選擇。

2

取決於上下文,如果它是一個局部變量,例如

int num = text.scan(SEARCH_ENGINE_NAME).size(); 

我會選擇表達名字越短的更明確的右手。理性的是,我們處於4-5行的有限範圍內,因此可以假設讀者能夠在短名和右手錶達之間建立聯繫。但是,如果它是一個類的領域,我寧願儘可能詳細。

2

查看類似question

primary technical imperative是降低複雜性。應該命名變量來降低複雜性。有時這會導致名稱縮短,名稱縮短。它通常對應於維護人員理解代碼的複雜程度有多困難。

在頻譜的一端,您有循環迭代器和索引。這些可以有像i或j這樣的名字,因爲它們就是那麼普通和簡單。給他們更長的名字只會導致更多的混淆。

如果一個變量經常被使用,但代表更復雜的東西,那麼你必須給它一個明確的名字,以便用戶不必在每次使用它時重新學習它的含義。

另一方面是很少使用的變量。你仍然想在這裏減少混淆,但給它一個簡短的名字並不重要,因爲重新學習變量目的的懲罰並不經常付出。

1

想想你的代碼時,試着從別人的角度來看待它。這不僅有助於挑選姓名,還有助於保持代碼的整體可讀性。

真的很長的變量名會混淆你的代碼的可讀性,所以你想避免這些。但在另一方面,你想避免使用超短名稱或縮略詞,如「n」或「ne」。這些簡短而神祕的名字會導致有人試圖閱讀你的代碼來撕掉他們的頭髮。例如,通常一到兩個字母變量用於小任務,例如在for循環中遞增。

所以你留下的是在這兩個極端之間的平衡。 「Num」是一個常用的縮寫,任何半經驗的程序員都會立即知道你的意思。所以像「numEngines」或「numEngineNames」這樣的東西可以很好地工作。除此之外,您還可以在第一次使用變量時在代碼旁邊添加註釋。這將讓讀者確切地知道你在做什麼,並幫助避免任何可能的混淆。

1

我會將它命名爲「search_engine_count」,因爲它包含搜索引擎的計數。

0

使用Esc鍵 + _ + Esc鍵寫:

this_is_a_long_variable = 42 

Esc鍵 + _ + Esc鍵_不在數學相同的字符。這就是爲什麼你被允許使用前者而不是後者。

+0

積分轉到jVincent https://mathematica.stackexchange.com/a/31785/47875 – Miladiouss 2017-05-06 01:42:38