天天看點

學會這3個必備技巧 程式設計命名變量不再困難 附Github上變量命名工具

昨天和一位年輕朋友聊天,他告訴我在他寫代碼的時候,總會被變量命名所難到,不知道怎樣命名變量是最有效的。

你是否也被類似的問題困擾過?

其實,我在一開始寫代碼的時候也為命名變量煩惱過。後來看了許多其他人的項目,請教了前輩的經驗,慢慢也摸索出了變量命名方法和技巧,在此分享給大家,希望能幫到有類似疑惑的朋友。

學會這3個必備技巧 程式設計命名變量不再困難 附Github上變量命名工具

關于變量命名,在此分享4點建議:

一、多讀代碼

你可以回憶一下,你現在常用的那幾個變量名稱,它們中是不是有很大一部分最早是出現在别人的代碼裡?

必須承認,你所寫的代碼很多時候并不那麼特殊。可能已經有無數前人遇到過相同需求,編寫過相似代碼。多看一些其他人的代碼,你可以從中得到啟發,為你未來構寫代碼、命名變量的時候提供靈感。

二、多讀書籍

程式設計是一種語言,語言都是後天習得的。作為程式設計語言能力的一部分,變量命名也可以通過學習習得。除了上述向别人的代碼學習外,還有一個選項就是看英文書籍。

至于挑選書目,我建議要有針對性,可以選擇一些和你目前業務場景相關的書。通過這些書,你可以在深入了解整個業務邏輯,同時還能在不經意間獲得與業務相關的英語詞彙,這對你變量起名幫助很大。

三、命名技巧

關于變量、類名:

  1. 變量名一般使用英語,不要用動詞,變量名通常建議使用名詞,選擇的名詞需要直接指向該變量的意涵;
  2. 可以在名詞前面添加修飾詞來區分相似變量,修飾詞可以是形容詞,如sortKey中的sort,也可以是指向更細節的名詞,如DataFrame中的Data;
  3. 如果該變量是基礎資料類型,則通常使用名詞的單數型式,如果該變量是諸如Array、List、Set這樣的資料集合,則通常使用名詞的複數形式作為變量名;
  4. 類名的命名技巧和變量基本一緻,不過類名一般不使用複數。

關于函數名和方法名:

函數名和方法名的命名邏輯就比較多樣了,這裡的技巧分享僅作為抛磚引玉,歡迎補充:

  1. 方法命名的核心是動詞:很多方法用純動詞來表達,如:concat、match等;
  2. 有些方法名會使用動賓詞組:即“動詞+作用對象名詞”的形式。值得一提的是,這裡的名詞在邏輯上也往往可以是方法後面的參數,如:hasNext、trimEnd,這裡的Next和End邏輯上也可以是has和trim的參數;
  3. 活用介詞:介詞是英語的一大特色,在我們給變量起名的時候也扮演了重要的角色,大量地出現在方法名中,如:startsWith、charAt等;
  4. 有些方法是以動名詞的形式出現:通過動詞向'er'、'ing'、'ed'的變形來命名方法。這類方法名的一大特點是,指向的結果往往是一個對象執行個體,常見的如constructor、cheching等;
  5. 最後一種方法名,就是純名詞的形式:這種方法通常是輸出和擷取該對象中某個特定的屬性或者變量,這種命名方式本質上就是命名變量,可以參考上文對變量的命名,如:keys、items等。

其它技巧

  1. 熟練使用局部變量和作用域:有時候同一個變量名會在多處用到,且指向的含義不同。這時候,熟練掌握局部變量和作用域就非常必要了,這讓這些相近概念的變量有了使用同一個變量名的可能性,且不會互相影響。常見的例子有for循環中的變量i,就是利用了局部變量和作用域的特性。不過這個方法需要對該語言有相當深刻的了解,否則容易出現變量覆寫。
  2. 活用匿名函數:匿名函數也是一個減少變量命名的神器,如果能熟練掌握匿名函數的使用,通常可以減少10%左右的變量命名工作。但凡事皆有利弊,匿名函數的缺點是多人開發和維護時會造成了解上的難度。
  3. 定期檢查僵屍代碼:可以有效地幫助你清理變量備援,為變量起名提供更多餘地。

分享了這麼多幹貨,看到這裡的你,難道不點個贊嗎~

學會這3個必備技巧 程式設計命名變量不再困難 附Github上變量命名工具

四. Github項目分享:

最後,我在這裡給大家總結了一些和變量命名有關的Github上的高分項目,大家可以依此學習變量命名技巧:

1. codelf

  • url: https://github.com/unbug/codelf
  • star: 13000
  • fork: 968
  • watch: 257

這是一個變量命名工具。計算機科學中最困難的兩件事:緩存故障和命名。這個工具支援直接搜尋中文,當您檢索中文時,Codelf 會直接翻譯單詞并找到單詞的同義詞。然後搜尋Github、Bitbucket、Google Code等開源項目的源代碼比對與這些詞相關的變量名和函數名。

線上網址->https://unbug.github.io/codelf/

學會這3個必備技巧 程式設計命名變量不再困難 附Github上變量命名工具

2. clean-code-php

  • url: https://github.com/jupeter/clean-code-php
  • star: 11000
  • fork: 2800
  • watch: 461

PHP代碼的整潔之道,整理了一系列整潔代碼實操。小到變量細到 SOLID 都有涉獵,中文譯版->https://github.com/php-cpm/clean-code-php

學會這3個必備技巧 程式設計命名變量不再困難 附Github上變量命名工具

3. one-python-craftsman

  • url: https://github.com/piglei/one-python-craftsman
  • star: 5000
  • fork: 823
  • watch: 190

這個項目是針對Python的開發規範。優秀的 Python 代碼由無數優秀的細節組成。這個項目詳細的解釋 Python 那些看似簡單的細節,如何使用異常,如何命名變量,如何編寫條件分支等,這些看似簡單其實也可能是最難的地方。本項目作者是資深 Python 開發,内容接近實際工作和業務場景,我相信仔細學習這個項目,你的編碼能力會大大提高,幫助你幫助你 Python 更高更遠的發展道路。

與變量命名相關的部分,可以直接點這裡->https://www.zlovezl.cn/book/ch01_variables.html

以下是我之前分享的有關寫代碼的使用技巧,有需要的同學可以直接點選下方連結擷取:

【推薦閱讀】

程式員如何寫出一手優雅的代碼?18條規則你必須要知道

「LSTM文本生成器」動手寫一個自動生成文章的AI,附完整代碼

結束語

我是@老K玩代碼,專注于程式設計開發的經驗總結和項目分享,如果你對程式設計感興趣,可以關注我。

有其它開發相關的問題,歡迎随時私信我。

學會這3個必備技巧 程式設計命名變量不再困難 附Github上變量命名工具

繼續閱讀