




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、程序編碼規(guī)范VI. 0編寫:XXX審核:XXXX X X X年X X月修改目錄一、引言3二、命名規(guī)范32.1 包(Package)的命名 32.2 Class的命名42.3 Class變量的命名42.4接口的命名52.5參數(shù)的命需52.6數(shù)組的命需52.6方法的參數(shù)6三注釋規(guī)范63塊注釋(Block Connnents)73.2 單行注釋(Single-Line Comments)73.3 尾端注釋(Trailing Comments)73.4 行末注釋(End-Of-Line Comments)8 四Java文件樣式84版權(quán)信息84.2 Package/Imports94.3 Class94
2、.4 Class Fields 104.5存取方法104.6構(gòu)造函數(shù)104.7 main 方法 114.8 換行(Wrapping Lines) 114.9 行長度(Line Length) 134.10 語句(Statements) 13五排版格式18六JSP編碼規(guī)范19七、文件與目錄20八、日志規(guī)范20九、設(shè)計及技巧建議219表現(xiàn)層229.2業(yè)務(wù)層229.3持久層22一、引言編碼規(guī)范對于程序員而言尤為重要,有以下幾個原因:1、一個軟件的生命周期中,80%的花費在于維護。2、幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發(fā)人員來維護。3、編碼規(guī)范可以改善軟件的可讀性,可以讓程序員盡快
3、而徹底地理解新的代碼。4、如果你將源碼作為產(chǎn)品發(fā)布,就需要確任它是否被很好的打包并且淸晰無誤, 一如已構(gòu)建的英它任何產(chǎn)品為了執(zhí)行規(guī)范,每個軟件開發(fā)人員必須一致遵守編碼規(guī)范中的代碼規(guī)范,代碼規(guī)范 提高軟件代碼的可讀性,使得開發(fā)人員快速和徹底的理解新代碼.。好的代碼風(fēng)格不僅會提 高可讀性,而且會使代碼更健壯,更為重要的是在修改時不容易岀錯。現(xiàn)代軟件開發(fā)中, 維護工作會占用80%的時間,而且開發(fā)者和維護者通常不是同一個程序員。這意味著程序 員經(jīng)常要閱讀和修改別人開發(fā)的程序,別人也同樣可能需要閱讀和修改你開發(fā)的程序,所 以制泄一套完善的編碼規(guī)范非常重要。左義本規(guī)范的目的是使工程中所有的文檔及程序編碼在
4、寫作風(fēng)格上具有一致性,增 加可讀性,減少工程組中因為換人帶來的損失,從而使程序具有良好的可讀性。二、命名規(guī)范2.1包(Package)的命名包(Packages):個唯一包名的前綴應(yīng)全部為小寫的ASCII字母,并且是一個頂級域 名,通常為com、cdu、gov、mil、net、org等。包爼的后續(xù)部分可根據(jù)各個不同機構(gòu)內(nèi)部 的命名規(guī)范來定義,這類命名規(guī)范可以由特定的目錄名來區(qū)分部門(department).工程 (project)x 機器(machine)和注冊名(login names) 1) / Do a double-flip. else return false。/ Explain w
5、hy here./if (bar 1) / Do a triple-flip/else / return false 四Java文件樣式所有的Java(*java)文件都必須遵守如下的樣式規(guī)則4.1版權(quán)信息版權(quán)信息必須在java文件的開頭,比如:/*版權(quán)所有?林林年-林林年XXXXX科技有限公司,*保留所有權(quán)利。*/其他不需要岀現(xiàn)在javadoc的信息也可以包含在這里。4.2 Package/lmportspackage行要在import 之前,import中標(biāo)準(zhǔn)的包名要在本地的包名之前.而且按照 字母順序排列。如果import行中包含了同一個包中的不同子目錄,則應(yīng)該用*來處理。package
6、 com. aoch ecity.oimport java io.import java ut iI. Observable。 import hot Iava .util. Application。這里 java.io.* 使用來代替 Inputstream and Outputstream 的4.3 Class類的注釋一般是用來解釋類功能的,需要按照如下格式編寫:/* 類名:Jpc* vp描述:Jpc服務(wù)的用戸接口類,調(diào)用了 JpcScrvicc類的實現(xiàn)。* * vp版權(quán)聲明:Copyright (c) 2003-2004,* a href=http:/www.公司網(wǎng)址”X XXX 科技有限
7、公司 * author a href=*作者郵箱今作者姓名* (Aversion 1.5.6*/4.4Class Fields類的成員變量必須通過注釋說明其含義.不管成員變量是public protected還是private的都要說明。4.5存取方法若類的存取方法只是用于對類的變量賦值、取值的話,在類的成員變量有注釋的情 況下,類變量的存取方法可以沒有注釋。*功能說明:.* param opcData要設(shè)置的Opc數(shù)據(jù)* return true 成功 false 失敗* throws SenriceUnavailableException 服務(wù)不可用異常*/public static boo
8、lean setDataToOpc(OpcData opcData) throws ServiceUnavailableException return true,pub Iic int getPackets(String s) return copyAr ray (packets offset)。 pub Iic int getBytes () return copyArray (bytes, offset)o pub Iic int getPackets() return packets。 pub I ic void set Packe ts(int packe ts) t his .pa
9、cke ts = packe ts 4.6構(gòu)造函數(shù)構(gòu)造函數(shù),要用遞增的方式書寫(參數(shù)多的寫在后而),這樣可以使方法和參數(shù)更 易讀。4.7main 方法如果已經(jīng)左義了 main(String)方法,那么它就應(yīng)該寫在類的底部。4.8 換行(Wrapping Lines)當(dāng)一個表達式無法容納在一行內(nèi)時,可以依據(jù)如下一般規(guī)則斷開: 在一個逗號后而斷開 在一個操作符前而斷開 寧可選擇較髙級別(higher-level)的斷開,而非較低級別(lower-level)W斷開 新的一行應(yīng)該與上一行同一級別表達式的開頭處對齊-如果以上規(guī)則導(dǎo)致你的代 碼混亂或者使代碼都堆擠在右邊,那就代之以縮進8個空格。以下是斷
10、開方法調(diào)用的一些例子:someMethod(longExpression 1, longExpression2. longExpression3, longExpression4, longExpression5)ovar = someMethod l(longExpression 1,someMethod2(longExpression2,longExpression3)o以下是兩個斷開算術(shù)表達式的例子。前者更好,因為斷開處位于括號表達式的外 邊,這是個較高級別的斷開。longName 1 = longName2 * (longName3 + longName4 - longNamc5)+
11、4 * longname6c /PREFFERlongName 1 = longName2 (longName3 + longName4 longName5) + 4 * longname6o /AVOID以下是兩個縮進方法聲明的例子。前者是常規(guī)情形。后者若使用常規(guī)的縮進方式將 會使第二行和第三行移得很靠右,所以代之以縮進8個空格/CONVENTIONAL INDENTATIONsomeMethod(int anArg. Object anotherArg. String yetAnotherArg,Object andStillAnother) /INDENT 8 SPACES TO AVO
12、ID VERY DEEP INDENTSprivate static synchronized horkingLongMethodName(int anArg,Object anotherArg, String yetAnotherArg,Object andStillAnother) if語句的換行通常使用8個空格的規(guī)則,因為常規(guī)縮進(4個空格)會使語句體看起來比較費勁。比如:(DONT USE THIS INDENTATIONif (condition 1 & condition2)II (condition3 & condition4)Il!(condition5 & condition
13、6) /BAD WRAPS doSomethingAboutIt()o /MAKE THIS LINE EASY TO MISS /USE THIS INDENTATION INSTEADif (condition 1 & condition2)II (condition3 & condition4)Il!(condition5 & condition6) doSomethingAboutIt()。/OR USE THISif (condition 1 & condition2) II (conditions & condition4)Il!(condition5 & condition6)
14、doSomethingAboutltO。這里有三種可行的方法用于處理三元運算表達式:alpha = (aLongBooleanExpression) ? beta : gamma。alpha = (aLongBooleanExpression) ? beta:gamma calpha = (aLongBooleanExpression)? beta:gamma c4.9 行長度(Line Length)盡疑避免一行的長度超過80個字符,因為很多終端和工具不能很好處理之。注意:用于文檔中的例子應(yīng)該使用更短的行長,長度一般不超過70個字符。4.10 語句(Statements)簡單語句(Simpl
15、e Statemen每行至多包含一條語句,例如:argv+o / Correctargc-o / Correctargv+ o argc- /AVOID!復(fù)合語句(Compound Statements)復(fù)合語句是包含在大括號中的語句序列,形如語句,例如下而各段:-被括其中的語句應(yīng)該較之復(fù)合語句縮進一個層次-左大括號”應(yīng)位于復(fù)合語句起始行的行尾;右大括號”應(yīng)另起一行并與復(fù)合 語句首行對齊。-大括號可以被用于所有語句,包括單個語句,只要這些語句是諸如if-clsc或for 控制結(jié)構(gòu)的一部分。這樣便于添加語句而無需擔(dān)心由于忘了加括號而引入bug。返回語句(return Statemen ts)一個
16、帶返回值的return語句不使用小括號()”,除非它們以某種方式使返回值更為顯 見。例如:return oreturn myDisk.size()0return (size ? size : defaultSize)o if, if-else, if else-if else 語句(if, if-else, if else-if else Statenients)if-clse語句應(yīng)該具有如下格式:if (condition) statements oif (condition) statements a else statements aif (condition) statements a
17、 else if (condition) statements a elsestatements a注意:if語句總是用十和丁括起來.避免使用如下容易引起錯誤的格式:if (condition) /AVOID! THIS OMITS THE BRACES !statement o for 語句(for Statements)一個for語句應(yīng)該具有如下格式:for (initialization condition o update) statements o一個空的for語句(所有工作都在初始化,條件判斷,更新子句中完成)應(yīng)該具有如下 格式:for (initialization a cond
18、ition c update) 當(dāng)在for語句的初始化或更新子句中使用逗號時,避免因使用三個以上變量,而導(dǎo)致 復(fù)雜度提高。若需要,可以在for循環(huán)之前(為初始化子句)或for循環(huán)末尾(為更新子句)使 用單獨的語句。 while 語句(while Statements)個while語句應(yīng)該具有如下格式while (condition) statements a一個空的while語句應(yīng)該具有如下格式:while (condition)o do-while 語句(do-while Statemen ts)一個do-while語句應(yīng)該具有如下格式:do statements o while (cond
19、ition)oswitch 語句(switch Statements)一個switch語句應(yīng)該具有如下格式:switch (condition) case ABC:statements o/* falls through */case DEF:statements obreakocase XYZ:statements obreakadefault:statements a break.每當(dāng)一個case順著往下執(zhí)行時(因為沒有break語句),通常應(yīng)在break語句的位置添加注 釋。上而的示例代碼中就包含注釋/* falls through */。 try-catch 語句(try-catch
20、Statements)一個try-catch語句應(yīng)該具有如下格式:try statements o catch (ExccptionClass e) statements o一個uy-catch語句后而也可能跟著一個finally語句,不論try代碼塊是否順利執(zhí)行 完,它都會被執(zhí)行。try (statements o catch (ExceptionClass e) statements o finally statements a五排版格式1. 關(guān)鍵詞和操作符之間加適當(dāng)?shù)目崭瘛?. 相對獨立的程序塊與塊之間加空行。3. 較長的語句、表達式等要分成多行書寫。4. 劃分出的新行要進行適應(yīng)的縮進,
21、使排版整齊,語句可讀。5. 長表達式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首。6. 循環(huán)、判斷等語句中若有較長的表達式或語句,則要進行適應(yīng)的劃分。7. 若函數(shù)或過程中的參數(shù)較長,則要進行適當(dāng)?shù)膭澐帧?不允許把多個短語句寫在一行中,即一行只寫一條語句。9. 函數(shù)或過程的開始、結(jié)構(gòu)的定義及循環(huán)、判斷等語句中的代碼都要采用縮進風(fēng) 格。10. 用大括號和界圧一段程序塊的,編寫程序塊時和應(yīng)各獨占 一行并且位于同一列,同時與引用它們的語句左對齊。在函數(shù)體的開始、類的泄義、結(jié)構(gòu) 的泄義、枚舉的定義以及if、for、do、while、switch, ease語句中的程序都要采用如上的 縮進方式。六JS
22、P編碼規(guī)范1 整個jsp/j sp bean表示層應(yīng)當(dāng)盡可能的瘦和簡單化。2牢記大多數(shù)的JSP都應(yīng)當(dāng)是只讀的視圖,而由頁而bean來提供模型。3應(yīng)當(dāng)一起設(shè)計JSP和JSP bean4在盡可能合理的情況下,把業(yè)務(wù)邏輯從JSP中移走。具體于HTTP的邏輯(如,對Cookie的處理)屬于bean或支持類中,而不是JSP中。5 盡量把條件邏借放在控制器中而不是放在視圖中。6為JSP、包含的文件、JSP Bean和實現(xiàn)擴展標(biāo)記的類使用遵循標(biāo)準(zhǔn)的命名慣例。如:jsp 控制器 xxxxController.jsp被包含的:jsp .descriptiveNameOfFragment.jspjsp 會話 be
23、na: xxxxSessionBean標(biāo)記類:xxxxTag.xxxxTagExtralnfo7應(yīng)當(dāng)避免設(shè)計既顯示表單又處理結(jié)果的頁面。&在jsp中避免代碼重復(fù)。把要重復(fù)的功能放在一個包含的jsp、bean或標(biāo)記擴展中, 使得它能夠被重用。9. jsp bean應(yīng)當(dāng)永遠不要去產(chǎn)生HTML10. 在jsp中應(yīng)該避免使用out.pringln()發(fā)放來產(chǎn)生頁而內(nèi)容。11. jsp層不應(yīng)該直接訪問數(shù)據(jù),這包括JDBC數(shù)據(jù)庫訪問和EJB訪問。12. 在長度上,代碼片的代碼最好不要超過10行。13. 除了 jsp bean之外,jsp不應(yīng)當(dāng)去實例化復(fù)雜的可讀寫的對象。如果這樣的 話,就有可能在jsp中去
24、執(zhí)行不適當(dāng)?shù)臉I(yè)務(wù)邏輯。14. jsp bean中不應(yīng)當(dāng)包含大量的數(shù)拯。15. 如果使用了jsp:forward和jsp:include標(biāo)記,并且必須使用簡單類型的值 來與外部頁面進行通訊的話,就應(yīng)當(dāng)使用一個或多個jsp:param元素。16. 立制標(biāo)記應(yīng)當(dāng)用在適合把邏輯從jsp中移走的地方。17. 應(yīng)當(dāng)謹慎地使用jsp:forward標(biāo)記,在jsp中它是一個等價的goto。1&應(yīng)當(dāng)使用隱藏的注釋來阻止輸岀的HTML過大。19. 在jsp中避免進行異常處理。20. 每個jsp文件中都應(yīng)當(dāng)使用一個錯誤頁而來處理不能夠從中恢復(fù)的異常。21. 只有在能夠獲得性能上的好處時,才使用jsplnit()方法
25、和jspDestroyO方 法。獲取和放棄資源是jsp beans和標(biāo)記處理器的事,而不是由jsp來負責(zé)的。22.如果沒有充分的理由,就不要在jsp中定義方法和內(nèi)部類。七、文件與目錄1.所有編譯好的java類要打包成jar格式,統(tǒng)一放在應(yīng)用目錄的WEB-INF/lib目錄 下,而不能把class文件直接放在WEB-INF/classes目錄下。2系統(tǒng)中需要采用的第三方的類庫也應(yīng)放在WEB-INF/lib目錄下,統(tǒng)一打包。3所有圖片應(yīng)該放在應(yīng)用目錄的images目錄下,工程和產(chǎn)品的圖片件放在images下 的一級子目錄中,如CMS的圖片文件可以放在images/CMSo4.Struts的配置文件
26、必須放在WEB-INF/config目錄下,每個產(chǎn)品應(yīng)該有一個或多個 struts的配置文件。5.產(chǎn)品自左義的struts配置文件的命名應(yīng)該以“struts-config” +產(chǎn)品的夕i稱+某塊劃稱 + .xml”,struts-config-CMS-pub.xml6.Spirng的配程文件必須放在WEB-INF/目錄下。7.產(chǎn)品自定義的sping配置文件的命勿應(yīng)該以“applicationCon忙xt” +產(chǎn)品的名稱+某 塊名稱 + .xml” , applicationContext-CMS-pub.xml八、日志規(guī)范采用log4j作為日志模塊的標(biāo)準(zhǔn)框架,版本采用128, log4j的配宜
27、文件為WEB- INF/classes/ perties,配置方式采用log4j的標(biāo)準(zhǔn)配置文件方式,如:# For JBoss: Avoid to setup log4j outside $JBOSS_HOME/server/default/dcploy/log4j.xml# For all other servers: Comment out the Log4J listener in web.xml too#log4j.rootCategory=INFO.IogfilexonsoleIog4j.rootCategorr=INFO,console#log4j.rootCat
28、egory=ERRORlog4j.appendc r.logfile=org.apache.log4j.RollingFileAppenderlog4j.appendc r.logfile.File=c:/ezframework.loglog4j.appender.logfile.MaxFileSize=512KB# Keep three backup fileslog4j.appcndc 匚 logfilcNtaBackuph】dcx=3log4j.appendc r.logfile.layout=org.apache.log4j.PattemLayout# Pattern to output: date priority
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 糖果與巧克力行業(yè)市場調(diào)研方法與數(shù)據(jù)分析技巧考核試卷
- 四川省德陽中學(xué)江縣2025屆初三5月第一次聯(lián)考化學(xué)試題試卷含解析
- 松原職業(yè)技術(shù)學(xué)院《家具設(shè)計與制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津市職業(yè)大學(xué)《水工鋼筋混凝土結(jié)構(gòu)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 六枝特區(qū)2025屆數(shù)學(xué)三下期末學(xué)業(yè)水平測試模擬試題含解析
- 駕駛員安全責(zé)任協(xié)議書
- 房產(chǎn)產(chǎn)權(quán)轉(zhuǎn)讓協(xié)議二零二五年
- 二零二五融資及管理服務(wù)協(xié)議書
- 二零二五版房子抵押合同
- 種植業(yè)年度盤點
- iata第 66版危險貨物規(guī)則(dgr 66th)
- 給水泵檢修方案
- 《運營管理》第2版題庫與參考答案
- KEGG代謝通路中文翻譯
- GB∕T 17832-2021 銀合金首飾 銀含量的測定 溴化鉀容量法(電位滴定法)
- 低成本自動化的開展與案例77頁PPT課件
- 梅州市部分飲用水源保護區(qū)調(diào)整方案
- 地面沉降監(jiān)測技術(shù)要求
- 基本建設(shè)項目建設(shè)成本管理規(guī)定解讀
- 金色的魚鉤課本劇
- 印刷機周保養(yǎng)記錄
評論
0/150
提交評論