Java項目組開發(fā)規(guī)范_第1頁
Java項目組開發(fā)規(guī)范_第2頁
Java項目組開發(fā)規(guī)范_第3頁
Java項目組開發(fā)規(guī)范_第4頁
Java項目組開發(fā)規(guī)范_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Java 項目組開發(fā)規(guī)范 TOC o 1-5 h z 第一章概述2編寫目的2面向讀者2名詞講明2第二章程序結(jié)構(gòu)3包結(jié)構(gòu)3有關(guān)類3第三章JAVA規(guī)范4核心原則4命名規(guī)范4包、類和接口 4方法4變量4常量5代碼結(jié)構(gòu)6縮進6行寬6換行6長度8括號9注釋9聲明11語句11專門處理15其他規(guī)范1617第四章JSP規(guī)范17JSP文件名命名規(guī)則JSP頭格式 17 TOC o 1-5 h z JSP頁面中按鈕的快捷鍵18SERVLET 命名規(guī)則18HTML 格式 18web.xml 書寫規(guī)范19其他規(guī)范19第五章 數(shù)據(jù)庫規(guī)范20命名規(guī)則20差不多規(guī)則 20常用名稱20數(shù)據(jù)類型 20差不多規(guī)則 20常用類型21

2、SQL 語句 21注釋規(guī)則21JDBC 操作21優(yōu)化規(guī)則22注意事項22概述編寫目的為規(guī)范FSOP項目的開發(fā)實施工作,特制定本規(guī)范。為了提升軟件開發(fā)質(zhì)量,降低開發(fā)周期,增強代碼的可重用性和易讀性,使軟件便于愛護,開發(fā)人員間便于交流和協(xié)作,特總結(jié)出開發(fā)規(guī)范,以為參考。面向讀者從事FSOP項目的開發(fā)、實施工作的有關(guān)人員。名詞講明本節(jié)對手冊中涉及到的術(shù)語進行簡單描述。程序結(jié)構(gòu)包結(jié)構(gòu)項目中的所有代碼,必須符合如下的結(jié)構(gòu):1、各子系統(tǒng)的模塊:com.icss.fsop.subsys.module.servlet.xxServlet其中subsys是子系統(tǒng)的名稱,module是模塊的名稱,xxServle

3、t和xxH andler是模塊下面的Servlet和Handler,承諾有多個Servlet和Handler同時 存在,建議同一個模塊下,用多套 Servlet和Handler處理不同的業(yè)務(wù)對象; util存放該模塊專用的類;package/class能夠任意級不的包或者類;2、子系統(tǒng)之外的模塊:com.icss.fsop.sm.module.servlet.xxServlet其中 sm 是 system manage的簡寫,其他同上;3、公共的類:含義同上。有關(guān)類1、關(guān)于Servlet,必須繼承ServletBase,必須在Servlet中處理與reque st和response關(guān)的操作,一

4、樣是取參數(shù)和設(shè)置屬性等操作;2、關(guān)于Handler,必須繼承HandlerBase,該類的方法中,不能用 requ est和response乍為參數(shù),更不能用 Servlet作為參數(shù);3、程序中使用到的SQL, 一律在XXXSQLBuilder中進行拼寫,該類 屬于util包,需要繼承SQLBuilderBase,其構(gòu)造函數(shù)為私有類型,同時要 實現(xiàn)靜態(tài)方法getSQLBuilder(conn),按照不用的數(shù)據(jù)庫類型,返回不同的 實例。JAVA 規(guī)范核心原則軟件工程化面向?qū)ο竽芎唵尾粡碗s強調(diào)團隊協(xié)作命名規(guī)范程序內(nèi)的所有標識符(包括包名、類名、接口名、方法名、變量名)都應(yīng)由字母、數(shù)字和下劃線組成,

5、并以字母開頭;統(tǒng)一采納英文命名,用詞應(yīng)當準確,禁止使用中英文混合的方式命名,如果可能的話,盡量使用有意義的英文單詞或多個單詞的縮寫命名(縮寫應(yīng)該是被廣泛使用的縮寫) ,做到見名知意;標識符的長度應(yīng)當符合“ min-length & maxinformation ”原則;程序中不要顯現(xiàn)僅靠大小寫區(qū)分的相似的標識符;在使用英文字母起標識作用時要注意,盡量不使用“O”,Z”,“I”等單個字符,以幸免與數(shù)字“0” , “2” , “ 1”混淆。包、類和接口所有包名全部小寫, 只能使用英文字母, 不得使用數(shù)字和其他符號;類名使用有意義的英文單詞或單詞的組合,每個單詞的首字母大寫,如果是實現(xiàn)接口的類,可酌

