軟件公司項目命名開發(fā)規(guī)范_第1頁
軟件公司項目命名開發(fā)規(guī)范_第2頁
軟件公司項目命名開發(fā)規(guī)范_第3頁
軟件公司項目命名開發(fā)規(guī)范_第4頁
軟件公司項目命名開發(fā)規(guī)范_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、項目開發(fā)命名規(guī)范Version 1.0第15頁一目的2二范圍2三命名及開發(fā)規(guī)范 23.1 HTML頁面元素命名及開發(fā)規(guī)范 23.1.1 頁面元素命名規(guī)范23.1.2 頁面元素開發(fā)規(guī)范33.2 腳本變量的命名和開發(fā)規(guī)范 43.2.1 腳本變量命名規(guī)范 43.2.2 腳本變量開發(fā)規(guī)范43.2.3 腳本函數(shù)以及子過程命名規(guī)范54 WEB面頁開發(fā)規(guī)范54.1 客戶端程序部分54.2 服務(wù)器端程序部分 65 JAVA 程序及JSP代碼的風(fēng)格 75.1 JAVA 命名75.2 總體風(fēng)格75.3 類文件風(fēng)格105.4 方法調(diào)用的規(guī)范 13一 目的為了保證公司編寫出的程序都符合相同的規(guī)范,而且便捷,保證一致性

2、、統(tǒng)一性更符合構(gòu)件化 的要求而建立的程序編碼規(guī)范,要使程序易懂。范圍適用于公司所有 WEB相關(guān)項目開發(fā)。三命名及開發(fā)規(guī)范所有命名(類、函數(shù)、變量.)均要求意義明確易于理解,盡量使用有實際意義的英文單詞或英 文單詞的縮寫,避免在代碼中直接使用數(shù)字等不確定意義的詞,更切忌使用中文拼音的首字母。如 這樣的名稱是不提倡的:Valuel, Value2, Value3, Value4。3.1 html頁面元素命名及開發(fā)規(guī)范3.1.1 頁面元素命名規(guī)范Html兀素縮寫例如text輸入框txttxtReasonbutton按鈕btnbtnCheckselect下拉選擇框selselBeginTimeopti

3、on 項optoptDateCheckbox多選項chkchkProduceNumberform表單frmfrmContractQueryframe框架frafraWorkProcesshidden表單項hdnhdnSteelNumberdiv標(biāo)記divdivResultspan標(biāo)記span對話框?qū)ο骴lg窗口對象win3.1.2 頁面兀素開發(fā)規(guī)范? img元素alt:所有展示類圖片都要具有能簡要描述圖片內(nèi)容的文字說明。? Input元素maxlength:所有INPUT控件都需要制定 maxlength屬性,默認(rèn)值為數(shù)據(jù)庫中對應(yīng)的字段的長度。readonly:所有不可更改的信息都要使用rea

4、donly屬性。? Form元素action:所有Form都要指定action,如果提交給本身就指定action=method:執(zhí)行不可逆動作使用POST,可逆動作使用 GETonsubmit:所有form都要指定提交前需要的檢查程序。? button 元素onclick : form中用于提交的 button不容許使用此方法,所有數(shù)據(jù)檢查通過form的onsubmit激活。? title屬性所有頁面都要具有和本頁標(biāo)題相同的title。?語言設(shè)置所有中文頁面都要加上如下語句:? 元素屬性賦值所有元素的屬性值都要使用雙引號包括起來。?元素縮進(jìn)所有子元素比父元素縮進(jìn)兩個空格。3.2 腳本變量的命名

5、和開發(fā)規(guī)范3.2.1 腳本變量命名規(guī)范?常量以及全局變量名必須全部使用大寫字母。?變量名必須使用其類型的縮寫字符串開始。各種類型的縮寫字符串如下:整型變量:int長整型變量:lng浮點型變量:flt雙精度變量:dbl對象引用變量:obj字符串變量:strDate類型變量:dtm循環(huán)依次采用i, j;數(shù)組:ary臨時變量:tmp?變量名必須采用有意義的單詞命名,如:strUserName、lngArrayIndex ;?變量名除首字母小寫外,其他單詞首字符必須大寫?如果變量名過長可以使用單詞縮寫,除了被廣泛了解的單詞縮寫以外,所有使用單詞縮寫的變量名必須在定義時給出注釋,如:var strAdN

