最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

每個程序員需掌握的20個代碼命名小貼士

 更新時間:2015年03月24日 23:26:26   投稿:mdxy-dxy  
這篇文章主要介紹了每個程序員需掌握的20個代碼命名小貼士,需要的朋友可以參考下

代碼中到處都需要命名。作為程序員,我們得給類命名,給變量命名,給函數(shù)命名,給參數(shù)命名,給命名空間命名,等等等等。下面有20條小貼士能幫助你提高你的命名能力。

1.使用能夠表達(dá)意圖的名字

名字得能告訴我們它要做什么,為什么存在,以及是如何工作的。選擇能夠表達(dá)意圖的名字,將更有利于我們理解代碼。

int d; // elapsed time in days

int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;

在上面的片段中,我們只能從注釋中知道變量d指的是什么。于是閱讀代碼的人為了知道它的含義就不得不去尋找它的實(shí)例以獲取線索。所以,要是我們能夠好好命名這個變量,閱讀代碼的人就能夠瞬間知道這變量的含義。

2.不要怕在選擇名字上花時間
你應(yīng)該多試幾種不同的名字,直至足以描述其含義,千萬不要害怕在這上面花時間。以后閱讀你代碼的人(包括你自己)將會因此而受益。此外,一個描述性的名稱甚至還能有助于你在心中理清模塊的設(shè)計(jì)。良好的命名的確需要花費(fèi)時間,但是從長遠(yuǎn)來看,利大于弊。

3.重構(gòu)名字
如果你在后面的開發(fā)過程中想到了一個更好的名字,那就不要猶豫,馬上去改吧?,F(xiàn)在的IDE使得重構(gòu)名字變得異常容易。

4.避免在名字中出現(xiàn)干擾詞
比如Manager、Processor、Data、Info以及“我不知道這叫什么”的同義詞,都是干擾詞。如果你需要使用上面這些干擾詞的話,那么說明你的命名可能太累贅了。

5.小心難以命名的類/功能
一個很難命名的類或函數(shù)很有可能是一個代碼異味。這說明:

代碼做得太多。
代碼做得還不夠。
你對此問題理解得還不夠透徹,需要先獲取更多的信息。
6.類名
類應(yīng)該有個名詞或名詞詞組的名字,如Customer、WikiPage、Account和AddressParser。繼承性父類應(yīng)該給個又短又有沖擊力的名字。子類的名字應(yīng)該長點(diǎn),通過形容詞來描述其不同于它的父類之處,如SavingsAccount衍生于Account。

7.變量名
變量名也應(yīng)該是名詞。它們大多是由其指向的類衍生出去的。布爾變量應(yīng)寫成謂詞的形式,如isEmpty和isTerminated,這樣放到if語句才便于理解。

8.方法名
方法名應(yīng)該是一個動詞或動詞詞組,如postPayment()、deletePage()和save()。訪問器和調(diào)整器應(yīng)該分別前綴get和set。返回布爾值的方法應(yīng)該前綴‘is',如isPostable(),這樣在if語句中才便于理解。

9.范圍大小與變量名的長度
變量名的長度應(yīng)和它的范圍大小相匹配。如果變量的范圍很短,那么變量名的長度也應(yīng)該很短。反之,變量名則應(yīng)該長一點(diǎn),更有描述性。

