每個程序員需掌握的20個代碼命名小貼士_第1頁
每個程序員需掌握的20個代碼命名小貼士_第2頁
每個程序員需掌握的20個代碼命名小貼士_第3頁
每個程序員需掌握的20個代碼命名小貼士_第4頁
每個程序員需掌握的20個代碼命名小貼士_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

每個程序員需掌握的20個代碼命名小貼士代碼中到處都需要命名。作為程序員,我們得給類命名,給變量命名,給函數(shù)命名,給參數(shù)命名,給命名空間命名,等等等等。下面有20條小貼士能幫助你提高你的命名能力。1?使用能夠表達意圖的名字名字得能告訴我們它要做什么,為什么存在,以及是如何工作的。選擇能夠表達意圖的名字,將更有利于我們理解代碼。<spanstyle="font-size:14px;">intd;//elapsedtimeindaysintelapsedTimelnDays;intdaysSinceCreation;intdaysSinceModification;intfileAgeInDays;</span>在上面的片段中,我們只能從注釋中知道變量d指的是什么。于是閱讀代碼的人為了知道它的含義就不得不去尋找它的實例以獲取線索。所以,要是我們能夠好好命名這個變量,閱讀代碼的人就能夠瞬間知道這變量的含義。2■不要怕在選擇名字上花時間你應(yīng)該多試幾種不同的名字,直至足以描述其含義,千萬不要害怕在這上面花時間。以后閱讀你代碼的人(包括你自己)將會因此而受益。此外,一個描述性的名稱甚至還能有助于你在心中理清模塊的設(shè)計。良好的命名的確需要花費時間,但是從長遠來看,利大于弊。右羸i黑網(wǎng)?3■重構(gòu)名字如果你在后面的開發(fā)過程中想到了一個更好的名字,那就不要猶豫,馬上去改吧?,F(xiàn)在的IDE使得重構(gòu)名字變得異常容易。比如Manager、Processor、Data、Info以及"我不知道這叫什么”的同義詞,都是干擾詞。如果你需要使用上面這些干擾詞的話,那么說明你的命名可能太累贅了。5■小心難以命名的類/功能一個很難命名的類或函數(shù)很有可能是一個代碼異味。這說明:代碼做得太多。代碼做得還不夠。你對此問題理解得還不夠透徹,需要先獲取更多的信息。6■類名類應(yīng)該有個名詞或名詞詞組的名字,如Customer、WikiPage、Account和AddressParser。繼承性父類應(yīng)該給個又短又有沖擊力的名字。子類的名字應(yīng)該長點,通過形容詞來描述其不同于它的父類之處,如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)該長一點,更有描述性。10■范圍大小與方法/類名的長度對于方法和類名的長度則應(yīng)該與其范圍成反比。對于公共方法,短一點的名字會比較好,這是因為它們會被調(diào)用多次。私有方法只在類的范圍內(nèi)被調(diào)用,長一點的名字反而可以作為文檔使用。此條規(guī)則的例外是派生類的名字。類越派生,基類前所加的形容詞就越多,名字也就越長。11■一個概念一個詞為某個抽象概念選定一個詞,然后就不要變了。例如作為不同類中的等效方法,get()、fetch()和retrieve()會讓人混淆起來。保持一致的詞匯是程序員駕馭代碼的重要工具。12■不要將同一個詞用于兩個不同的概念如果你遵循第11點——一個概念一個詞的原則,那么就可以避免許多有著相同方法名的類。只要參數(shù)列表和各種方法的返回值在語義上是等價的就沒問題。只有當你將同一個詞用于兩個不同的概念時才會出現(xiàn)問題。例如,我們可以在多個類中使用add()方法,通過添加或連接兩個現(xiàn)有的值來創(chuàng)建一個新的值。如果我們之后又需要在類中引入一個add方法用于添加參數(shù)到集合中,這就會因為語義不同而導致問題。這種新方法最好是改叫為insert()。13■使用解決方案領(lǐng)域的名字我們編寫的代碼今后可能會有其他程序員來閱讀,所以我們使用一些技術(shù)術(shù)語進行代碼命名會帶來很大的好處。比如適當?shù)厥褂盟惴?、設(shè)計模式名字以及數(shù)學術(shù)語,這些命名方式很可能會讓其他程序員更容易理解程序,引起共鳴。14■使用問題領(lǐng)域的名字如果實在找不到易于理解的技術(shù)術(shù)語來命名,那么也可以從問題領(lǐng)域來尋找合適的代碼命名。當未來閱讀你代碼的程序員不確定代碼意義的時候,這將為他們提供一些問題的線索。15■添加有意義的語境大多數(shù)名字其本身是沒有意義的,并且需要放到語境(類/函數(shù)/命名空間)中,才能讓閱讀代碼的人理解它們指代的是什么。在某些情況下,可能需要前綴名稱以補充語境。例如,假設(shè)我們有一些用來表示地址的變量firstNamelastNamestreet、houseNumber、city、state和zip如果只看state這個變量,我們是很難推斷出它指的是什么意思,一個比較好的解決辦法就是將這些變量封裝到Address類中。16■不要添加沒來由的語境只要意思明確,短一點的名字通常比長的好,所以不要多此一舉地添加語境。名字前不應(yīng)該被加綴一些可以從類/包/命名空間中推斷的不必要的信息。慕課網(wǎng)?17邂免編碼鑒于現(xiàn)在的IDE的強大,我們已經(jīng)不需要編碼類型和范圍信息到變量名和類名中。這包括不必添加I至接口,因為使用代碼的用戶不需要知道他們的類正在向接口傳遞。所以如果你一定要使用編碼,那么最好是對實現(xiàn)進行編碼而不是接口。18■避免錯誤的信息不要給一些錯誤的信息,因為這樣會誤導閱讀代碼的人。如果你將一個實際支持數(shù)組的變量命名為accountList,那就很容易讓人得出錯誤的結(jié)論。19■使用讀不出來的名字編程是一個社會化的活動,使用那些讀不出來的名字只會阻礙我們的討論。20■使用易搜索的名字使用短而通用的名字會妨礙我們在代碼庫中搜索事物。這對我們操縱代碼和重構(gòu)很有影響。最后,你的代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論