6、ame用于表示Administrator帳戶的名稱var strAdminName/不用給出注釋,Admin被廣泛了解?參數(shù)變量命名必須加前綴p_3.2.2 腳本變量開發(fā)規(guī)范?變量的使用盡量縮小到小的作用域。如循環(huán)使用for(var i = 0; i 12; i+)而不是:var i;for(i = 0; I 12; i+)3.2.3 腳本函數(shù)以及子過程命名規(guī)范?函數(shù)命名必須使用動詞+名詞對的方式,并且能夠體現(xiàn)函數(shù)的功能?函數(shù)命名的動詞前綴必須是同函數(shù)功能相關(guān)的完整動詞?函數(shù)命名第一個單詞的首字母小寫,后面每一個單詞的首字母大寫四 WEB面頁開發(fā)規(guī)范4.1 客戶端程序部分?錯誤提示信息的處理(

7、4-1)所有錯誤信息全部使用中文提示錯誤信息,標(biāo)點使用中文半角符號,格式如下:錯誤:+提示信息+!”?成功提示信息的處理所有成功信息全部使用中文提示成功信息,標(biāo)點使用中文半角符號,格式如下:成功:”+提示信息+!”?建立錯誤代碼和錯誤頁面機(jī)制,客戶端顯示錯誤頁服務(wù)端異常時,如:應(yīng)用服務(wù)器頁面不存在異常(錯誤代碼:404)應(yīng)用服務(wù)器頁面出現(xiàn)錯誤代碼(錯誤代碼:500)在web.xml文件中對異常進(jìn)行聲明( Servlet 2.4支持error-code聲明),如下所示:404location/ 頁面不存在錯誤頁.html500/ 服務(wù)端內(nèi)部錯誤頁.html java.lang.NumberFor

8、matExceptionlocation/ 運行異常錯誤頁.html?頁面的返回所有需要返回上一頁的時候使用history.back();不使用history.go(-l);需要返回前n頁(n1)時使用history.go(-n);所有返回都使用連接的方式而不是button。有些返回需要分返回上頁面和主頁面,如果返回主頁面,用按鈕比較醒目。最好寫明返回的 頁面名稱。?提交前數(shù)據(jù)的判斷保證提交前的數(shù)據(jù)都會通過后臺進(jìn)行數(shù)據(jù)類型以及長度的判斷;長度判斷:長度要判斷去掉前后空格后的實際長度;為空判斷:所有不容許為空的輸入字段都要在去掉前后空格后進(jìn)行判斷,同時如果該字段為查詢條件則必須不能為空;如果判斷

9、條件發(fā)現(xiàn)數(shù)據(jù)錯誤,則提示錯誤信息;所有涉及刪除的操作,在用戶選定以后都要再進(jìn)行一次確認(rèn)操作。? 頁面中session、application的使用規(guī)范統(tǒng)籌定義JSP內(nèi)建對象session、application的屬性(提高模塊內(nèi)相關(guān)功能間對象屬性使用率)?在頁面中使用 Java Bean、Applet等時注意聲明其作用范圍:scope。如果用STRUT磔構(gòu),一般將DTO放置在session中,頁面上沒有設(shè)置,但在Action中注意session的清空,否則占用系統(tǒng)內(nèi)存。4.2 服務(wù)器端程序部分?數(shù)據(jù)的取得只通過Post方式獲取數(shù)據(jù),傳遞過來的數(shù)據(jù)在使用前都要通過trim去掉數(shù)據(jù)前后的空格。?對

10、象的關(guān)閉所有數(shù)據(jù)庫和文件對象都要在使用后盡可能早的close,同時賦null。一般在用數(shù)據(jù)連接后都要對其進(jìn)行捕捉錯誤,在 finally中再次清空數(shù)據(jù)連接。?提示信息所有錯誤提示信息使用 JavaScript提示,保證使用者看不到任何內(nèi)部錯誤信息。(如1-1)涉及數(shù)據(jù)庫Update, Del, Insert的操作成功都要提示。(如1-2)?服務(wù)端的監(jiān)聽和過濾針對服務(wù)程序中重點屬性信息的修改,在服務(wù)端設(shè)置并啟用監(jiān)聽程序,記錄操作過程,并形成文本形式的日志文件;頁面字符亂碼問題使用服務(wù)編碼過濾器處理;針對部分保密級高的目錄使用服務(wù)訪問認(rèn)證過濾處理? 其它:所有頁面要在800*600, 1024*7