6、情使用 Imp 結(jié)尾,英文單詞一樣為名詞。接口名使用有意義的名詞和形容詞的組合,每個單詞的首字母大寫,名稱前不需要添加前綴“ I ” ,英文字母i 的大寫。方法方法命名使用動詞或“動詞 +名詞”的組合,名稱的首字母小寫,名稱中其他詞的首字母大寫。 關(guān)于取值的方法 (getter method), 加“ get” 作前綴;關(guān)于設(shè)置的方法(setter method),力口 “set”作前綴;關(guān)于布爾型的方法(bool ean method),力口 “is”作前綴;用正確的反義詞組命名具有互斥意義或相反 動作的函數(shù),例如getValue(),setValue(。)變量變量命名使用名詞或名詞“形容詞

7、+名詞”的組合,名稱的首字母小寫,名稱中其他詞的首字母大寫。盡量幸免單個字符的變量名,除非是一 次性的臨時變量。臨時變量通常被取名為i, j, k, m和n,它們一樣用于 整型;c, d, e,它們一樣用于字符型。用正確的反義詞組命名具有互斥意義的變量,例如:int minValue和int maxValue。盡量幸免名字中顯現(xiàn)數(shù)字編號,如 Value1,Value2等,除非邏輯上的確 而蒙細三。命名應(yīng)盡量使用匈牙利命名法,成員變量用長名字,參數(shù)和局部變量 用短名字,一樣由小寫字母開頭的單詞組合而成。類成員變量前一樣應(yīng)加 上m_,靜態(tài)變量應(yīng)加上s_緊接著是變量的類型(只限于 JDK內(nèi)置類型)。

8、 臨時變量應(yīng)參照如下類似的格式書寫,如ltmp ,tmpStr,tempStr等。例如:m_nTotalNum,m_strPath,s_bRcving前綴整型n,i長整型l無符號整型u字符ch布爾量b浮點數(shù)f雙精度浮點d字符串str,sz常量常量(static final變量)名字的每個字母都大寫,同時指出完整含義,詞與詞之間用下劃線分隔代碼結(jié)構(gòu)代碼組織要清晰,嚴格操縱函數(shù)的長度和每行代碼的長度, ,(,),if,el se,do,while,for,case等要對應(yīng)整齊,縮進全部用Tab鍵(4個空格)。變量的定義要集中, 函數(shù)間要有空行分開, 一個程序中的空行數(shù)目最好占 8%-16% 多態(tài)函

9、數(shù)和功能相近的函數(shù)集中放在一起。代碼應(yīng)該簡潔、清晰并講述了 所發(fā)生的一切,我們的目標應(yīng)該是寫出最清晰的代碼,而不是最巧妙的代 碼。有些不易明白得的變量或函數(shù)應(yīng)作注釋,難明白的代碼要有注解,在文件的開始處有該文件的用途描述。一定要保持注釋的一致性。代碼的重用要認真,刪掉從來沒有用過的函數(shù)或變量,大篇幅注釋掉的代碼行也應(yīng)刪除,以免使程序紛亂難讀。工程中不起作用的文件或類應(yīng)刪除,工程名目下的非工程文件也應(yīng)該移走,保持工程的清潔,幸免混淆難于治理??s進代碼縮進是指通過在每行代碼前鍵入空格或制表符的方式,表示每行代碼之間的層次關(guān)系。任何編程語言都需要代碼縮進規(guī)范程序的結(jié)構(gòu),采納代碼縮進的編程風格有利于代

10、碼的閱讀和明白得。在本項目的開發(fā)中,統(tǒng)一采納TAB (4 個空格)進行代碼縮進。在遇到有關(guān)類、結(jié)構(gòu)、函數(shù)或過程、以及枚舉等等復雜程序結(jié)構(gòu)的定義的時候, 我們通常需要將它的內(nèi)容縮進一層。在 C/C+/C#/Java 語言中,大括號是一個專門明顯的標志,凡是遇到大括號,都應(yīng)該直截了當聯(lián)想到 縮進。行寬當一條語句太長而超出一定的寬度時,應(yīng)該折行書寫,盡量幸免一行的長度超過80 個字符。換行需要折行時,從第二行起到該語句終止之間的各行應(yīng)該縮進一層,至下一條語句時再復原原先的縮進位置。這一點我相信大伙兒都能明白得并情愿遵循,然而咨詢題的焦點并不在于要不要換行,而在于在什么位置換行。當一個表達式不能在一行

