「你取的變量名太糟糕了」可能是程序員們互相吐槽的常規(guī)起手式,此外還有不寫注釋、不換行(換行?)、需求不明……
![]()
Phil Karlton:計算機科學領域有兩個難題:一個是緩存失效,另一個就是命名。
好了好了,有了這個神奇的網(wǎng)站,今天我們來解決第一大問題,讓我們和基于漢語拼音的變量名系統(tǒng)說再見吧。
![]()
網(wǎng)站地址:https://unbug.github.io/codelf/
GitHub 鏈接:https://github.com/unbug/codelf#codelf-for-vs-code
我們做了一些嘗試,比如在搜索框中鍵入中文「殘差」,搜索框下方會出現(xiàn) Suggestions,列出了多個英文翻譯。Suggestions 下方那片「五彩斑斕」默認為是包含第一個建議英文翻譯的所有變量名和函數(shù)名。
![]()
點擊其他建議翻譯,下方「五彩斑斕」也會隨之改變。比如點擊「error」,搜索結果的變化如下所示。
![]()
你也可以選擇自己喜歡的編程語言,比如 Python。
![]()
看看搜索結果的變化。
![]()
將鼠標指針放置在某個彩色框上,會出現(xiàn)「Search」、「Repo」、「Copy」、「Codes」四種選項。用戶可以點擊這些選項,使用對應功能。
![]()
點擊「Search」就是基于當前命名搜索其它相關的命名。比如,在「residuals」上點擊「Search」后結果如下所示。
![]()
點擊「Repo」就是鏈接到使用該命名的代碼所在的資源庫。
![]()
點擊「Copy」是復制該命名。
點擊「Codes」可以查看使用命名的示例代碼。
![]()
可以根據(jù)需要選擇不同語言的示例代碼。
![]()
據(jù)作者介紹,Codelf 的內部原理是:先到有道翻譯 API 取中文的英文翻譯,然后搜索 GitHub 取變量。該網(wǎng)站支持直接搜索中文,在搜索框鍵入中文后,Codelf 會提供查好的單詞及其近義詞,然后通過搜索 Github、Bitbucket、Google Code、Codeplex、Sourceforge、Fedora Project 上的開源項目的源碼匹配出與這些詞匯相關的變量名和函數(shù)名。當然,直接輸入英文也是可以的,Codelf 會提供相關的命名。
![]()
為類,變量和函數(shù)命名,是一種藝術。對于高質量的代碼來說,這是基本功。
![]()
首先,如果公司制定有命名規(guī)范,則請按照規(guī)范來命名。大家都遵守這點,代碼才會顯得美觀,易讀。
其次,如果公司或團隊沒有統(tǒng)一規(guī)定,則參考經典命名規(guī)范,例如匈牙利命名法,在每個變量名的前面加上若干表示數(shù)據(jù)類型的字符,變量名=屬性+類型+對象描述。又如駱駝命名法,混合使用大小寫字母來構成變量和函數(shù)的名字。又如帕斯卡命名法,首字母為大寫。
![]()
最后,建議多看多參考優(yōu)質開源代碼,例如Linux,思考和學習牛人的命名手法,去其糟粕,釆其精華,養(yǎng)成更加優(yōu)秀的命名習慣。
![]()
謝謝大家。
使用 Lambda 變量命名將不是問題...
命名規(guī)范好解決,格式什么的還是小事。取正確的含義更麻煩,特別是我們中國人用英語。一般來說要保證字面意義貼近實際用途,變量或屬性一般用名詞或形容詞,方法一般用動詞或動詞名詞組合。還有就是英語實際意義理解錯誤,用中式英語命名。還有干脆名稱與意義完全無關,這些都是需要極力避免的。感覺庫的源代碼看得多了,命名自然就專業(yè)了。
