命名規(guī)約
1.命名符合本語(yǔ)言特性
Java中所有的代碼元素的命名均不能以下劃線或美元符號(hào)開始或結(jié)束呢岗。
2.命名體現(xiàn)代碼元素特征
要從名字上就知道代碼元素的屬性是什么,有利于快速理清代碼脈絡(luò)猴鲫。代碼的命名形式分為兩大類:即首字母大寫UpperCamelCase和首字母小寫lowerCamelCase,前者俗稱大駝峰谣殊,后者俗稱小駝峰拂共。
推薦在Java命名時(shí),以下列方式體現(xiàn)元素特征:
*包名統(tǒng)一小寫姻几,點(diǎn)分隔符之間有且僅有一個(gè)自然語(yǔ)義的英文單詞宜狐。統(tǒng)一使用單數(shù)形式势告。
*抽象類命名使用Abstract或Base開頭;異常類命名使用Exception結(jié)尾抚恒;測(cè)試?yán)坐Q以它要測(cè)試的類名開始咱台,以Test結(jié)尾。
*類型與中括號(hào)緊挨相連來(lái)定義數(shù)組俭驮。
*枚舉類名帶上Enum后綴回溺,枚舉成員名稱需要全大寫,單詞間用下劃線隔開混萝。
3.命名最好望文知意
代碼風(fēng)格展示
1.縮進(jìn)
在IDEA中設(shè)置Tab鍵為4個(gè)空格時(shí)遗遵,請(qǐng)勿勾選Use tab character;
在Eclipes中,必須勾選Insert spaces for tabs.
2.空格
空格的使用有如下約定:
(1)任何二目逸嘀、三目運(yùn)算符的左右兩邊都必須加一個(gè)空格
(2)注釋的雙斜線與注釋內(nèi)容之間有且僅有一個(gè)空格
(3)方法參數(shù)在定義和傳入時(shí)车要,多個(gè)參數(shù)逗號(hào)后面必須加空格
(4)沒有必要增加若干空格使變量的賦值等號(hào)與上一行對(duì)應(yīng)位置的等號(hào)對(duì)齊
(5)如果是大括號(hào)內(nèi)為空,則簡(jiǎn)潔地寫成{}即可崭倘,大括號(hào)中間無(wú)需換行和空格
(6)左右小括號(hào)與括號(hào)內(nèi)部地相鄰字符之間不要出現(xiàn)空格
(7)左大括號(hào)前需要加空格
3.空行
空行用來(lái)分割功能相似翼岁、邏輯內(nèi)聚、意思相近地代碼片段司光。在方法定義之后琅坡、屬性定義與方法之間、不同邏輯残家、不同語(yǔ)義榆俺、不同業(yè)務(wù)地代碼之間都需要通過空行來(lái)分隔。
4.換行
在代碼中需要限定每行地字符個(gè)數(shù)跪削,以便適應(yīng)顯示器地寬度。約定:?jiǎn)涡凶址麛?shù)不超過120個(gè)迂求,超出則需要換行碾盐,需要遵循如下原則:
1.第二行相對(duì)第一行縮進(jìn)4個(gè)空格,從第三行開始揩局,不再繼續(xù)縮進(jìn)
2.運(yùn)算符與下文一起換行
3.方法調(diào)用的點(diǎn)符號(hào)與下文一起換行
4.方法調(diào)用中的多個(gè)參數(shù)需要換行時(shí)毫玖,在逗號(hào)后換行
5.在括號(hào)前不要換行
5.方法行數(shù)限制
約定單行方法的總行數(shù)不超過80行。
控制語(yǔ)句
1.在if 凌盯、else付枫、for、while驰怎、do-while等語(yǔ)句中必須使用大括號(hào)
即使只有一行代碼阐滩,也要加上大括號(hào)
2.在條件表達(dá)式中不允許有賦值才做,也不允許在判斷表達(dá)式中出現(xiàn)復(fù)雜的邏輯組合
3.多層嵌套不能超過3層
4.避免采用取反邏輯運(yùn)算符
取反邏輯運(yùn)算符不易理解
代碼注釋
注釋三要素
1.Nothing is strange
代碼中不能沒有注釋县忌!
2.Less is more
首先掂榔,代碼的注釋一定是精華中的精華继效!
其次,注釋要簡(jiǎn)練装获,不能長(zhǎng)篇大論瑞信。
最后,一些簡(jiǎn)單方法常識(shí)性的方法無(wú)需注釋
3.Advance with the times
任何對(duì)于代碼的修改穴豫,都應(yīng)該同時(shí)修改注釋
注釋格式
1.Javadoc規(guī)范
使用文檔注釋(/** */)的格式凡简,方便生成文檔。
這里特別強(qiáng)調(diào)的是枚舉的注釋精肃,枚舉的注釋是必須要有的秤涩,因?yàn)椋?br>
1.枚舉實(shí)在太特殊了,它的代碼極其穩(wěn)定
2.注釋的內(nèi)容不僅限于解釋屬性值的含義肋杖,還可以包括注意事項(xiàng)溉仑、業(yè)務(wù)邏輯
3.枚舉類的刪除或者修改都存在很大的風(fēng)險(xiǎn)