編程命名法
『壹』 編程方法命名到底是動詞在前,還是名詞在前好
函數和方法的命名應該以動詞開始,第一個單詞應以小寫字母作為開頭,後面的單詞則用大寫字母開頭。
例如:initNameArray、closeDialog、sendMessage
不同的語言,風格不同。例如Go語言,在結構體的方法中,以小寫字母開頭的方法是無法在外部訪問的,就像我們面向對象類中的private屬性,以大寫字母開頭的方法可以在外部訪問,就像public屬性。
『貳』 編程中如何給變數命名有哪些規范的做法值得學習借鑒
變數命名可以網路匈牙利命名法
『叄』 變數的命名規則
變數的命名規則遵循 Camel 命名法,並盡量使用能描述變數作用的英文單詞。例如存放學生姓名的變數可以定義成 name 或者 studentName 等。另外,變數名字也不建議過長, 最好是 1 個單詞,最多不超過 3 個單詞。
標識符的命名規則如下:標識符可由三類字元:字母、下劃線、數字組成;標識符只能由字母或下劃線開頭;標識符不能具有二義性;標識符有長度要求,在起定的名字中!超出長度規定的部分將被截掉。
變數命名的規則如下:
①變數名區分字母的大小寫,因此B與b表示的是不同的變數。
②變數名只能由字母、數字和下劃線組成,且必須以英文字母開頭。例如:b,b1,b1a都是合法的,而1b,b,b.2,{b}都是不合法的。
③變數名長度不得超過最大長度限制,超過的部分將被忽略。不同的MATLAB版本,變數的最大長度限制是不同的,用戶可以使用 namelengthmax函數得到該用戶使用的 MATLAB版本所規定的變數名長度。
④關鍵字(如for、end和if等)不能作為變數名。常量是指那些在 MATLAB中已預先定義其數值的變數,也稱預定義變數。變數命名時應盡量避開這些預定義變數。
『肆』 編程過程中變數的命名!
1.首先,該語言的變數格式必須統一
C:每個單詞首字元大寫 java:非首單詞的首字元大寫
2.一般使用英文意義命名
比如: 有一個學生數組。就是student[]或者 stu[]
3.對一個類的內部可以使用同一個字元作為開頭來命名變數
比如:學生類里的姓名 年齡 地址
教師類里的姓名 年齡 地址
分別使用 SName SAge SAddress
TName TAge TAddress
『伍』 什麼是駝峰命名法
駱駝式命名法(Camel-Case)又稱駝峰式命名法,是電腦程式編寫時的一套命名規則(慣例)。正如它的名稱CamelCase所表示的那樣,是指混合使用大小寫字母來構成變數和函數的名字。程序員們為了自己的代碼能更容易的在同行之間交流,所以多採取統一的可讀性比較好的命名方式。
駱駝式命名法就是當變數名或函數名是由一個或多個單詞連結在一起,而構成的唯一識別字時,第一個單詞以小寫字母開始;從第二個單詞開始以後的每個單詞的首字母都採用大寫字母,例如:myFirstName、myLastName,這樣的變數名看上去就像駱駝峰一樣此起彼伏,故得名。
(5)編程命名法擴展閱讀:
駝峰命名法使用前注意事項:
1、由於Java面向對象編程的特性,
在命名時應盡量選擇名詞
2、駝峰命名法(Camel-Case):
當變數名或函式名是由一個或多個單字連結在一起,而構成的唯一識別字時,首字母以小寫開頭,每個單詞首字母大寫(第一個單詞除外)。
如:myFirstName。
包名的書寫規范
(Package) 推薦使用公司或機構的頂級域名為包名的前綴,目的是保證各公司/機構內所使用的包名的唯一性。包名全部為小寫字母,且具有實際的區分意義。
一般要求:
1、選擇有意義的名字,能快速地傳達該類的用途。
2、所有包的命名必須採用小寫英文字母。
實際應用:應用系統中經常應用分層,Dao層(資料庫訪問)、Service層(業務處理)、Web層(頁面控制action類)。
1、包名的前幾個為固定名稱,
如果是網站的話,採用網站的域名的反寫,如果域名還沒有確定的話,採用公司固定的幾個名稱。如:net.vschool
2、在包名的接下來一個單詞為模塊的名稱。如:用戶模塊,包名為net.vschool.user
3、關於模塊的訪問操作,採用分層形式,一般分為:
Dao層操作:一般定義在net.vschool.xxx.
中,其中xxx為模塊名稱。
Service層操作:一般定義在net.vschool.xxx.servie中。
web層操作:一般定義在
net.vschool.xxx.action中。
如下關於用戶模塊的例子:
net.vschool.user。
net.vschool.user.。
net.vschool.user.action。
net.vschool.user.service。
參考資料來源:搜狗網路-駝峰命名法
『陸』 什麼是匈牙利命名法有什麼規則
匈牙利命名法
匈牙利命名法是一種編程時的命名規范。基本原則是:變數名=屬性+類型+對象描述,其中每一對象的名稱都要求有明確含義,可以取對象名字全稱或名字的一部分。命名要基於容易記憶容易理解的原則。保證名字的連貫性是非常重要的。
舉例來說,表單的名稱為form,那麼在匈牙利命名法中可以簡寫為frm,則當表單變數名稱為Switchboard時,變數全稱應該為frmSwitchboard。這樣可以很容易從變數名看出Switchboard是一個表單,同樣,如果此變數類型為標簽,那麼就應命名成lblSwitchboard。可以看出,匈牙利命名法非常便於記憶,而且使變數名非常清晰易懂,這樣,增強了代碼的可讀性,方便各程序員之間相互交流代碼。
這種命名技術是由一位能乾的Microsoft程序員查爾斯·西蒙尼(Charles Simonyi) 提出的,他出生在匈牙利。在 Microsoft 公司中和他一起工作的人被教會使用這種約定。這對他們來說一切都很正常。但對那些 Simonyi 領導的項目組之外的人來說卻感到很奇特,他們認為這是死板的表達方式,甚至說帶有這樣奇怪的外觀是因為它是用匈牙利文寫的。從此這種命名方式就被叫做匈牙利命名法。
據說這種命名法是一位叫 Charles Simonyi 的匈牙利程序員發明的,後來他在微軟呆了幾年,於是
這種命名法就通過微軟的各種產品和文檔資料向世界傳播開了。現在,大部分程序員不管自己使用
什麼軟體進行開發,或多或少都使用了這種命名法。這種命名法的出發點是把量名變按:屬性+類型
+對象 描述的順序組合起來,以使程序員作變數時對變數的類型和其它屬性有直觀的了解,下面
是HN變數命名規范,其中也有一些是我個人的偏向:
屬性部分
全局變數
g_
常量
c_
c++類成員變數
m_
靜態變數
s_
類型部分
指針
p
函數
fn
無效
v
句柄
h
長整型
l
布爾
b
浮點型(有時也指文件)
f
雙字
dw
字元串
sz
短整型
n
雙精度浮點
d
計數
c(通常用cnt)
字元
ch(通常用c)
整型
i(通常用n)
位元組
by
字
w
實型
r
無符號
u
描述部分
最大
Max
最小
Min
初始化
Init
臨時變數
T(或Temp)
源對象
Src
目的對象
Dest
這里順便寫幾個例子:
hwnd : h 是類型描述,表示句柄, wnd 是變數對象描述,表示窗口,所以 hwnd 表示窗口句柄;
pfnEatApple : pfn 是類型描述,表示指向函數的指針, EatApple 是變數對象描述,所以它表示
指向 EatApple 函數的函數指針變數。
g_cch : g_ 是屬性描述,表示全局變數,c 和 ch 分別是計數類型和字元類型,一起表示變數類
型,這里忽略了對象描述,所以它表示一個對字元進行計數的全局變數。
上面就是HN命名法的一般規則。
小結:匈牙利命名法
匈牙利命名法
MFC、句柄、控制項及結構的命名規范 Windows類型 樣本變數 MFC類 樣本變數
HWND hWnd; CWnd* pWnd;
HDLG hDlg; CDialog* pDlg;
HDC hDC; CDC* pDC;
HGDIOBJ hGdiObj; CGdiObject* pGdiObj;
HPEN hPen; CPen* pPen;
HBRUSH hBrush; CBrush* pBrush;
HFONT hFont; CFont* pFont;
HBITMAP hBitmap; CBitmap* pBitmap;
HPALETTE hPaltte; CPalette* pPalette;
HRGN hRgn; CRgn* pRgn;
HMENU hMenu; CMenu* pMenu;
HWND hCtl; CState* pState;
HWND hCtl; CButton* pButton;
HWND hCtl; CEdit* pEdit;
HWND hCtl; CListBox* pListBox;
HWND hCtl; CComboBox* pComboBox;
HWND hCtl; CScrollBar* pScrollBar;
HSZ hszStr; CString pStr;
POINT pt; CPoint pt;
SIZE size; CSize size;
RECT rect; CRect rect;
一般前綴命名規范 前綴 類型 實例
C 類或結構 CDocument,CPrintInfo
m_ 成員變數 m_pDoc,m_nCustomers
變數命名規范 前綴 類型 描述 實例
ch char 8位字元 chGrade
ch TCHAR 如果_UNICODE定義,則為16位字元 chName
b BOOL 布爾值 bEnable
n int 整型(其大小依賴於操作系統) nLength
n UINT 無符號值(其大小依賴於操作系統) nHeight
w WORD 16位無符號值 wPos
l LONG 32位有符號整型 lOffset
dw DWORD 32位無符號整型 dwRange
p * 指針 pDoc
lp FAR* 遠指針 lpszName
lpsz LPSTR 32位字元串指針 lpszName
lpsz LPCSTR 32位常量字元串指針 lpszName
lpsz LPCTSTR 如果_UNICODE定義,則為32位常量字元串指針 lpszName
h handle Windows對象句柄 hWnd
lpfn callback 指向CALLBACK函數的遠指針
前綴 符號類型 實例 范圍
IDR_ 不同類型的多個資源共享標識 IDR_MAIINFRAME 1~0x6FFF
IDD_ 對話框資源 IDD_SPELL_CHECK 1~0x6FFF
HIDD_ 對話框資源的Help上下文 HIDD_SPELL_CHECK 0x20001~0x26FF
IDB_ 點陣圖資源 IDB_COMPANY_LOGO 1~0x6FFF
IDC_ 游標資源 IDC_PENCIL 1~0x6FFF
IDI_ 圖標資源 IDI_NOTEPAD 1~0x6FFF
ID_ 來自菜單項或工具欄的命令 ID_TOOLS_SPELLING 0x8000~0xDFFF
HID_ 命令Help上下文 HID_TOOLS_SPELLING 0x18000~0x1DFFF
IDP_ 消息框提示 IDP_INVALID_PARTNO 8~0xDEEF
HIDP_ 消息框Help上下文 HIDP_INVALID_PARTNO 0x30008~0x3DEFF
IDS_ 串資源 IDS_COPYRIGHT 1~0x7EEF
IDC_ 對話框內的控制項 IDC_RECALC 8~0xDEEF
Microsoft MFC宏命名規范 名稱 類型
_AFXDLL 唯一的動態連接庫(Dynamic Link Library,DLL)版本
_ALPHA 僅編譯DEC Alpha處理器
_DEBUG 包括診斷的調試版本
_MBCS 編譯多位元組字元集
_UNICODE 在一個應用程序中打開Unicode
AFXAPI MFC提供的函數
CALLBACK 通過指針回調的函數
庫標識符命名法 標識符 值和含義
u ANSI(N)或Unicode(U)
d 調試或發行:D = 調試;忽略標識符為發行。
靜態庫版本命名規范 庫 描述
NAFXCWD.LIB 調試版本:MFC靜態連接庫
NAFXCW.LIB 發行版本:MFC靜態連接庫
UAFXCWD.LIB 調試版本:具有Unicode支持的MFC靜態連接庫
UAFXCW.LIB 發行版本:具有Unicode支持的MFC靜態連接庫
動態連接庫命名規范 名稱 類型
_AFXDLL 唯一的動態連接庫(DLL)版本
WINAPI Windows所提供的函數
Windows.h中新的命名規范 類型 定義描述
WINAPI 使用在API聲明中的FAR PASCAL位置,如果正在編寫一個具有導出API人口點的DLL,則可以在自己的API中使用該類型
CALLBACK 使用在應用程序回叫常式,如窗口和對話框過程中的FAR PASCAL的位置
LPCSTR 與LPSTR相同,只是LPCSTR用於只讀串指針,其定義類似(const char FAR*)
UINT 可移植的無符號整型類型,其大小由主機環境決定(對於Windows NT和Windows 9x為32位);它是unsigned int的同義詞
LRESULT 窗口程序返回值的類型
LPARAM 聲明lParam所使用的類型,lParam是窗口程序的第四個參數
WPARAM 聲明wParam所使用的類型,wParam是窗口程序的第三個參數
LPVOID 一般指針類型,與(void *)相同,可以用來代替LPSTR
『柒』 使用Java作為程序語言時,好的命名規范有哪些
Package的命名
Package的名字應該都是由一個小寫單片語成。
Class的命名
Class的名字必須由大寫字母開頭而其他字母都小寫的單片語成
Class變數的命名
變數的名字必須用一個小寫字母開頭。後面的單詞用大寫字母開頭。
StaticFinal變數的命名
StaticFinal變數的名字應該都大寫,並且指出完整含義。
參數的命名
參數的名字必須和變數的命名規范一致。
數組的命名
數組應該總是用下面的方式來命名:
byte[]buffer;
而不是:
bytebuffer[];
方法的參數
使用有意義的參數命名,如果可能的話,使用和要賦值的欄位一樣的名字:
SetCounter(intsize){
this.size=size;
}
變數名
普通變數命名應該採用首字母小寫,其他字母首字母大寫的方式。
final static變數的名字應該都大寫,並且指出完整含義。如果一個常量名稱由多個單片語成,則應該用下劃線來分割這些單詞如。
NUM_DAYS_IN_WEEK MAX_VALU
如果需要對變數名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性
context=ctx message=msg
通過在結尾處放置一個量詞,就可創建更加統一的變數
First(一組變數中的第一個) Last(一組變數中的最後一個) Next(一組變數中的下一個變數) Prev(一組變數中的上一個) Cur(一組變數中的當前變數)
無論什麼時候,均提倡應用常量取代數字、固定字元串。也就是說,程序中除0,1以外,盡量不應該出現其他數字。
索引變數:i、j、k等只作為小型循環的循環索引變數。
邏輯變數:避免用flag來命名狀態變數,用is來命名邏輯變數。
if(isClosed){ dosomeworks; return; }
數組
總是使用以下方式定義數組:
int[] arr = new int[10];
禁止使用C語言的是形式:
禁止 int arr[] = new int[10];
集合
數組或者容器推薦命名方式為名詞+s的方式,例如:
Listpersons = getPerson(); for(Person person : persons){ dosomeworks; }
泛型
應該盡量簡明扼要(最好是一個字母),以利於與普通的class或interface區分
Container中的Element應該用E表示;Map里的key用K表示,value用V;Type用T表示;異常用X表示
如果需要接收多個Type類型的參數,應該用鄰接T的大寫字母——例如S——來依次表示,當然也可以用T1, T2這樣的方式
public class HashSetextends AbstractSet{…} public class HashMapextends AbstractMap{…} public class ThreadLocal{…} public interface Functor{ T val() throws X; }
推薦的命名
1.當要區別介面和實現類的時候,可以在類的後面加上「Impl」。
interface Container class ContainerImpl
2.Exception類最好能用「Exception」做為類命名的結尾
DataNotFoundException InvalidArgumentException
3.抽象類最好能用「Abstract」做為類命名的開頭
AbstractBeanDefinition AbstractBeanFactory
4. Test類最好能用「Test」做為類命名的結尾
ContainerTest
5.簡稱與縮寫(不推薦使用)
cp代表colorPoint buf代表buffer off代表offset len代表length
除非是在循環中,否則一般不推薦使用單個字母作為變數名,不過也有例外,即約定俗成的單個字母
b代表byte c代表char d代表double e代表Exception f代表float i, j, k代表整數 l代表long o代表Object s代表String v代表某些類型的特定值
代碼風格
花括弧
花括弧統一採用以下格式:
if(bool experssion){ dosomework; }
除非花括弧中為空,不然任何情況下不能省略花括弧,並且花括弧必須換行,例如:
if(i==0){ return; } while(true) {}
以下寫法禁止出現:
禁止 if(i != 0) return; 禁止 if(i !=0) {return;}
括弧
括弧的前,後一個字元不需要空格,例如:
Person p = new Person(「Jack」, 17);
空格
逗號之後緊跟一個空格。
Person p = new Person(「Jack」, 16, 「China」);
二元操作符前後跟空格。
int i = a + b – c * d;
3. 一元操作符不需要空格,for語句分號後有空格。
for(int i = 0; I < 10; i++){ dosomework; }
4. 括弧前後不需要空格
類
類的定義結構按照順序為:
1) 常量
2) 成員變數
3) 構造函數
4) 成員函數
5) get和set方法
各個部分之間留出一個空行。
例如:
規范類模板:
class Person{ private final static int MAX_AGE = 100; private String firstname = 「Jack」; public Person(){} public Person(String firstname){ this.firstname = firstname; } public void doExercise(){ dosomeworks; run(); } private void run(){ dosomeworks; } public getFirstname(){ return firstname; } public setFirstname(String firstname){ this.firstname = firstname; } }
2.構造函數
1) 參數為空的構造函數出現在最上方
2) 有調用關系的構造函數相鄰
3) 參數盡量由少到多從上至下排序
3.使用成員變數
在類的方法內引用成員變數了命名沖突以外,不使用this。非特殊情況在類的方法內都不使用get和set方法存取成員變數。
4.方法
有調用關系的方法盡量放在相鄰的位置,public和private方法可以交叉放置。
5.get和set方法,所有需要公開的成員變數都要符合良好的javabean規范,提供get和set方法,盡量使用IDE工具自動生成。
Javadoc注釋
在每個程序的最開始部分,一般都用Javadoc注釋對程序的總體描述以及版權信息,之後在主程序中可以為每個類、介面、方法、欄位添加 Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、介面、方法、欄位所完成的功能,這句話應單獨占據一行以突出其概括作用,在這句話後面可以跟隨更加詳細的描述段落。在描述性段落之後還可以跟隨一些以Javadoc注釋標簽開頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在生成文檔中以特定方式顯示
『捌』 vb函數名的命名規則
vb函數名的命名規則:
1、必須以字母或漢子開頭;
2、不可以包含嵌入的句號或者類型聲明字元;
3、不能和受到限制的關鍵字同名;
4、不能超過255個字元,控制項、窗體、類和模塊的名字不能超過40個字元;
5、命名一般按照自己的習慣用拼音、拼音首字母或英語。
6、如果程序較大,多人完成,應該按照如下規則命名:
一、匈牙利命名法【Hungarian】
二、駱駝命名法【camelCase】
三、帕斯卡命名法【PascalCase】
這些都是編程常用的命名法。
『最後,如果自己編小程序,那麼隨便,只要自己明白就OK了!