程式設計風格 程式設計中的命名設計那點事

2022-08-12 02:33:18 字數 2452 閱讀 1536

程式設計中的命名設計那點事

在我開始設計系統的時候,我會花去很多時間去設計命名,因為好的命名和好的設計是分不開的。

in the beginning was the word, and the word was with god, and the word was god

太初有道。道與神同在,道就是神。 (約翰福音第一章,第一節)

在設計過程中給類,方法和函式好的命名會帶來好的設計,雖然這不是一定成立,但是如果壞的命名那一定不會給你帶來好的設計。在設計過程,如果你發現你很難命名某乙個模組,某個方法時,可能你真正遇到的問題不是難命名的問題,而是這個設計是否真的合理,你或許應該花更多的時間來重新設計一下你的模組。

好的命名不僅會帶來好的設計,好的命名還提高了程式的可讀性,降低**維護的成本。另一方面,如果糟糕的命名會給**帶來一堵無形的牆,讓你必須深入**去研究**具有的行為,增加你理解**的時間。

為此我總結了幾條關於命名的指導原則,希望這幾條原則能為你的命名設計帶來幫助,我使用的是c++的語法,當然這些原則也很容易擴充套件到其他語言中去。

型別命名(類,介面,和結構):

不要使用類似名字空間的字首

bad: systemonlinemessage

good: system::online:message

形容詞不要用太多,能描述清楚就行

bad: iabstractfactorypatternbase

good: ifactory

在型別中不要使用manager 或則 helper 或則其他沒意義的單詞

如果你一定要在乙個型別上加上manager或helper,那麼這個型別要麼就是命名的非常糟糕,要麼就是設計的非常糟糕,如果是後則,那麼這個型別就應該管理manage和幫助help一下自己了。

bad: connectionmanager

xmlhelper

good: connection

xmldocument, xmlnode, etc.

如果某個類不能通過簡單的命名來描述它具有的功能,可以考慮用模擬的方式來命名

bad: incomingmessagequeue

characterarray

spatialorganizer

good: mailbox

string

map如果你使用模擬,你就應該一致的使用它們

bad: mailbox,destinationid

good: mailbox,address

函式(方法和過程)

簡潔bad: list.getnumberofitems()

good: list.count()

不要太簡潔

bad: list.verify()

good: list.containsnull()

避免縮寫

bad: list.srt()

good: list.sort()

對於完成某件事情的函式使用動詞

bad: obj.refcount();

good: list.clear();

list.sort();

obj.addreference();

對於返回布林型的函式,使用類似提問的方式

bad: list.empty();

good: list.isempty();

list.contains(item);

對於只是返回屬性,而不改變狀態的函式則使用名詞

bad: list.getcount();

good: list.count();

不要在函式名字中重複引數的名稱

bad: list.additem(item);

handler.receivemessage(msg);

good: list.add(item);

handler.receive(msg);

不要方法的名字中重複此方法的類的名稱

bad: list.addtolist(item);

good: list.add(item);

不要在函式的名字中加入返回型別,除非函式名必須以返回型別進行區別

bad: list.getcountint();

good: list.getcount();

message.getintvalue();

message.getfloatvalue();

不要名字中使用and 或則 or

程式設計中的命名設計那點事

在我開始設計系統的時候,我會花去很多時間去設計命名,因為好的命名和好的設計是分不開的。in the beginning was theword,and the word was with god,and the word was god 太初有道。道與神同在,道就是神。約翰福音第一章,第一節 在設計...

程式設計中的命名設計那點事

本文引自http cocre.com p 990 在我開始設計系統的時候,我會花去很多時間去設計命名,因為好的命名和好的設計是分不開的。in the beginning was theword,and the word was with god,and the word was god 太初有道。道...

程式設計中的命名設計那點事

在我開始設計系統的時候,我會花去很多事情去設計命名,因為好的命名和好的設計是分不開的。in the beginning was the word,and the word was with god,and the word was god 太初有道。道與神同在,道就是神。約翰福音第一章,第一節 在設...