10.范圍大小與方法/類名的長度
對于方法和類名的長度則應(yīng)該與其范圍成反比。對于公共方法,短一點(diǎn)的名字會比較好,這是因?yàn)樗鼈儠徽{(diào)用多次。私有方法只在類的范圍內(nèi)被調(diào)用,長一點(diǎn)的名字反而可以作為文檔使用。此條規(guī)則的例外是派生類的名字。類越派生,基類前所加的形容詞就越多,名字也就越長。

11.一個概念一個詞
為某個抽象概念選定一個詞,然后就不要變了。例如作為不同類中的等效方法,get()、fetch()和retrieve()會讓人混淆起來。保持一致的詞匯是程序員駕馭代碼的重要工具。

12.不要將同一個詞用于兩個不同的概念
如果你遵循第11點(diǎn)——一個概念一個詞的原則,那么就可以避免許多有著相同方法名的類。只要參數(shù)列表和各種方法的返回值在語義上是等價的就沒問題。只有當(dāng)你將同一個詞用于兩個不同的概念時才會出現(xiàn)問題。

例如,我們可以在多個類中使用add()方法,通過添加或連接兩個現(xiàn)有的值來創(chuàng)建一個新的值。如果我們之后又需要在類中引入一個add方法用于添加參數(shù)到集合中,這就會因?yàn)檎Z義不同而導(dǎo)致問題。這種新方法最好是改叫為insert()。

13.使用解決方案領(lǐng)域的名字
我們編寫的代碼今后可能會有其他程序員來閱讀,所以我們使用一些技術(shù)術(shù)語進(jìn)行代碼命名會帶來很大的好處。比如適當(dāng)?shù)厥褂盟惴?、設(shè)計(jì)模式名字以及數(shù)學(xué)術(shù)語,這些命名方式很可能會讓其他程序員更容易理解程序,引起共鳴。

14.使用問題領(lǐng)域的名字
如果實(shí)在找不到易于理解的技術(shù)術(shù)語來命名,那么也可以從問題領(lǐng)域來尋找合適的代碼命名。當(dāng)未來閱讀你代碼的程序員不確定代碼意義的時候,這將為他們提供一些問題的線索。

15.添加有意義的語境
大多數(shù)名字其本身是沒有意義的,并且需要放到語境(類/函數(shù)/命名空間)中,才能讓閱讀代碼的人理解它們指代的是什么。在某些情況下,可能需要前綴名稱以補(bǔ)充語境。例如,假設(shè)我們有一些用來表示地址的變量:firstName、lastName、street、houseNumber、city、state和zip。如果只看state這個變量,我們是很難推斷出它指的是什么意思,一個比較好的解決辦法就是將這些變量封裝到Address類中。

16.不要添加沒來由的語境
只要意思明確,短一點(diǎn)的名字通常比長的好,所以不要多此一舉地添加語境。名字前不應(yīng)該被加綴一些可以從類/包/命名空間中推斷的不必要的信息。

17.避免編碼
鑒于現(xiàn)在的IDE的強(qiáng)大,我們已經(jīng)不需要編碼類型和范圍信息到變量名和類名中。這包括不必添加I至接口,因?yàn)槭褂么a的用戶不需要知道他們的類正在向接口傳遞。所以如果你一定要使用編碼,那么最好是對實(shí)現(xiàn)進(jìn)行編碼而不是接口。

18.避免錯誤的信息
不要給一些錯誤的信息,因?yàn)檫@樣會誤導(dǎo)閱讀代碼的人。如果你將一個實(shí)際支持?jǐn)?shù)組的變量命名為accountList,那就很容易讓人得出錯誤的結(jié)論。

19.使用讀不出來的名字
編程是一個社會化的活動,使用那些讀不出來的名字只會阻礙我們的討論。

20.使用易搜索的名字
使用短而通用的名字會妨礙我們在代碼庫中搜索事物。這對我們操縱代碼和重構(gòu)很有影響。

最后,如有不同意見,歡迎不吝賜教。

譯文鏈接:http://www.codeceo.com/article/20-naming-tips-programmer-know.html
英文原文:20 Tips for Better Naming
翻譯作者:碼農(nóng)網(wǎng) – 小峰

