任何一個(gè)項(xiàng)目或者系統(tǒng)開(kāi)發(fā)之前都需要定制一個(gè)開(kāi)發(fā)約定和規(guī)則,這樣有利于項(xiàng)目的整體風(fēng)格統(tǒng)一、代碼維護(hù)和擴(kuò)展。由于Web項(xiàng)目開(kāi)發(fā)的分散性、獨(dú)立性、整合的交互性等,所以定制一套完整的約定和規(guī)則顯得尤為重要。本文檔將定制一系列約定和規(guī)則,他們分別包括組件團(tuán)隊(duì)、文件夾命名規(guī)則、文件名命名規(guī)則、程序代碼編程風(fēng)格、數(shù)據(jù)庫(kù)設(shè)計(jì)約定。這些規(guī)則和約定需要與開(kāi)發(fā)人員、設(shè)計(jì)人員和維護(hù)人員共同討論定制,將來(lái)開(kāi)發(fā)都將嚴(yán)格按規(guī)則或約定開(kāi)發(fā)。每個(gè)團(tuán)隊(duì)開(kāi)發(fā)都應(yīng)有自己的一套規(guī)范,一個(gè)優(yōu)良可行的規(guī)范可以使我們工作得心應(yīng)手事半功倍,這些規(guī)范都不是唯一的標(biāo)準(zhǔn)不存在對(duì)與錯(cuò),也許有些地方與你當(dāng)前使用的習(xí)慣相駁,很多地方都有爭(zhēng)議。比如很多人習(xí)慣設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)采用自動(dòng)增長(zhǎng)字段,而有些人(像我這樣的人)就堅(jiān)決反對(duì),各自都有比較充分的理由闡述自己的觀點(diǎn),所以只好根據(jù)具體情況來(lái)采用相應(yīng)的策略。
非常明顯在Web項(xiàng)目開(kāi)發(fā)中有前后臺(tái)開(kāi)發(fā)之分,前臺(tái)開(kāi)發(fā)主要是指非程序編程部分,主要職責(zé)是網(wǎng)站AI設(shè)計(jì)、界面設(shè)計(jì)、動(dòng)畫設(shè)計(jì)等。而后臺(tái)開(kāi)發(fā)主要是編程和網(wǎng)站運(yùn)行平臺(tái)搭建,其主要職責(zé)是設(shè)計(jì)網(wǎng)站數(shù)據(jù)庫(kù)和網(wǎng)站功能模板的實(shí)現(xiàn)。下面的這些規(guī)范主要是從這2個(gè)方面來(lái)定制的,這些規(guī)范是我這幾年學(xué)習(xí)工作中總結(jié)的一點(diǎn)小經(jīng)驗(yàn),本文檔比較適合中小型網(wǎng)站或者Web項(xiàng)目的開(kāi)發(fā)規(guī)范。
1.組建開(kāi)發(fā)團(tuán)隊(duì)
在接手項(xiàng)目后的第一件事是組建團(tuán)隊(duì)。根據(jù)項(xiàng)目的大小團(tuán)隊(duì)可以有幾十人,也有可以是只有幾個(gè)人的小團(tuán)隊(duì),在團(tuán)隊(duì)劃分中應(yīng)該含有6個(gè)角色,這6個(gè)角色是必須的,分別是項(xiàng)目經(jīng)理,策劃,美工,程序員,代碼整合員,測(cè)試員。也許你的團(tuán)隊(duì)還沒(méi)有6個(gè)人,沒(méi)有關(guān)系一個(gè)人可以有多個(gè)角色,比如項(xiàng)目經(jīng)理還可以有策劃這個(gè)角色,如程序員還可以含有代碼整合和測(cè)試這2個(gè)角色,如果你的項(xiàng)目夠大人數(shù)夠多那就分為6個(gè)組,每個(gè)組分工再來(lái)細(xì)分。下面簡(jiǎn)單介紹一下這6個(gè)角色的具體職責(zé)。
項(xiàng)目經(jīng)理,項(xiàng)目總體設(shè)計(jì),開(kāi)發(fā)進(jìn)度的定制和監(jiān)控,定制相應(yīng)的開(kāi)發(fā)規(guī)范,負(fù)責(zé)各個(gè)環(huán)節(jié)的評(píng)審工作,協(xié)調(diào)各個(gè)成員(小組)之間開(kāi)發(fā)。策劃,提供詳細(xì)的策劃方案和需求分析。還包括后期網(wǎng)站推廣方面的策劃。美工,根據(jù)策劃和需求設(shè)計(jì)網(wǎng)站AI,界面,Logo等。程序員,根據(jù)項(xiàng)目總體設(shè)計(jì)來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)和功能模塊的實(shí)現(xiàn)。代碼整合員,負(fù)責(zé)將程序員的代碼和界面融合到一起,代碼整合員可以制作網(wǎng)站的相關(guān)頁(yè)面,測(cè)試員,負(fù)責(zé)測(cè)試程序。
2.開(kāi)發(fā)工具
Web開(kāi)發(fā)工具主要分為3部分,第一部分是網(wǎng)站前臺(tái)開(kāi)發(fā)工具,第二部分是網(wǎng)站后臺(tái)開(kāi)發(fā)環(huán)境,第三部分是項(xiàng)目管理和輔助軟件。下面分別簡(jiǎn)單介紹這三部分需要使用的軟件。
網(wǎng)站前臺(tái)開(kāi)發(fā)主要是指Web界面設(shè)計(jì)。包括網(wǎng)站整體框架建立、常用圖片、Flash動(dòng)畫設(shè)計(jì)等等,主要使用的相關(guān)軟件是:Adobe Illustrator 、Adodb Photoshop、Dreamweaver MX、Flash MX等。
網(wǎng)站后臺(tái)開(kāi)發(fā)主要指網(wǎng)站動(dòng)態(tài)程序開(kāi)發(fā)、數(shù)據(jù)庫(kù)建模,主要使用的相關(guān)軟件是: PowerDesigner(數(shù)據(jù)庫(kù)建模),PowerDesigner在數(shù)據(jù)庫(kù)設(shè)計(jì)方面應(yīng)用非常強(qiáng)大,用它可以快速創(chuàng)建數(shù)據(jù)庫(kù)概念和物理模型,我最喜歡的還是它生成數(shù)據(jù)庫(kù)Report的功能太方便了,設(shè)計(jì)數(shù)據(jù)庫(kù)強(qiáng)烈推薦用它。Rational Rose(程序建模),如果你的項(xiàng)目功能模塊不是特別復(fù)雜那就剩了它吧,這樣會(huì)節(jié)省一些時(shí)間和開(kāi)發(fā)的復(fù)雜度,不過(guò)我個(gè)人認(rèn)為不管是大項(xiàng)目還是小項(xiàng)目都應(yīng)該畫畫Rose圖。
網(wǎng)站項(xiàng)目管理主要指對(duì)開(kāi)發(fā)進(jìn)度和代碼版本的控制。開(kāi)發(fā)進(jìn)度用Microsoft Project來(lái)制定,代碼版本控制采用Visual SourceSafe,當(dāng)然還有其他的選擇比如CVS和Rational ClearCase。網(wǎng)站測(cè)試采用VS.net的附帶工具Microsoft Application Center Test,它可以進(jìn)行并行、負(fù)載測(cè)試等。程序文檔編寫采用Word,如果你非常懷舊用WPS也可以。
3.網(wǎng)站開(kāi)發(fā)流程
在項(xiàng)目開(kāi)始實(shí)施之前應(yīng)該有一個(gè)工作步驟也就是工作流程,在項(xiàng)目開(kāi)發(fā)中最需要時(shí)間的是總體設(shè)計(jì)和系統(tǒng)測(cè)試,而程序編寫代碼所占的時(shí)間并不多,但有的團(tuán)隊(duì)就急于開(kāi)發(fā)寫代碼,先把程序?qū)懗鰜?lái)再說(shuō),沒(méi)有注重評(píng)審和測(cè)試這2個(gè)環(huán)節(jié),結(jié)果造成返工,我在一家比較大的公司中都遇到多次這種情況。所以項(xiàng)目來(lái)了不要急于開(kāi)工寫代碼,應(yīng)該一步一步慢慢來(lái),只有走的慢才能走得穩(wěn)走得遠(yuǎn)。圖1的開(kāi)發(fā)流程比較好地體現(xiàn)開(kāi)發(fā)的整個(gè)環(huán)節(jié)。
圖 1
從圖1可以看到2條主線,這2條主線分別是前臺(tái)開(kāi)發(fā)和后臺(tái)開(kāi)發(fā)。前后臺(tái)開(kāi)發(fā)在項(xiàng)目開(kāi)發(fā)早期互相沒(méi)有交叉,當(dāng)然不是絕對(duì)沒(méi)有,Web策劃和需求分析都是互相有關(guān)系的,一個(gè)是網(wǎng)站表現(xiàn)形式和風(fēng)格的策劃另一個(gè)是網(wǎng)站功能的策劃,它們是衣服和軀干的關(guān)系。到了開(kāi)發(fā)后期就需要把界面和功能模塊結(jié)合起來(lái)形成一個(gè)統(tǒng)一,也就即將發(fā)布的網(wǎng)站。
4.?dāng)?shù)據(jù)庫(kù)開(kāi)發(fā)
數(shù)據(jù)文件命名采用系統(tǒng)名+_+文件類型,比如系統(tǒng)名為kupage,則數(shù)據(jù)庫(kù)文件命名為kupage_database.mdf,有的數(shù)據(jù)庫(kù)文件有多個(gè),比如SQL Server就有2個(gè),一個(gè)是數(shù)據(jù)庫(kù)文件,另一個(gè)是日志文件,那么他們的文件命名分別為kupage_database.mdf,kupage_log.log。文件名全部采用小寫。
數(shù)據(jù)庫(kù)表命名規(guī)范,表名長(zhǎng)度不能超過(guò)30個(gè)字符,表名中含有單詞全部采用單數(shù)形式,單詞首寫字母要大寫,多個(gè)單詞間不用任何連接符號(hào)。若庫(kù)中有多個(gè)系統(tǒng),表名采用系統(tǒng)名稱+單詞或多個(gè)單詞,系統(tǒng)名是開(kāi)發(fā)系統(tǒng)的縮寫,系統(tǒng)名稱全部采用小寫英文字符,如bbsTitle,bbsForumType。若庫(kù)中只含有一個(gè)系統(tǒng),那么表名僅用一個(gè)單詞或多個(gè)單詞。單詞選擇能夠概括表內(nèi)容的一個(gè)或多個(gè)英文單詞,如UserInfo,UserType。關(guān)連表命名規(guī)則為Re_表A_表B,Re是Relative的縮寫,如:Re_User_ArticleType, Re_User_FormType。
數(shù)據(jù)庫(kù)字段命名規(guī)范,數(shù)據(jù)庫(kù)字段名全部采用小寫英文單詞,單詞之間用”_”隔開(kāi),命名規(guī)則是表別名+單詞,如:user_name,user_pwd。表別名規(guī)則,如果表名是一個(gè)單詞,別名就取單詞的前4 個(gè)字母;如果表名是兩個(gè)單詞,就各取兩個(gè)單詞的前兩個(gè)字母組成4 個(gè)字母長(zhǎng)的別名;如果表的名字由3 個(gè)單詞組成,你不妨從頭兩個(gè)單詞中各取一個(gè)然后從最后一個(gè)單詞中再取出兩個(gè)字母,結(jié)果還是組成4 字母長(zhǎng)的別名。
視圖名采用規(guī)則View_表A_表B_表C,View表示視圖。這個(gè)視圖由幾個(gè)表產(chǎn)生就用”_”連接幾個(gè)表的名,如果表過(guò)多可以將表名適當(dāng)簡(jiǎn)化,但一定要列出所有表名。
存儲(chǔ)過(guò)程命名規(guī)則P_表名_存取過(guò)程名(縮寫),比如P_User_Del,P_ArticleType_AddData。
SQL語(yǔ)句編寫規(guī)則,關(guān)鍵字必須大寫,其他書寫按上述命名規(guī)則,比如:
SELECT user_id, user_name FROM User WHERE user_id = ‘tom’
5.文件夾文件名命名規(guī)范
文件夾命名一般采用英文,長(zhǎng)度一般不超過(guò)20個(gè)字符,命名采用小寫字母。除特殊情況才使用中文拼音,一些常見(jiàn)的文件夾命名如:images(存放圖形文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放Javascript腳本),inc(存放include文件),link(存放友情鏈接),media(存放多媒體文件)等。
文件名稱統(tǒng)一用小寫的英文字母、數(shù)字和下劃線的組合。命名原則的指導(dǎo)思想一是使得你自己和工作組的每一個(gè)成員能夠方便的理解每一個(gè)文件的意義,二是當(dāng)我們?cè)谖募䦅A中使用“按名稱排例”的命令時(shí),同一種大類的文件能夠排列在一起,以便我們查找、修改、替換、計(jì)算負(fù)載量等等操作 。
1、圖片的命名原則名稱分為頭尾兩部分,用下劃線隔開(kāi),頭部分表示此圖片的大類性質(zhì)例如廣告、標(biāo)志、菜單、按鈕等等。
放置在頁(yè)面頂部的廣告、裝飾圖案等長(zhǎng)方形的圖片取名: banner
標(biāo)志性的圖片取名為: logo
在頁(yè)面上位置不固定并且?guī)в墟溄拥男D片我們?nèi)∶麨?/SPAN> button
在頁(yè)面上某一個(gè)位置連續(xù)出現(xiàn),性質(zhì)相同的鏈接欄目的圖片我們?nèi)∶?/SPAN> menu
裝飾用的照片我們?nèi)∶?/SPAN> pic
不帶鏈接表示標(biāo)題的圖片我們?nèi)∶?/SPAN> title
下面是幾個(gè)范例: banner_sohu.gif 、banner_sina.gif、 menu_aboutus.gif 、menu_job.gif、 title_news.gif、 logo_police.gif、 logo_national.gif 、pic_people.jpg 。
2、動(dòng)態(tài)語(yǔ)言文件命名規(guī)則性質(zhì)_描述,描述可以有多個(gè)單詞,用”_”隔開(kāi),性質(zhì)一般是該頁(yè)面得概要。
范例:register_form.asp,register_post.asp,topic_lock.asp
6.程序代碼編程規(guī)范
一個(gè)良好的程序編碼風(fēng)格有利于系統(tǒng)的維護(hù),代碼也易于閱讀查錯(cuò)。在此只討論ASP的編程風(fēng)格和約定。在ASP中所有變量是弱變量,無(wú)需定義就可以直接使用,而且代碼不區(qū)分大小寫。但其他語(yǔ)言一般這些都要定義的,為了養(yǎng)成良好的編程習(xí)慣,編寫代碼務(wù)必按照一下規(guī)則。
1、每個(gè)變量名必須定義,在ASP文件的最開(kāi)始添加語(yǔ)句,強(qiáng)制定制每個(gè)變量。
2、出于易讀和一致性的目的,在代碼中使用以下變量命名約定:
子類型
前綴
示例
Boolean
bln
blnFound
Byte
byt
bytRasterData
Date (Time)
dtm
dtmStart
Double
dbl
dblTolerance
Error
err
errOrderNum
Integer
int
intQuantity
Long
lng
lngDistance
Object
obj
objCurrent
Single
sng
sngAverage
String
str
strFirstName
3、程序代碼需要有縮進(jìn),縮進(jìn)采用鍵盤Tab鍵,不采用空格鍵。并且”=”或者鏈接字符串時(shí)需要左右空一格,如下:
4、函數(shù)過(guò)程編寫的約定。函數(shù)或者過(guò)程命名采用動(dòng)作+名詞,每個(gè)函數(shù)需要給出相應(yīng)的注釋,函數(shù)功能,傳入變量,以及作者和修改相關(guān)信息。如下面函數(shù):
<%
'[功能] 返回一個(gè)參數(shù)的值
'[參數(shù)] strParameterName 參數(shù)名稱
'[作者] icefire 2002/8/20 am
Function GetParameterValue(strParameterName)
Dim objRS, strSQL, strParameterValue
strSQL = "SELECT ParameterValue FROM damsParameters WHERE ParameterName = '" & strParameterName & "'"
.
.
.
GetParameterValue = strParameterValue
Set objRS = Nothing
End Function
5、ASP內(nèi)置對(duì)象區(qū)分大小寫。如下代碼片斷
strUserName = Request.Form(“UserName”)
Set conn = Server.CreateObject("ADODB.Connection")
6、數(shù)據(jù)庫(kù)連接一個(gè)庫(kù)只能有一個(gè)數(shù)據(jù)庫(kù)連接文件,創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象得原則是盡可能晚地打開(kāi)數(shù)據(jù)庫(kù),盡可能早地關(guān)閉數(shù)據(jù)庫(kù)。創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象調(diào)用統(tǒng)一地創(chuàng)建函數(shù)。如下:
Sub OpenConn(ByRef conn)
Dim strDBPath, strDBConnection
strDBPath = Server.MapPath("database/tax.mdb")
strDBConnnection = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & strDBPath
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strDBConnnection
End Sub
7、當(dāng)一個(gè)對(duì)象不在使用時(shí)要釋放對(duì)象資源,比如objFSO,objRS對(duì)象等。采用統(tǒng)一函數(shù)調(diào)用。函數(shù)如下:
Sub CloseObj(ByRef obj)
If IsObject(obj) Then
obj.Close
Set obj = nothing
End If
End Sub
8、時(shí)間全部以字符串的形式保存到數(shù)據(jù)庫(kù)中,這樣做能夠是日期在不同的數(shù)據(jù)庫(kù)中都能良好地保存,也方便數(shù)據(jù)庫(kù)地遷移。時(shí)間用14位字符串保存,日期用8位字符串保存。
文章轉(zhuǎn)載于:http://www.ebrun.com/20170204/213025.shtml
聲明:本網(wǎng)部份文章為轉(zhuǎn)載文章,在每篇文章底部有說(shuō)明,文章的觀點(diǎn)和立場(chǎng)僅代表作者個(gè)人立場(chǎng),不代表微網(wǎng)立場(chǎng),若是文章轉(zhuǎn)載中有侵范您的權(quán)益,請(qǐng)發(fā)郵件到 [email protected]或致電13922854199通知?jiǎng)h除,謝謝!
免費(fèi)電話 免費(fèi)熱線:400-830-8248
微信咨詢
注冊(cè)開(kāi)店