11、68兩種分辨率下運行通過。所有頁面要在IE5.0, 5.5以及6.0下運行通過沒有 JavaScript錯誤。五 Java程序及JSP代碼的風(fēng)格5.1 Java 命名?大部分與JavaScript 相同?增加部分?成員變量命名必須為英文并擁有實際意義? 布爾值前綴bln5.2 總體風(fēng)格? 縮進(jìn)縮進(jìn)建議以2個空格為單位。語句塊的“ ”放到語句的末尾,“”與其前一行對齊,便于匹 對。? 空格原則上變量、類、常量數(shù)據(jù)和函數(shù)在其類型,修飾名稱之間適當(dāng)空格并據(jù)情況對齊。如:String strRange= 0;String strFurnaceNumber= 0;String strProduceNum

12、ber= 0;String strSteelNumber= 0;關(guān)鍵字原則上空一格,如:if ()等。運算符的空格規(guī)定如下:、+、-、!、+、-(指正負(fù)號)等幾個運算符兩邊不加空格 (其中單目運算符系指與操作數(shù)相連的一邊),其它運算符(包括大多數(shù)二目運算符和三目運算符?:)兩邊均加一空格。? 對齊原則上關(guān)系密切的行應(yīng)對齊,對齊包括類型、修飾、名稱、參數(shù)等各部分對齊。另每一行的 長度不應(yīng)超過屏幕太多,必要時適當(dāng)換行,換行時盡可能在,處或運算符處,換行后最好以運算符打頭,并且以下各行均以該語句首行縮進(jìn),但該語句仍以首行的縮進(jìn)為準(zhǔn)。? 空行不得存在無規(guī)則的空行,比如說連續(xù)十個空行。程序文件結(jié)構(gòu)各部分

13、之間空兩行,若不必要也可只空一行,各函數(shù)實現(xiàn)之間一般空兩行,由于每個函數(shù)還要有函數(shù)說明注釋,故通常只需空一行或不空,但對于沒有函數(shù)說明的情況至少應(yīng)再空一行。對自己寫的函數(shù),建議也加上“-”做分隔。函數(shù)內(nèi)部數(shù)據(jù)與代碼之間應(yīng)空至少一行,代碼中適當(dāng)處應(yīng)以空行空開,建議在代碼中出 現(xiàn)變量聲明時,在其前空一行。類中四個“p之間至少空一行,在其中的數(shù)據(jù)與函數(shù)之間也應(yīng)空行。? 注釋注釋是軟件可讀性的具體體現(xiàn)。程序注釋量一般占程序編碼量的20%,軟件工程要求不少于30%。程序注釋不能用抽象的語言,類似于處理、循環(huán)這樣的計算機(jī)抽象語言,要精確表達(dá)出程序的處理說明。例如:”計算凈需求”、”計算第一道工序的加工工時

14、”等。避免每行程序都使用注釋,可以在一段程序的前面加一段注釋,具有明確的處理邏輯。注釋必不可少,但也不應(yīng)過多,不要被動的為寫注釋而寫注釋。以下是四種必要的注釋:A.標(biāo)題、附加說明。B.函數(shù)、類等的說明。對幾乎每個函數(shù)都應(yīng)有適當(dāng)?shù)恼f明,通常加在函數(shù)實現(xiàn)之前,在沒有函 數(shù)實現(xiàn)部分的情況下則加在函數(shù)原型前,其內(nèi)容主要是函數(shù)的功能、目的、算法等說明,參數(shù)說明、 返回值說明等,必要時還要有一些如特別的軟硬件要求等說明。公用函數(shù)、公用類的聲明必須由注 解說明其使用方法和設(shè)計思路。為了形成 javadoc此處按Jbuilder要求的形式來寫,如:*author name time*version versi

