下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、編程中的命名設(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è)計一下你的
2、模塊。好的命名不僅會帶來好的設(shè)計,好的命名還提高了程序的可讀性,降低代碼維護的成本。另一方面,如果糟糕的命名會給代碼帶來一堵無形的墻,讓你必須深入代碼去研究代碼具有的行為,增加你理解代碼的時間。為此我總結(jié)了幾條關(guān)于命名的指導(dǎo)原則,希望這幾條原則能為你的命名設(shè)計帶來幫助,我使用的是c+的語法,當然這些原則也很容易擴展到其他語言中去。類型命名(類,接口,和結(jié)構(gòu))名字應(yīng)該盡量采用名詞bad:happygood:happiness不要使用類似名字空間的前綴bad:systemonlinemessagegood:system:online:message形容詞不要用太多,能描述清楚就行bad:iabst
3、ractfactorypatternbasegood:ifactory在類型中不要使用manager 或則 helper 或則其他沒意義的單詞如果你一定要在一個類型上加上manager或helper,那么這個類型要么就是命名的非常糟糕,要么就是設(shè)計的非常糟糕,如果是后則,那么這個類型就應(yīng)該管理manage和幫助help一下自己了。bad:connectionmanagerxmlhelpergood:connectionxmldocument, xmlnode, etc.如果某個類不能通過簡單的命名來描述它具有的功能,可以考慮用類比的方式來命名bad:incomingmessagequeuech
4、aracterarrayspatialorganizergood:mailboxstringmap如果你使用類比,你就應(yīng)該一致的使用它們bad:mailbox,destinationidgood:mailbox,address函數(shù)(方法和過程)簡潔bad:list.getnumberofitems()good:list.count()不要太簡潔bad:list.verify()good:list.containsnull()避免縮寫bad:list.srt()good:list.sort()對于完成某件事情的函數(shù)使用動詞bad:obj.refcount();good:list.clear();
5、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:li
6、st.addtolist(item);good:list.add(item);不要在函數(shù)的名字中加入返回類型,除非函數(shù)名必須以返回類型進行區(qū)別bad:list.getcountint();good:list.getcount();message.getintvalue();message.getfloatvalue();不要名字中使用and 或則 or如果你使用一個連接詞來連接函數(shù)名,那么這個函數(shù)肯定是做了太多的事情,更好的做法是將其分成更小的函數(shù)來處理(類似面向?qū)ο笤O(shè)計準則中的責任單一原則)。如果你想確保是這是一個原子的操作,那么你應(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國免燙防皺襯衣行業(yè)投資前景及策略咨詢研究報告
- 2024年中國電動工具零件市場調(diào)查研究報告
- 2024八年級數(shù)學(xué)上冊第四章圖形的平移與旋轉(zhuǎn)4圖形變化的簡單應(yīng)用習(xí)題課件魯教版五四制
- 2024年湖北客運考試口訣是什么內(nèi)容
- 2024年呼和浩特客車從業(yè)資格證考試試題題庫
- 2024年果洛客運從業(yè)資格摸擬考試
- 2024年貴陽客運從業(yè)資格證考試模擬試題題庫
- 2024年瀘州客運從業(yè)資格證理論考試答案
- 2024年北京客運旅客急救考試題及答案
- 2024年福州從業(yè)資格證客運考試題庫
- 人教版2024新版七年級上冊數(shù)學(xué)期中模擬測試卷(含答案解析)
- 2024中國石化校園招聘超1萬人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- GB/T 18029.8-2024輪椅車第8部分:靜態(tài)強度、沖擊強度及疲勞強度的要求和測試方法
- 中華民族共同體概論課件專家版9第九講 混一南北和中華民族大統(tǒng)合(元朝時期)
- 電梯日管控、周排查、月調(diào)度內(nèi)容表格
- 《戰(zhàn)爭與和平法》讀書筆記思維導(dǎo)圖
- (完整版)護士延續(xù)注冊體檢表
- (完整版)六宮格數(shù)獨100題
- 產(chǎn)業(yè)投資基金可行性研究報告1
- 防火墻在企業(yè)局域網(wǎng)中的架設(shè)及配置方法
- 冰柜投放協(xié)議
評論
0/150
提交評論