![編程中的命名設計那點事_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/3757ce7e-95db-4432-b483-c26463e0b3ce/3757ce7e-95db-4432-b483-c26463e0b3ce1.gif)
![編程中的命名設計那點事_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/3757ce7e-95db-4432-b483-c26463e0b3ce/3757ce7e-95db-4432-b483-c26463e0b3ce2.gif)
![編程中的命名設計那點事_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/3757ce7e-95db-4432-b483-c26463e0b3ce/3757ce7e-95db-4432-b483-c26463e0b3ce3.gif)
![編程中的命名設計那點事_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/3757ce7e-95db-4432-b483-c26463e0b3ce/3757ce7e-95db-4432-b483-c26463e0b3ce4.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、編程中的命名設計那點事在我開始設計系統(tǒng)的時候,我會花去很多時間去設計命名,因為好的命名和好的設計是分不開的。in the beginning was the word, and the word was with god, and the word was god太初有道。道與神同在,道就是神。 (約翰福音第一章,第一節(jié))在設計過程中給類,方法和函數(shù)好的命名會帶來好的設計,雖然這不是一定成立,但是如果壞的命名那一定不會給你帶來好的設計。在設計過程,如果你發(fā)現(xiàn)你很難命名某一個模塊,某個方法時,可能你真正遇到的問題不是難命名的問題,而是這個設計是否真的合理,你或許應該花更多的時間來重新設計一下你的
2、模塊。好的命名不僅會帶來好的設計,好的命名還提高了程序的可讀性,降低代碼維護的成本。另一方面,如果糟糕的命名會給代碼帶來一堵無形的墻,讓你必須深入代碼去研究代碼具有的行為,增加你理解代碼的時間。為此我總結(jié)了幾條關(guān)于命名的指導原則,希望這幾條原則能為你的命名設計帶來幫助,我使用的是c+的語法,當然這些原則也很容易擴展到其他語言中去。類型命名(類,接口,和結(jié)構(gòu))名字應該盡量采用名詞bad:happygood:happiness不要使用類似名字空間的前綴bad:systemonlinemessagegood:system:online:message形容詞不要用太多,能描述清楚就行bad:iabst
3、ractfactorypatternbasegood:ifactory在類型中不要使用manager 或則 helper 或則其他沒意義的單詞如果你一定要在一個類型上加上manager或helper,那么這個類型要么就是命名的非常糟糕,要么就是設計的非常糟糕,如果是后則,那么這個類型就應該管理manage和幫助help一下自己了。bad:connectionmanagerxmlhelpergood:connectionxmldocument, xmlnode, etc.如果某個類不能通過簡單的命名來描述它具有的功能,可以考慮用類比的方式來命名bad:incomingmessagequeuech
4、aracterarrayspatialorganizergood:mailboxstringmap如果你使用類比,你就應該一致的使用它們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ù)名字中重復參數(shù)的名稱bad:list.additem(item);handler.receivemessage(msg);good:list.add(item);handler.receive(msg);不要方法的名字中重復此方法的類的名稱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計準則中的責任單一原則)。如果你想確保是這是一個原子的操作,那么你應該用一個名字來描述這個操作或一個類來封裝他bad:mail.verifyaddressandsendst
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基建科工程施工范本合同
- 三農(nóng)村人居環(huán)境整治實施方案
- 公務車輛定點維修合同
- 法人向公司借款合同
- 經(jīng)典房地產(chǎn)開發(fā)的合同
- 編程語言高級應用作業(yè)指導書
- 養(yǎng)殖業(yè)專業(yè)作業(yè)指導書
- 企業(yè)智能核能技術(shù)與應用作業(yè)指導書
- 軟件技術(shù)開發(fā)與測試作業(yè)指導書
- 高港區(qū)二手房買賣合同
- 小學六年級數(shù)學上冊《簡便計算》練習題(310題-附答案)
- 青海省西寧市海湖中學2025屆中考生物仿真試卷含解析
- 2024年河南省《輔警招聘考試必刷500題》考試題庫及答案【全優(yōu)】
- 2024年中國養(yǎng)老產(chǎn)業(yè)商學研究報告-銀發(fā)經(jīng)濟專題
- 高教版2023年中職教科書《語文》(基礎模塊)下冊教案全冊
- 人教版英語七年級上冊閱讀理解專項訓練16篇(含答案)
- 幼小銜接學拼音
- 有限空間辨識參考目錄圖片對照版
- 成本會計第一章總論
- 橋式起重機試驗項目及其內(nèi)容方法和要求
- GA∕T 1193-2014 人身損害誤工期、護理期、營養(yǎng)期評定
評論
0/150
提交評論