15、on-number*param parameter-name description*return description*value*/C.在代碼不明晰或不可移植處必須有一定的說明。D.及少量的其它注釋,如自定義變量的注釋、代碼書寫時間等。E.修改、增加或注釋掉的代碼行需要標(biāo)注修改/增加人、時間,必要時寫明原因或?qū)崿F(xiàn)的功能。建議以如下格式說明:修改 /changed by yangjingping 2006-4-26增力口 /added by yangjingping 2006-4-26注釋掉 /concealed by yangjingping 2006-4-26? 代碼長度對于每一個方法

16、建議盡可能控制其業(yè)務(wù)代碼長度30行左右,超過30行的代碼要重新考慮將其拆分為兩個或兩個以上的函數(shù)。函數(shù)拆分規(guī)則應(yīng)該一不破壞原有算法為基礎(chǔ),同時拆分出來的 部分應(yīng)該是可以重復(fù)利用的。對于在多個模塊或者窗體中都要用到的重復(fù)性代碼,完全可以將起 獨立成為一個,放置于一個公用模塊中。? 頁寬頁寬應(yīng)該設(shè)置為80字符。源代碼一般不會超過這個寬度,并導(dǎo)致無法完整顯示,但這一設(shè)置也可以靈活調(diào)整.在任何情況下, 超長的語句應(yīng)該在一個逗號或者一個操作符后折行.一條語句折行后,應(yīng)該比原來的語句再縮進(jìn) 2個字符。? 行數(shù)把完成比較獨立功能的程序塊抽出,單獨成為一個函數(shù)。把完成相同或相近功能的程序塊抽出,獨立為一個子函

17、數(shù)??梢园l(fā)現(xiàn),越是上層的函數(shù)越簡單,就是調(diào)用幾個子函數(shù),越是底層的 函數(shù)完成的越是具體的工作。這是好程序的一個標(biāo)志。這樣,我們就可以在較上層函數(shù)里容易控 制整個程序的邏輯,而在底層的函數(shù)里專注于某方面的功能的實現(xiàn)了。5.3類文件風(fēng)格所有的Java(*.java)文件都必須遵守如下的樣式規(guī)則:? package/importpackage行要在import行之前,import中標(biāo)準(zhǔn)的包名要在本地的包名之前,而且按照字母順序排列。如果import行中包含了同一個包中的不同子目錄,則應(yīng)該用*來處理。package .stats;import java.io.*;import java.util.Ob

18、servable;import hotlava.util.Application;這里 java.io.* 使用來代替 Inputstream and Outputstream 的。系統(tǒng)類引用和自定義類引用用空行分開? 文件頭部注釋文件頭部注釋主要是表明該文件的一些信息,是程序的總體說明,可以增強(qiáng)程序的可讀性和可維護(hù)性。文件頭部注釋一般位于package/imports語句之后,Class描述之前。要求至少寫出文件名、創(chuàng)建者、創(chuàng)建時間和內(nèi)容描述。JBuilder的Object Gallery工具生成的代碼中會在類、工程 文件中等自動添加注釋,我們也要添加一些注釋,其格式應(yīng)該盡量約束如下(利用J

19、builder中自帶的功能):/* Title :保存檢斤員和判定員信息* Description :各分廠轉(zhuǎn)移票都要經(jīng)過計控部的檢斤員確認(rèn)重量和數(shù)量,也要質(zhì)量部* 的判定員檢查表面等信息之后才可以轉(zhuǎn)移到下分廠。該類主要是將轉(zhuǎn)移票的確認(rèn)人記錄* 到數(shù)據(jù)庫中。* Copyright : Copyright (c) 2005* Company : 華鐵海興 * author段忠琳* version 1.02005-06-29 */接下來是類定義,包含了在不同的行的extends和implementspublic class CounterSet extends Observable impleme

