資源描述:
《開(kāi)發(fā)規(guī)范-代碼規(guī)范》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、前言3目的3適用對(duì)象3名詞解釋31排版規(guī)范41.1使用Eclipse設(shè)置41.2Eclipse代碼要求52命名規(guī)范72.1基本約定72.2包72.3類、接口72.4方法72.5BL類除getResult()、submitData()夕卜82.6靜態(tài)變量82.7非靜態(tài)變量82.8局部變量82.9新建對(duì)彖82.10全局變量92.11除CErrors夕卜的全局變量93注釋規(guī)范93.1基本原則93.2接口、類注釋93.3方法注釋93.4Eclipse中接口、類、方法快速注釋方法103.5代碼注釋114性能
2、優(yōu)化基本規(guī)則114.1對(duì)彖114附件13131.1注釋設(shè)置文件開(kāi)發(fā)規(guī)范刖5目前項(xiàng)目開(kāi)發(fā)沒(méi)有統(tǒng)一的規(guī)范標(biāo)準(zhǔn),代碼具有個(gè)人風(fēng)格,可讀性差,不利于長(zhǎng)期維護(hù)和開(kāi)發(fā),而且有些不良習(xí)慣可能會(huì)影響性能。為此制定本文檔以規(guī)范開(kāi)發(fā)和運(yùn)維人員在開(kāi)發(fā)中的書(shū)寫(xiě)標(biāo)準(zhǔn)。目的提高可讀性,風(fēng)格統(tǒng)一便于維護(hù)和開(kāi)發(fā)。提高代碼質(zhì)量,通過(guò)規(guī)范,邏輯更加嚴(yán)格。適用對(duì)象運(yùn)維人員開(kāi)發(fā)人員名詞解釋?運(yùn)維針對(duì)生產(chǎn)環(huán)境的Bug或者小需求,進(jìn)行的代碼調(diào)整?開(kāi)發(fā)針對(duì)新產(chǎn)站或者大需求,進(jìn)行的代碼調(diào)整1排版規(guī)范代碼的組織和風(fēng)格統(tǒng)一可使代碼可讀性提高,容易理
3、解代碼。1-1使用Eclipse設(shè)置采用eclipse默認(rèn)的風(fēng)格Eclipse[built-in],見(jiàn)下圖。修改CodeTemplates,導(dǎo)入代碼注釋模板,見(jiàn)附件一。,見(jiàn)下圖:選中代碼,點(diǎn)擊右鍵,在菜單中選中source/format,就可以完成基木格式調(diào)整,例如括號(hào)換行、頁(yè)寬。1.2Eclipse代碼要求?for>while語(yǔ)句為單句時(shí),也需要用括號(hào)括起來(lái)。例如:Ifd==1){f=ture;}else{f=false;?頁(yè)寬不得超過(guò)100列。?方法從方法名到結(jié)尾不得超過(guò)100行,除注釋外,其
4、他代碼都包括。?如果有main方法的話,必須在類的最下方。?不得一行聲明多個(gè)變量例如:不允許:privateinti,j;允許:privateinti=0,j二0;privateintj;?數(shù)組定義規(guī)范[]放在類Z后,例如:不允許:Stringstr[];可以:String[]str;2命名規(guī)范規(guī)范的命名能使程序更易閱讀,從而更易于理解。它們也可以提供一些標(biāo)識(shí)功能方面的信息,有助于更好的理解代碼和應(yīng)用。1.1基木約定?使用可以準(zhǔn)確說(shuō)明的英文描述符。例如,采用類似firstName,listAllU
5、sers這樣的名字,嚴(yán)禁使用漢語(yǔ)拼音及不相關(guān)單詞命名,嚴(yán)禁使用漢字命名。?避免使用長(zhǎng)名字(不得超過(guò)25個(gè)字母)。?避免使用相似或者僅在大小寫(xiě)上有區(qū)別的名字。?遇到縮寫(xiě)如XM【,時(shí),僅首字母大寫(xiě),即loadXmlDocument()而不是1oadXMLDocument()。2.2包?—律小寫(xiě),例如:com.ping,usermanagero2.3類、接口?采用大小寫(xiě)混合的形式。以大寫(xiě)字母開(kāi)頭,名字中其他單詞的首字母以大寫(xiě)字母開(kāi)頭,所有其它的單詞都為小寫(xiě)字母,嚴(yán)禁使用下劃線分隔單詞。?以名詞或名詞短語(yǔ)
6、命名,例如:I后youtManager*、Printer。?接口以Interface為后綴,例如:Containcrlntcrfacco?抽象類以Abstract為前綴,例如1:Abstractcontainer□?缺省或首選實(shí)現(xiàn)類以Impl為丿舌綴,例如:ContainerImplo?測(cè)試類以Test為后綴,例如:ContainerTesto?異常類以Exccption為后綴,例如:Inva]idArgumcntExccption。2.4方法?采用大小寫(xiě)混合的形式。以小寫(xiě)字母開(kāi)頭,名字中其他單詞
7、的首字母以大寫(xiě)字母開(kāi)頭,所有其它的單詞都為小寫(xiě)字母,嚴(yán)禁使用下劃線分隔單詞。?方法的命名應(yīng)該能描繪出方法的作用和功能,方法的名字建議使用祈使動(dòng)詞或者動(dòng)詞短語(yǔ),例如:showContState()。?獲取或者設(shè)置類的某種屬性的方法采用以get或set的顯式命名,例如:getName()或者setName(),其中Name是指類的屬性的名字。?返回布爾屬性的方法釆用前綴為is的顯式命名,例如:isVisiblo()。?對(duì)于己有的、形成通用做法的方法命名不做要求,繼續(xù)沿用原有命名方式。?LIS中通用做法
8、:submitsData()通過(guò)依次調(diào)用getlnputDataO>checkDataOdealDataOsprepareOutputData(),完成業(yè)務(wù)處理。這五個(gè)方法(包括submitsData)都是返冋布爾屬性的,是LTS的通用做法,故不要求按照返冋布爾屬性的方法采用前綴為is的顯式命名,沿用原有命名方法。并且每一個(gè)BL類必須符合上述規(guī)范,主要業(yè)務(wù)操作必須在dealData()方法內(nèi)完成。2.5BL類除getResult()>submitData()外?盡量不要新建publ