![項目編碼規(guī)范_第1頁](http://file4.renrendoc.com/view/4f1efecefd9a4f813ef9cd796c94d40d/4f1efecefd9a4f813ef9cd796c94d40d1.gif)
![項目編碼規(guī)范_第2頁](http://file4.renrendoc.com/view/4f1efecefd9a4f813ef9cd796c94d40d/4f1efecefd9a4f813ef9cd796c94d40d2.gif)
![項目編碼規(guī)范_第3頁](http://file4.renrendoc.com/view/4f1efecefd9a4f813ef9cd796c94d40d/4f1efecefd9a4f813ef9cd796c94d40d3.gif)
![項目編碼規(guī)范_第4頁](http://file4.renrendoc.com/view/4f1efecefd9a4f813ef9cd796c94d40d/4f1efecefd9a4f813ef9cd796c94d40d4.gif)
![項目編碼規(guī)范_第5頁](http://file4.renrendoc.com/view/4f1efecefd9a4f813ef9cd796c94d40d/4f1efecefd9a4f813ef9cd796c94d40d5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、項目代碼編程規(guī)范應用范圍本規(guī)范應用于采用J2EE規(guī)范的項目中,所有項目中的JAVA代碼(含JSP,SERVLET,JAVABEAN,EJB)JS代碼、HTML代碼及數據庫設計均應遵守這個規(guī)范。同時,也可作為其它項目的參考。設計類和方法創(chuàng)建具有很強內聚力的類方法的重要性往往比類的重要性更容易理解,方法是指執(zhí)行一個獨立邏輯的一段代碼。類常被錯誤的視為是一個僅僅用于存放方法的容器。有些開發(fā)人員甚至把這種思路作了進一步的發(fā)揮,將他們的所有方法放入單個類之中。之所以不能正確的認識類的功能,原因之一是類的實現實際上并不影響程序的執(zhí)行。當一個工程被編譯時,如果所有方法都放在單個類中或者放在幾十個類中,這沒有
2、任何關系。雖然類的數量對代碼的執(zhí)行并無太大的影響,但是當創(chuàng)建便于調試和維護的代碼時,類的數量有時會帶來很大的影響。類應該用來將相關的方法組織在一起。當類包含一組緊密關聯的方法時,該類可以說具有強大的內聚力。當類包含許多互不相關的方法時,該類便具有較弱的內聚力。應該努力創(chuàng)建內聚力比較強的類。大多數工程都包含許多并不十分適合與其他方法組合在一起的方法。在這種情況下,可以為這些不合群的方法創(chuàng)建一個綜合性收容類。創(chuàng)建類時,應知道“模塊化”這個術語的含義是什么。類的基本目的是創(chuàng)建相當獨立的程序單元。創(chuàng)建松散連接和高度專用的方法使所有方法都執(zhí)行專門的任務 每個方法都應執(zhí)行一項特定的任務,它應出色的完成這項
3、任務。應避免創(chuàng)建執(zhí)行許多不同任務的方法。創(chuàng)建專用方法有許多好處。首先調試將變得更加容易。 盡量使方法成為自成一體的獨立方法 當一個方法依賴于其他方法的調用時,稱為與其他方法緊密連接的方法。緊密連接的方法會使調試和修改變得比較困難,因為它牽涉到更多的因素。松散連接的方法優(yōu)于緊密連接的方法,但你不可能使每個方法都成為獨立的方法。若要使方法具備較強的獨立性,方法之一是盡量減少類變量。創(chuàng)建方法時,設法將每個方法視為一個黑箱,其他例程不應要求了解該方法的內部工作情況,該方法也不應要求了解它外面的工程情況。這就是為什么你的方法應依靠參數而不應依靠全局變量的原因。創(chuàng)建專用方法時,請考慮下列指導原則:1)將復
4、雜進程放入專用方法。如果應用程序使用復雜的數學公式,請考慮將每個公式放入它自己的方法中。這樣使用這些公式的其他方法就不包含用于該公式的實際代碼。這樣也可以更容易發(fā)現與公式相關的問題。 2)將數據輸入/輸出(I/O)放入專用方法。 3)將專用方法中可能要修改的代碼隔離。如果你知道某個進程經常變更,請將這個多變的代碼放入專用方法,以便以后可以更容易的進行修改,并減少無意中給其他進程帶來問題的可能性。 4)將業(yè)務規(guī)則封裝在專用方法中。業(yè)務規(guī)則常屬于要修改的代碼類別,應與應用程序的其余部分隔開。其他方法不應知道業(yè)務規(guī)則,只有要調用的方法才使用這些規(guī)則。設計類和方法時,要達到下列目的:1)創(chuàng)建更加容易調
5、試和維護的方法2)創(chuàng)建具有強大內聚力的類3)創(chuàng)建高度專用的方法4)創(chuàng)建松散連接的方法5)盡量使方法具有獨立性6)提高方法的扇入性7)降低方法的扇出性編程原則為方法和類賦予表義性強的名字 為了使代碼更加容易理解,最容易的方法之一是為你的方法賦予表義性強的名字。函數名DoIt、GetIt的可讀性很難與CalculateSalesTax、 RetrieveUserID相比。由縮寫方法名組成的代碼很難理解和維護,沒有理由再這樣做了。給方法正確的命名,可使程序工程的調試和維護工作大大的改觀。請認真對待方法命名的工作,不要為了減少鍵入操作量而降低方法的可理解度。實際應用舉例:1)給方法命名時應大小寫字母混
6、合使用。如果句子全使用大寫字母,那么閱讀起來就非常困難,而大小寫字母混合使用的句子,閱讀起來就很容易。 2)定義方法名時不要使用縮寫。如果你認為應用程序中的某些工程應使用縮寫,那么請將這些情況加上注釋,并確保每個人在所有時間內都使用這些縮寫。決不要在某些方法中對某些單詞進行縮寫,而在別的方法中卻不使用縮寫。 3)定義方法名要統(tǒng)一使用英文單詞或者計算機專業(yè)英語,要做到見名知意。創(chuàng)建方法時,始終都應顯式地定義它的作用域。 1) 如果你真的想創(chuàng)建一個公用方法,請向代碼閱讀者說明這一點。2) 通過為每個方法賦予一個明確定義的作用域,可以減少代碼閱讀者需要投入的工作量。應確保你為方法賦予最有意義的作用域
7、。如果一個方法只被同一類中的另一個方法調用,那么請將它創(chuàng)建成私有方法。如果該方法是從多個類中的多個方法中調用,請將該說明為公用方法。用參數在方法之間傳遞數據應盡量避免使用類變量。一般來說,變量的作用域越小越好。為了減少類變量,方法之一是將數據作為參數在不同方法之間傳遞,而不是讓方法共享類變量。1)為每個參數指定數據類型。 2)始終要對數進行檢驗,決不要假設你得數據沒有問題。程序員常犯的一個錯誤是在編寫方法時假設數據沒有問題。在初始編程階段,當編寫調用方法時,這樣的假設并無大礙。這時你完全能夠知道什么是參數的許可值,并按要求提供這些值。但如果你不對參數的數據進行檢驗,那么下列情況就會給你帶來很大
8、麻煩:另外某個人創(chuàng)建了一個調用方法,但此人不知道允許的值;你在晚些時候添加了新的調用方法,并錯誤的傳遞了壞數據。其他編程建議 注意釋放資源,如文件關閉,數據庫操作后關閉ResultSet, Statement, Connection等,其他涉及IO操作的如:各種Reader,Writer,InputStream,OutputStream等等。 使用 StringBuffer 對象 在處理 String 的時候要盡量使用 StringBuffer 類,StringBuffer 類是構成 String 類的基礎。String 類將 StringBuffer 類封裝了起來,(以花費更多時間為代價)為
9、開發(fā)人員提供了一個安全的接口。當我們在構造字符串的時候,我們應該用 StringBuffer 來實現大部分的工作,當工作完成后將 StringBuffer 對象再轉換為需要的 String 對象。比如:如果有一個字符串必須不斷地在其后添加許多字符來完成構造,那么我們應該使用 StringBuffer 對象和它的 append() 方法。如果我們用 String 對象代替 StringBuffer 對象的話,會花費許多不必要的創(chuàng)建和釋放對象的 CPU 時間。避免太多的使用 synchronized 關鍵字 避免不必要的使用關鍵字 synchronized,應該在必要的時候再使用它,這是一個避免死
10、鎖的好方法。 必須使用時,也盡量控制范圍,最好在塊級控制。避免使用 java.util.Vector 等那些在jdk1.3前就有的集合類因為Unlike the new collection implementations, Vector is synchronized.,所以使用java.util.Vector類在性能上會有所減低。盡量使用接口而不是一個具體的類比方如下需求,給定一個SQL語句,返回一個對象的列表,實現中用java.util.ArrayList實現,于是定義方法為:public java.util.ArrayList getObjectItems(String sql)上面的
11、方法存在一個問題,當getObjectItems內改用Vector或LinkedList實現,外部類必須做相應更改。一個更好的方法是定義返回值為java.util.AbstractList更合適:public java.util.AbstractList getObjectItems(String sql)這樣即使更改實現,外部類也不必做相應更改。避免使用索引來調用數據庫中間層組件返回的結果集如:for(int i=1; i=dt.getRowCount(); i+) String field1 = dt.getField(i, 0).toString(); 而應用字段名來存取結果集:for(
12、int i=1; i10 & isOK=true ) statement; else if (condition) statements; else statements;for語句格式如下:for (initialization; condition; update) statements;如果語句為空:for (initialization; condition; update) ;while語句格式如下:while (condition) statements;如果語句為空: while (condition);do-while語句格式如下:do statements; while (c
13、ondition);switch語句,每個switch里都應包含default子語句,格式如下:switch (condition) case ABC: statements; /* falls through */case DEF: statements; break;case XYZ: statements; break;default: statements; break;try-catch語句格式如下:try statements; catch (ExceptionClass e) statements; finally statements;錯誤處理和異常事件法則通常的思想是只對錯誤
14、采用異常處理:邏輯和編程錯誤,設置錯誤,被破壞的數據,資源耗盡,等等。通常的法則是系統(tǒng)在正常狀態(tài)下以及無重載和硬件失效狀態(tài)下,不應產生任何異常。方法異常處理采用日志機制來報告異常(調用系統(tǒng)LOG4J接口統(tǒng)一管理),包括異常發(fā)生的時刻。不要使用異常實現來控制程序流程結構。每一個類或文件都要處理異?;蝈e誤。異常封裝Dao層的類中統(tǒng)一封裝所有異常為DBExceptionService層的類統(tǒng)一獲取底層的DBException封裝為BusinessExceptionAction層的類統(tǒng)一捕獲Service層的異常并處理。其它層的異??梢宰远x封裝、事務1.非商務公用組件單獨封裝2.每一個業(yè)務流程單獨封
15、裝3.一次方法(組件)的調用應能完成某一項功能或流程,即符合完整性4.一次方法(組件)的調用符合ACID事務性5.多次方法(組件)的調用應包含在一個事務中可移植性1.盡量不要使用已經被標為不贊成使用的類或方法。2.如果需要換行的話,盡量用 println 來代替在字符串中使用n。 3.用separator()方法代替路徑中的“/”或“”。4.用pathSeptarator()方法代替路徑中的 “: ” 或 “;” 。最要注意的問題1、縮進縮進以4個空格為單位。預處理語句、全局數據、標題、附加說明、函數說明、標號等均頂格書寫。語句塊的、配對對齊,并與其前一行對齊,語句塊類的語句縮進建議每個、單獨
16、占一行,便于匹對。2、空格變量、類、常量數據和函數在其類型,修飾名稱之間空格并據情況對齊。3、對齊 原則上關系密切的行應對齊,對齊包括類型、修飾、名稱、參數等各部分對齊。另每一行的長度不應超過屏幕太多,必要時適當換行,換行時盡可能在,處或運算符處,換行后最好以運算符打頭,并且以下各行均以該語句首行縮進,但該語句仍以首行的縮進為準,即如其下一行為“”應與首行對齊。4、空行 不得存在無規(guī)則的空行。程序文件結構各部分之間空兩行,各函數實現之間一般空兩行,有函數說明或注釋,只需空一行或不空。對自己寫的函數,加上“/-”做分隔。5、注釋注釋是軟件可讀性的具體體現。程序注釋量一般占程序編碼量的20%,軟件工程要求不少于20%。程序注釋不能用抽象的語言,類似于處理、循環(huán)這樣的計算機抽象語言,要精確表達出程序的處理說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年度九年級物理全冊15.2電流和電路教學設計2新版新人教版
- 生產技術員工作總結
- 一年級班隊上學期工作計劃
- 工地保安部年終工作總結
- 教育教學工作計劃書
- 景區(qū)酒店合作協(xié)議書范本
- 駕駛員安全協(xié)議書范本
- 學員聽評課記錄表怎么填
- 自相矛盾聽評課記錄表
- 北京4年級數學試卷
- 長江委水文局2025年校園招聘17人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年湖南韶山干部學院公開招聘15人歷年高頻重點提升(共500題)附帶答案詳解
- 廣東省廣州市番禺區(qū)2023-2024學年七年級上學期期末數學試題
- 不可切除肺癌放療聯合免疫治療專家共識(2024年版)j解讀
- 教科版科學六年級下冊14《設計塔臺模型》課件
- 智研咨詢發(fā)布:2024年中國MVR蒸汽機械行業(yè)市場全景調查及投資前景預測報告
- 法規(guī)解讀丨2024新版《突發(fā)事件應對法》及其應用案例
- JGJ46-2024 建筑與市政工程施工現場臨時用電安全技術標準
- 信息安全意識培訓課件
- 家譜、宗譜頒譜慶典講話
- 新員工入職登記表
評論
0/150
提交評論