20、nts CloneableClass Fields接下來是類的成員變量:/*物料計數(shù)器*/protected String m_strMaterialCounters;public的成員變量必須生成文檔(JavaDoc)。proceted、private和package定義的成員變量如果名字含義明確的話,可以沒有注釋。注意:成員變量的命名“ m_” + “定義名”(按變量定義規(guī)則定義) 。如:protected String m_strMaterialCounters;?存取方法/*設(shè)置和返回計數(shù)器*/public int getPackets() return copyArray(packe

21、ts , offset);public void setPackets(int口 p_intSrrPackets) this.packets = p_intSrrPackets;注意:方法參數(shù)的命名p_ + 定義名(按變量定義規(guī)則定義),如:public void setPackets(int口 p_intSrrPackets)。?構(gòu)造函數(shù)接下來是構(gòu)造函數(shù),它應(yīng)該用遞增的方式寫(比如:參數(shù)多的寫在后面) 。public Material (int p_intSize)this.size = p_intSize;? 類方法卜面開始寫類的方法:/*author liandti *version V

22、1.3 *param key需要加到Materialcounters中的物料主鍵。*return int MaterialCounters */ public MaterialCounters addMaterial(String key)? toString 方法無論如何,每一個類都應(yīng)該定義toString方法:public String toString()String retval = CounterSet :;for (int i = 0; i data.length(); i+) retval += data.bytes.toString();retval += data.packe

23、ts.toString();return retval;? main方法如果main(String)方法已經(jīng)定義了,那么它應(yīng)該寫在類的底部? 神秘的數(shù)首先要說什么是神秘的數(shù)。我們在程序里經(jīng)常會用到一些量,它是有特定的含義的。例如,現(xiàn)在我們寫一個薪金統(tǒng)計程序,公司員工有50人,我們在程序里就會用50這個數(shù)去進(jìn)行各種各樣的運算。在這里,50就是神秘的數(shù)。為什么稱它為神秘呢?因為別的程序員在程序里看到50這個數(shù),不知道它的含義,只能靠猜了。在程序里出現(xiàn)“神秘白數(shù)會降低程序的可讀性,應(yīng)該盡量避免。避免的方法是把神秘的數(shù)定義為一個常量。注意這個常量的命名應(yīng)該能表達(dá)該數(shù)的意義,并且應(yīng)該全部大寫,以與對應(yīng)于

24、變量的標(biāo)識符區(qū)別開來。例如上面 50這個數(shù),我們可以定義為一個名為NUMOFEMPLOYEES 的常量來代替。這樣,別的程序員在讀程序的時候就可以容易理解了。5.4 方法調(diào)用的規(guī)范? 形成公共類或類內(nèi)部的公共方法設(shè)計編碼過程中提取系統(tǒng)中的公共業(yè)務(wù)部分,對此形成公共類或類內(nèi)部公共方法。如:當(dāng)前系統(tǒng)中JDBQS接數(shù)據(jù)庫的方法統(tǒng)一設(shè)制在 common.CnnectDatabase中, 連接EJB的方法統(tǒng)一設(shè)制在common.ConnectEJ談中。名稱對照盡量使用視圖直接建 立,必要時統(tǒng)一在pcommon.IdToNam類中編寫。? 其他客戶程序使用該公共類或類內(nèi)部的公共方法三地程序如果業(yè)務(wù)有區(qū)別盡

25、量通過傳參數(shù)等方式做到統(tǒng)一,如部分類或方法無法統(tǒng)一不同則盡量提取其中公共的部分形成公用方法,不同的類或方法在名稱上要進(jìn)行標(biāo)識,如金牛的類或方法名后增加 JN,撫順白增加FS,北滿增加BM5.5 JDBC、EJB設(shè)計規(guī)范1 .采用JDBCJ問數(shù)據(jù)源的一律調(diào)用改后的 commorfe里的方法。2 .檢查程序中ResultSet,Statement,Connection是否都已經(jīng)及時關(guān)閉。try結(jié)束處關(guān)閉ResultSet和Statement , finally 中關(guān)閉Connection。(急:大大影響程序的效 率)3 .不涉及事務(wù)管理的查詢盡量用 JDBC(快),其它的用實體Bean (事務(wù)處理方便)。4 .盡量少直接調(diào)用實體的get-。方法顯示字段的值,最好是調(diào)用一個getiVo(),然 后再調(diào)用vo.get ()方法顯示。(這樣可以減少事務(wù)數(shù)量,提高速度)。5 .盡量使用批量更新,而不是逐條更新。6 . 盡可能做現(xiàn)場更新, update 優(yōu)于insert , delete 和remove。7 .盡量不使用 DriverManager取得DataSourc

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論