



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
編程中的命名設(shè)計那點事在我開始設(shè)計系統(tǒng)的時候,我會花去很多時間去設(shè)計命名,因為好的命名和好的設(shè)計是分不開的。In the beginning was the Word, and the Word was with God, and the Word was God太初有道。道與神同在,道就是神。 (約翰福音第一章,第一節(jié))在設(shè)計過程中給類,方法和函數(shù)好的命名會帶來好的設(shè)計,雖然這不是一定成立,但是如果壞的命名那一定不會給你帶來好的設(shè)計。在設(shè)計過程,如果你發(fā)現(xiàn)你很難命名某一個模塊,某個方法時,可能你真正遇到的問題不是難命名的問題,而是這個設(shè)計是否真的合理,你或許應(yīng)該花更多的時間來重新設(shè)計一下你的模塊。好的命名不僅會帶來好的設(shè)計,好的命名還提高了程序的可讀性,降低代碼維護(hù)的成本。另一方面,如果糟糕的命名會給代碼帶來一堵無形的墻,讓你必須深入代碼去研究代碼具有的行為,增加你理解代碼的時間。為此我總結(jié)了幾條關(guān)于命名的指導(dǎo)原則,希望這幾條原則能為你的命名設(shè)計帶來幫助,我使用的是C+的語法,當(dāng)然這些原則也很容易擴(kuò)展到其他語言中去。類型命名(類,接口,和結(jié)構(gòu))名字應(yīng)該盡量采用名詞Bad:HappyGood:Happiness不要使用類似名字空間的前綴Bad:SystemOnlineMessageGood:System:Online:Message形容詞不要用太多,能描述清楚就行Bad:IAbstractFactoryPatternBaseGood:IFactory在類型中不要使用Manager 或則 Helper 或則其他沒意義的單詞如果你一定要在一個類型上加上Manager或Helper,那么這個類型要么就是命名的非常糟糕,要么就是設(shè)計的非常糟糕,如果是后則,那么這個類型就應(yīng)該管理manage和幫助help一下自己了。Bad:ConnectionManagerXmlHelperGood:ConnectionXmlDocument, XmlNode, etc.如果某個類不能通過簡單的命名來描述它具有的功能,可以考慮用類比的方式來命名Bad:IncomingMessageQueueCharacterArraySpatialOrganizerGood:MailboxStringMap如果你使用類比,你就應(yīng)該一致的使用它們Bad:Mailbox,DestinationIDGood:Mailbox,Address函數(shù)(方法和過程)簡潔Bad:list.GetNumberOfItems()Good:list.Count()不要太簡潔Bad:list.Verify()Good:list.ContainsNull()避免縮寫B(tài)ad:list.Srt()Good:list.Sort()對于完成某件事情的函數(shù)使用動詞Bad:obj.RefCount();Good:list.Clear();list.Sort();obj.AddReference();對于返回布爾型的函數(shù),使用類似提問的方式Bad:list.Empty();Good:list.IsEmpty();list.Contains(item);對于只是返回屬性,而不改變狀態(tài)的函數(shù)則使用名詞Bad:list.GetCount();Good:list.Count();不要在函數(shù)名字中重復(fù)參數(shù)的名稱Bad:list.AddItem(item);handler.ReceiveMessage(msg);Good:list.Add(item);handler.Receive(msg);不要方法的名字中重復(fù)此方法的類的名稱Bad:list.AddToList(item);Good:list.Add(item);不要在函數(shù)的名字中加入返回類型,除非函數(shù)名必須以返回類型進(jìn)行區(qū)別Bad:list.GetCountInt();Good:list.GetCount();message.GetIntValue();message.GetFloatValue();不要名字中使用And 或則 Or如果你使用一個連接詞來連接函數(shù)名,那么這個函數(shù)肯定是做了太多的事情,更好的做法是將其分成更小的函數(shù)來處理(類似面向?qū)ο笤O(shè)計準(zhǔn)則中的責(zé)任單一原則)。如果你想確保是這是一個原子的操作,那么你應(yīng)該用一個名字來描述這個操作或一個類來封裝他Bad:mail.VerifyAddressAndSendSt
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)班里國慶活動方案
- 天津祭掃活動方案
- 大小姐親子活動方案
- 夏日員工團(tuán)建活動方案
- 旅游景區(qū)清潔及環(huán)境衛(wèi)生管理合同
- 電子產(chǎn)品包裝設(shè)計創(chuàng)新與市場拓展合同
- 商務(wù)辦公場地租賃及商務(wù)服務(wù)合同
- 生態(tài)旅游區(qū)場地租賃合同印花稅支付說明
- 采棉機(jī)操作與維護(hù)綜合服務(wù)合同
- 車輛抵押汽車租賃金融服務(wù)管理合同
- 2023年瀘州市文化和旅游系統(tǒng)事業(yè)單位招聘筆試模擬試題及答案
- 醫(yī)療器械行業(yè)市場部人員崗位職責(zé)
- (中醫(yī)內(nèi)科)高級、副高級職稱考試模擬試題及答案
- 跌倒墜床原因分析預(yù)防措施
- 部編版小學(xué)道德與法治三年級下冊期末質(zhì)量檢測試卷【含答案】5套
- 弱電施工安全技術(shù)交底
- DB21T 3354-2020 遼寧省綠色建筑設(shè)計標(biāo)準(zhǔn)
- 安全生產(chǎn)知識應(yīng)知應(yīng)會
- 08S305-小型潛水泵選用及安裝圖集
- 體育器材采購設(shè)備清單
- 二手車鑒定評估報告書最終
評論
0/150
提交評論