相關(guān)文章

  • 微信小程序開發(fā)工具介紹

    微信小程序開發(fā)工具介紹

    這篇文章主要為大家介紹了微信小程序開發(fā)工具及基本的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 關(guān)于爬蟲和反爬蟲的簡略方案分享

    關(guān)于爬蟲和反爬蟲的簡略方案分享

    這篇文章主要給大家介紹了一些關(guān)于爬蟲和反爬蟲的簡略方案的相關(guān)資料,文中介紹的非常詳細(xì),對大家理解和學(xué)習(xí)爬蟲與反爬蟲具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • 圖像檢索之IF-IDF,RootSift,VLAD

    圖像檢索之IF-IDF,RootSift,VLAD

    TF-IDF是一種用于信息檢索的常用加權(quán)技術(shù),在文本檢索中,用以評估詞語對于一個文件數(shù)據(jù)庫中的其中一份文件的重要程度,本文給大家介紹下圖像檢索之IF-IDF,RootSift,VLAD的相關(guān)知識,感興趣的朋友一起看看吧
    2021-12-12
  • 微信小程序(應(yīng)用號)組件詳細(xì)介紹

    微信小程序(應(yīng)用號)組件詳細(xì)介紹

    這篇文章主要介紹了微信小程序(應(yīng)用號)組件詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Deepseek部署到本地Windows的詳細(xì)過程

    Deepseek部署到本地Windows的詳細(xì)過程

    如何在Windows10系統(tǒng)上部署DeepSeekAI人工智能,步驟包括安裝Ollama底層軟件和選擇合適的模型進(jìn)行部署,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • 互聯(lián)網(wǎng)科技大佬推薦的12本必讀書籍

    互聯(lián)網(wǎng)科技大佬推薦的12本必讀書籍

    12本互聯(lián)網(wǎng)科技大佬推薦的必讀書籍,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 基于chatgpt開發(fā)QQ機(jī)器人原理分析

    基于chatgpt開發(fā)QQ機(jī)器人原理分析

    ChatGPT是當(dāng)前自然語言處理領(lǐng)域的重要進(jìn)展之一,可應(yīng)用于多種場景,如智能客服、聊天機(jī)器人、語音助手等。本文通過調(diào)用OpenAI GPT-3模型提供的Completion API來實(shí)現(xiàn)一個更加智能的QQ機(jī)器人,文中原理代碼介紹的非常詳細(xì),感興趣的同學(xué)可以參考下
    2023-05-05
  • csv文件容錯處理方法

    csv文件容錯處理方法

    這篇文章主要介紹了csv文件容錯處理方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • VSCode?Web?IDE?Coder?安裝及使用

    VSCode?Web?IDE?Coder?安裝及使用

    Coder是VS?Code的Web?IDE,分Code?Server?和?Coder,Code?Server安裝在服務(wù)器上,通過瀏覽器打開地址后可以使用一個web版的VS?Code,也就是Coder,但VS?Code的插件無法使用。這篇文章主要介紹了VSCode?Web?IDE?Coder?安裝及使用,需要的朋友可以參考下
    2021-12-12
  • 解決VIM顯示utf-8文件亂碼問題

    解決VIM顯示utf-8文件亂碼問題

    在Vim中,有四個與編碼有關(guān)的選項(xiàng),它們是:fileencodings、fileencoding、encoding和termencoding。下面,我們詳細(xì)介紹一下這四個選項(xiàng)的含義和作用,感興趣的朋友一起看看吧
    2020-02-02

最新評論

同江市| 万全县| 尼玛县| 延长县| 巧家县| 乌拉特中旗| 拜城县| 安顺市| 息烽县| 巴林右旗| 河北省| 扎兰屯市| 建湖县| 黄浦区| 布尔津县| 苗栗市| 西华县| 开江县| 钟山县| 鄂尔多斯市| 溧阳市| 乃东县| 金湖县| 崇信县| 东安县| 花莲县| 南澳县| 邯郸县| 肥城市| 永昌县| 东方市| 南通市| 佛冈县| 邵阳县| 昌江| 宜良县| 陈巴尔虎旗| 石渠县| 化德县| 福建省| 会泽县|