11、內(nèi)寫完,參照下面的標準換行:逗號后換行,操作符后換行, ,換行時保證代碼意義的連貫性。在換行時,我們通常在一個變量或者常量之前換行,把逗號之類的分隔符、運算符留在前一行的行尾。函數(shù)調(diào)用時,如果參數(shù)個數(shù)專門多,或者要傳遞的表達式寫起來專門長,那么也會涉及到長語句換行咨詢題;在一些必要的情形下,我們?yōu)榱饲逦亓谐龊瘮?shù)的每一個參數(shù),能夠每行只書寫一個參數(shù),原則是:盡可能地在參數(shù)與參數(shù)之間換行,并將逗號保留在上一行行末。下面是經(jīng)常使用的一些換行的示例代碼:代碼示例 1:由于代碼過長而進行斷行bitmap = new Bitmap(size.Width, size.Height,System.Drawi

12、ng.Imaging.PixelFormat.Format32bppArgb);代碼示例 2: 關(guān)于一個超長表達式, 我們能夠在某兩個表達式項之間斷開:if (f = ImageFormat.Jpeg.Guid |f = ImageFormat.Tiff.Guid |f = ImageFormat.Png.Guid |f = ImageFormat.Exif.Guid)supportsPropertyItems = true;elsesupportsPropertyItems = false;原本一個專門長的條件表達式,通過在“ |”運算符處換行,顯得更加地清晰。有一點需要我們注意的是,當我們

13、進行折行時,要將折行位置處的分隔符(如前一例中的逗號,這一例中的“ |”運算符等)留在上一行的行末,給人以“此行并未終止”的直觀印象。代碼示例1-3:查找最佳的斷行位置double containerAspectRatio =(double)container.ClientWidth / container.ClientHeight;如此一來,那個除法算術(shù)表達式就顯得較為完整,相比前一種寫法而言更能體現(xiàn)其內(nèi)在的邏輯關(guān)系。通常我們會選擇整個表達式中最高的關(guān)系層次進行斷行,例如上述代碼中的“賦值號”和“除號”差不多上能夠考慮的斷行點,但相比較而言,除號連接的那個算術(shù)表達式只是整個賦值表達式的右半部

14、分,如果在除號處斷行,那么不但整個表達式會被截斷,連局部的那個除法表達式也會被截斷;反之,我們選擇在賦值號處換行,能夠保持除法表達式的完整,最大限度地減少換行對語句整體結(jié)構(gòu)的破壞,能夠更加清晰地表達出原先的邏輯。代碼示例1-4:將函數(shù)調(diào)用中的每一個參數(shù)都分行書寫Rectangle imageBounds = new Rectangle( itemBounds.X + padding, itemBounds.Y + padding,itemBounds.Width - padding * 2, itemBounds.Height - padding * 2);當參數(shù)數(shù)量較多,參數(shù)較長或者包含表達

15、式的時候,這種排版比起單 獨寫成一行更為直觀醒目。長度每個函數(shù)要緊邏輯語句的長度以 30個自然行以下為宜,建議不要超過 50行,如果超過80行就應(yīng)該重新組織。如果單獨成行,則其所在的行不 在運算的范疇內(nèi),catch/finally語句塊中的語句不運算在內(nèi)。括號在大括號語法中,縮進時大括號的寫法有不同的幾種,個人認為,前 面所用的那種左右括號單獨一行的寫法最為清晰,因為能夠最好地反映出 括號的配對情形。具體使用何種方式并不重要,重要的是,要保持方式風格的統(tǒng)一,不f);能才能夠,建議使用風格 2,如此的代碼看起來更odOD螂ng須要能在同風珍頊目中顯現(xiàn)不同的風格。風格 1看起來緊湊些,能夠減少代碼

16、 的行f網(wǎng)郵n渣他代碼存在換行的情形下,不容易發(fā)覺配對的括號,必 清晰一些do翎mehinf觸elsedoSomethingElse();注釋注釋是用來講明程序做什么(What),什么緣故如此做(Why),以及要專門注意的地點的,而不是注釋程序是如何工作的(How),你的程序本身就應(yīng)該能講明這一咨詢題,如果程序的邏輯過于復雜,添加一些注釋也是有 /gMthu the array, note the last element is at len-1;ilen; i+)om 0 to len, in each step, it麻DopleM / does SomeThingfor (i = 0;

17、i% page import= java.util.* % page import=java.io.File %/ jdk 標準包% page import=javax.mail.Transport % / java擴展包% page import=org.apache.xml.serialize % 使用的外部庫的包% page import= com.icss.login.LoginHandler % 使用的模塊的 其他包% include file=some.jsp % /include 其他的 jsp%String contextPath=request.getContextPath(

18、);用于設(shè)置相對路徑%JSP頁面中按鈕的快捷鍵操作名稱快捷鍵查詢ALT + Q儲存ALT + S筆數(shù)ALT + S筆數(shù)和金額ALT + S返回ALT + R修改確認ALT + C拒絕ALT + X請示刪除ALT + D確認ALT + C新建ALT + A停用ALT + T導入ALT + I導出ALT + E高級ALT + ASERVLET命名規(guī)貝U以功能編號+Servlet作為Servlet的名稱,例如用戶治理的用戶愛護的功能編號為USER_MANAGE_MAINTAIN ,當前操作名稱為增加,則該 Se rvlet 的名稱為 UserManageMaintainServlet?method=

19、add 操作的名稱列表要 緊包括以下幾種:HTML格式1、HTML頭一樣需要遵循以下格式:some title/some javascript注意: 必須指定一個有意義的 , 嚴禁顯現(xiàn) “untitled” 或“未命名” 之類的 。2、輸入框的maxlength屬性關(guān)于 text 類型的輸入域,必須按照數(shù)據(jù)庫字段的長度設(shè)置相應(yīng)的 maxl ength,例如數(shù)據(jù)庫類型是 VARCHAR(64),那么maxlength是32(因為中文 掃瞄器關(guān)于中文也認為是一個字符) 。web.xml 書寫規(guī)范1、在 web.xml 中,將新添加的元素,放在同類元素的最下面,并用注釋表明;2、web.xml 的

20、servlet-mapping元素中 servlet-name與 url-pattern 值保持 一致;3、要保持web.xml 有良好的格式,每級元素與上級元素保持一個TAB( 4 個空格)的縮進;其他規(guī)范1、限制session的使用在代碼中使用session需要聽取項目經(jīng)理的意見,項目經(jīng)理需要在設(shè)計 文檔中登記項目中所有使用到的session的名字和作用。2、若是待提交的參數(shù)含有中文,或參數(shù)過多,過長,用post 方式,不用 get 方式;數(shù)據(jù)庫規(guī)范命名規(guī)則差不多規(guī)則1、所有標識符全部采納英文大寫,表名以名詞或名詞詞組命名,多個 名詞間以下劃線分隔。2、表名以TBL_開頭、儲備過程以PR手

21、頭、視圖以VIEW_開頭、觸 發(fā)器以TRIG開頭,索引以IDX_開頭。3、字段名稱盡量不用縮寫。4、字段名稱長度在16個字符以下。常用名稱字段名稱名稱縮寫xxx代碼xxxCODExxx類型xxxTYPExxx名稱xxxNAMExxx地址xxxADDRxxx號碼xxxNOxxx狀態(tài)xxxSTSTUSxxx用戶xxxUSERxxx日期xxxDATExxx標識xxxIDxxx屬性xxxAIIRxxx描述xxxDESCxxx版本序號xxxVER上級xxxPARENTxxx數(shù)據(jù)類型差不多規(guī)則盡量使用流行數(shù)據(jù)庫通用的數(shù)據(jù)類型,某種數(shù)據(jù)庫專門的數(shù)據(jù)類型, 如boolean類型能夠用charl代替,分不以Y/

22、N代表True/Fale。字符類型的字段,若長度不定,并有可能超過10的,定義成varchar常用類型字段名稱名稱縮寫字符/字符串varcharXXX數(shù)字number大里文本CLOB文件流BLOB浮點數(shù)float24.2日期(YYYY-MM-DDvarchar10時刻(HH24:MI:SS)varchar8時亥U日期varchar19時刻戳number(20)講明:varcharNN, NN指具體的字節(jié)數(shù),一個中文字占兩個字節(jié)SQL語句1、代碼中書寫的sql語句除數(shù)值部分以外,全部要求使用大寫2、對較為復雜的SQL語句加上注釋,講明算法、功能。3、多表連接時,使用表的不名來引用列。注釋規(guī)則1、所有數(shù)據(jù)庫對象都要有注釋,包括表、字段、試圖、儲備過程、函 數(shù)、觸發(fā)器等;2、SQL語句注釋單獨成行、放在語句前面。3、應(yīng)對SQL語句中不易明白得的分支條件表達式加注釋;4、應(yīng)對SQL語句中對重要的運算應(yīng)講明其功能;5、過長SQ

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論