任何一個(gè)項(xiàng)目或者系統(tǒng)開發(fā)之前都需要定制一個(gè)開發(fā)約定和規(guī)則牧氮,這樣有利于項(xiàng)目的整體風(fēng)格統(tǒng)一、代碼維護(hù)和擴(kuò)展寞秃。由于Web項(xiàng)目開發(fā)的分散性斟叼、獨(dú)立性、整合的交互性等春寿,所以定制一套完整的約定和規(guī)則顯得尤為重要朗涩。本文檔將定制一系列約定和規(guī)則,他們分別包括組件團(tuán)隊(duì)绑改、文件夾命名規(guī)則谢床、文件名命名規(guī)則兄一、程序代碼編程風(fēng)格、數(shù)據(jù)庫設(shè)計(jì)約定识腿。這些規(guī)則和約定需要與開發(fā)人員出革、設(shè)計(jì)人員和維護(hù)人員共同討論定制,將來開發(fā)都將嚴(yán)格按規(guī)則或約定開發(fā)渡讼。每個(gè)團(tuán)隊(duì)開發(fā)都應(yīng)有自己的一套規(guī)范骂束,一個(gè)優(yōu)良可行的規(guī)范可以使我們工作得心應(yīng)手事半功倍,這些規(guī)范都不是唯一的標(biāo)準(zhǔn)不存在對(duì)與錯(cuò)成箫,也許有些地方與你當(dāng)前使用的習(xí)慣相駁展箱,很多地方都有爭議。比如很多人習(xí)慣設(shè)計(jì)數(shù)據(jù)庫時(shí)采用自動(dòng)增長字段伟众,而有些人就堅(jiān)決反對(duì)析藕,各自都有比較充分的理由闡述自己的觀點(diǎn),所以只好根據(jù)具體情況來采用相應(yīng)的策略凳厢。
非常明顯在Web項(xiàng)目開發(fā)中有前后臺(tái)開發(fā)之分账胧,前臺(tái)開發(fā)主要是指非程序編程部分,主要職責(zé)是網(wǎng)站AI設(shè)計(jì)先紫、界面設(shè)計(jì)治泥、動(dòng)畫設(shè)計(jì)等。而后臺(tái)開發(fā)主要是編程和網(wǎng)站運(yùn)行平臺(tái)搭建遮精,其主要職責(zé)是設(shè)計(jì)網(wǎng)站數(shù)據(jù)庫和網(wǎng)站功能模板的實(shí)現(xiàn)居夹。下面的這些規(guī)范主要是從這2個(gè)方面來定制的,這些規(guī)范是我這幾年學(xué)習(xí)工作中總結(jié)的一點(diǎn)小經(jīng)驗(yàn)本冲,本文檔比較適合中小型網(wǎng)站或者Web項(xiàng)目的開發(fā)規(guī)范准脂。
1.組建開發(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)理湾戳,策劃,美工广料,程序員砾脑,代碼整合員,測試員艾杏。也許你的團(tuán)隊(duì)還沒有6個(gè)人韧衣,沒有關(guān)系一個(gè)人可以有多個(gè)角色,比如項(xiàng)目經(jīng)理還可以有策劃這個(gè)角色,如程序員還可以含有代碼整合和測試這2個(gè)角色畅铭,如果你的項(xiàng)目夠大人數(shù)夠多那就分為6個(gè)組萧求,每個(gè)組分工再來細(xì)分。下面簡單介紹一下這6個(gè)角色的具體職責(zé)顶瞒。
項(xiàng)目經(jīng)理,項(xiàng)目總體設(shè)計(jì)元旬,開發(fā)進(jìn)度的定制和監(jiān)控榴徐,定制相應(yīng)的開發(fā)規(guī)范,負(fù)責(zé)各個(gè)環(huán)節(jié)的評(píng)審工作匀归,協(xié)調(diào)各個(gè)成員(小組)之間開發(fā)坑资。策劃,提供詳細(xì)的策劃方案和需求分析穆端。還包括后期網(wǎng)站推廣方面的策劃袱贮。美工,根據(jù)策劃和需求設(shè)計(jì)網(wǎng)站AI体啰,界面攒巍,Logo等。程序員荒勇,根據(jù)項(xiàng)目總體設(shè)計(jì)來設(shè)計(jì)數(shù)據(jù)庫和功能模塊的實(shí)現(xiàn)柒莉。代碼整合員,負(fù)責(zé)將程序員的代碼和界面融合到一起沽翔,代碼整合員可以制作網(wǎng)站的相關(guān)頁面兢孝,測試員,負(fù)責(zé)測試程序仅偎。
2.開發(fā)工具
Web開發(fā)工具主要分為3部分跨蟹,第一部分是網(wǎng)站前臺(tái)開發(fā)工具,第二部分是網(wǎng)站后臺(tái)開發(fā)環(huán)境橘沥,第三部分是項(xiàng)目管理和輔助軟件窗轩。下面分別簡單介紹這三部分需要使用的軟件。
網(wǎng)站前臺(tá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)開發(fā)主要指網(wǎng)站動(dòng)態(tài)程序開發(fā)、數(shù)據(jù)庫建模,主要使用的相關(guān)軟件是: PowerDesigner(數(shù)據(jù)庫建模)友驮,PowerDesigner在數(shù)據(jù)庫設(shè)計(jì)方面應(yīng)用非常強(qiáng)大漂羊,用它可以快速創(chuàng)建數(shù)據(jù)庫概念和物理模型,我最喜歡的還是它生成數(shù)據(jù)庫Report的功能太方便了卸留,設(shè)計(jì)數(shù)據(jù)庫強(qiáng)烈推薦用它走越。 Rational Rose(程序建模),如果你的項(xiàng)目功能模塊不是特別復(fù)雜那就剩了它吧耻瑟,這樣會(huì)節(jié)省一些時(shí)間和開發(fā)的復(fù)雜度旨指,不過我個(gè)人認(rèn)為不管是大項(xiàng)目還是小項(xiàng)目都應(yīng)該畫畫Rose圖。
網(wǎng)站項(xiàng)目管理主要指對(duì)開發(fā)進(jìn)度和代碼版本的控制喳整。開發(fā)進(jìn)度用Microsoft Project 來制定矢沿,代碼版本控制采用Visual SourceSafe们衙,當(dāng)然還有其他的選擇比如CVS和Rational ClearCase。網(wǎng)站測試采用 VS.net的附帶工具M(jìn)icrosoft Application Center Test,它可以進(jìn)行并行冕象、負(fù)載測試等诡右。程序文檔編寫采用Word鲜侥,如果你非常懷舊用WPS也可以漂坏。
3.網(wǎng)站開發(fā)流程
在項(xiàng)目開始實(shí)施之前應(yīng)該有一個(gè)工作步驟也就是工作流程,在項(xiàng)目開發(fā)中最需要時(shí)間的是總體設(shè)計(jì)和系統(tǒng)測試囱淋,而程序編寫代碼所占的時(shí)間并不多猪杭,但有的團(tuán)隊(duì)就急于開發(fā)寫代碼,先把程序?qū)懗鰜碓僬f妥衣,沒有注重評(píng)審和測試這2個(gè)環(huán)節(jié)皂吮,結(jié)果造成返工,我在一家比較大的公司中都遇到多次這種情況税手。所以項(xiàng)目來了不要急于開工寫代碼蜂筹,應(yīng)該一步一步慢慢來,只有走的慢才能走得穩(wěn)走得遠(yuǎn)芦倒。前后臺(tái)開發(fā)在項(xiàng)目開發(fā)早期互相沒有交叉艺挪,當(dāng)然不是絕對(duì)沒有,Web策劃和需求分析都是互相有關(guān)系的兵扬,一個(gè)是網(wǎng)站表現(xiàn)形式和風(fēng)格的策劃另一個(gè)是網(wǎng)站功能的策劃麻裳,它們是衣服和軀干的關(guān)系。到了開發(fā)后期就需要把界面和功能模塊結(jié)合起來形成一個(gè)統(tǒng)一器钟,也就即將發(fā)布的網(wǎng)站津坑。
4.?dāng)?shù)據(jù)庫開發(fā)
數(shù)據(jù)文件命名采用系統(tǒng)名+_+文件類型,比如系統(tǒng)名為kupage,則數(shù)據(jù)庫文件命名為kupage_database.mdf傲霸,有的數(shù)據(jù)庫文件有多個(gè)疆瑰,比如SQL Server就有2個(gè)眉反,一個(gè)是數(shù)據(jù)庫文件,另一個(gè)是日志文件穆役,那么他們的文件命名分別為kupage_database.mdf寸五, kupage_log.log。文件名全部采用小寫耿币。
數(shù)據(jù)庫表命名規(guī)范梳杏,表名長度不能超過30個(gè)字符,表名中含有單詞全部采用單數(shù)形式淹接,單詞首寫字母要大寫秘狞,多個(gè)單詞間不用任何連接符號(hào)。若庫中有多個(gè)系統(tǒng)蹈集,表名采用系統(tǒng)名稱+單詞或多個(gè)單詞,系統(tǒng)名是開發(fā)系統(tǒng)的縮寫雇初,系統(tǒng)名稱全部采用小寫英文字符,如bbsTitle,bbsForumType拢肆。若庫中只含有一個(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ù)庫字段命名規(guī)范,數(shù)據(jù)庫字段名全部采用小寫英文單詞促绵,單詞之間用”_”隔開攒庵,命名規(guī)則是表別名+單詞,如:user_name,user_pwd败晴。表別名規(guī)則浓冒,如果表名是一個(gè)單詞,別名就取單詞的前 4 個(gè)字母尖坤;如果表名是兩個(gè)單詞稳懒,就各取兩個(gè)單詞的前兩個(gè)字母組成4 個(gè)字母長的別名;如果表的名字由3 個(gè)單詞組成慢味,你不妨從頭兩個(gè)單詞中各取一個(gè)然后從最后一個(gè)單詞中再取出兩個(gè)字母场梆,結(jié)果還是組成4 字母長的別名。
視圖名采用規(guī)則View_表A_表B_表C,View表示視圖纯路。這個(gè)視圖由幾個(gè)表產(chǎn)生就用”_”連接幾個(gè)表的名或油,如果表過多可以將表名適當(dāng)簡化,但一定要列出所有表名感昼。
存儲(chǔ)過程命名規(guī)則P_表名_存取過程名(縮寫)装哆,比如P_User_Del,P_ArticleType_AddData。
SQL語句編寫規(guī)則蜕琴,關(guān)鍵字必須大寫萍桌,其他書寫按上述命名規(guī)則,比如:
Select user_id, user_name FROM User Where user_id = ‘tom’
5.文件夾文件名命名規(guī)范
文件夾命名一般采用英文凌简,長度一般不超過20個(gè)字符上炎,命名采用小寫字母。除特殊情況才使用中文拼音雏搂,一些常見的文件夾命名如:images(存放圖形文件)藕施,flash(存放Flash文件),style(存放CSS文件)凸郑,scripts(存放Javascript腳本)裳食,inc(存放include 文件),link(存放友情鏈接),media(存放多媒體文件)等芙沥。
文件名稱統(tǒng)一用小寫的英文字母诲祸、數(shù)字和下劃線的組合。命名原則的指導(dǎo)思想一是使得你自己和工作組的每一個(gè)成員能夠方便的理解每一個(gè)文件的意義而昨,二是當(dāng)我們在文件夾中使用“按名稱排例”的命令時(shí)救氯,同一種大類的文件能夠排列在一起,以便我們查找歌憨、修改着憨、替換、計(jì)算負(fù)載量等等操作 务嫡。
6.程序代碼編程規(guī)范
一個(gè)良好的程序編碼風(fēng)格有利于系統(tǒng)的維護(hù)甲抖,代碼也易于閱讀查錯(cuò)。在此只討論ASP的編程風(fēng)格和約定心铃。在ASP中所有變量是弱變量惧眠,無需定義就可以直接使用,而且代碼不區(qū)分大小寫于个。但其他語言一般這些都要定義的氛魁,為了養(yǎng)成良好的編程習(xí)慣,編寫代碼務(wù)必按照一下規(guī)則厅篓。
1秀存、每個(gè)變量名必須定義,在ASP文件的最開始添加語句 羽氮,強(qiáng)制定制每個(gè)變量或链。
2、出于易讀和一致性的目的档押,在代碼中使用以下變量命名約定澳盐。
3祈纯、程序代碼需要有縮進(jìn),縮進(jìn)采用鍵盤Tab鍵叼耙,不采用空格鍵腕窥。并且”=”或者鏈接字符串時(shí)需要左右空一格,如下:
4筛婉、函數(shù)過程編寫的約定簇爆。函數(shù)或者過程命名采用動(dòng)作+名詞,每個(gè)函數(shù)需要給出相應(yīng)的注釋爽撒,函數(shù)功能入蛆,傳入變量,以及作者和修改相關(guān)信息硕勿。
5哨毁、ASP內(nèi)置對(duì)象區(qū)分大小寫。
6源武、數(shù)據(jù)庫連接一個(gè)庫只能有一個(gè)數(shù)據(jù)庫連接文件挑庶,創(chuàng)建數(shù)據(jù)庫對(duì)象得原則是盡可能晚地打開數(shù)據(jù)庫,盡可能早地關(guān)閉數(shù)據(jù)庫软能。創(chuàng)建數(shù)據(jù)庫對(duì)象調(diào)用統(tǒng)一地創(chuàng)建函數(shù)。
7举畸、當(dāng)一個(gè)對(duì)象不在使用時(shí)要釋放對(duì)象資源查排,比如objFSO,objRS對(duì)象等。采用統(tǒng)一函數(shù)調(diào)用抄沮。
8跋核、時(shí)間全部以字符串的形式保存到數(shù)據(jù)庫中,這樣做能夠是日期在不同的數(shù)據(jù)庫中都能良好地保存叛买,也方便數(shù)據(jù)庫地遷移砂代。時(shí)間用14位字符串保存,日期用8位字符串保存率挣。
我不得不在此提出一個(gè)新的網(wǎng)站開發(fā)職位:網(wǎng)站內(nèi)容結(jié)構(gòu)設(shè)計(jì)師刻伊。web標(biāo)準(zhǔn)強(qiáng)調(diào)內(nèi)容的結(jié)構(gòu) 化,認(rèn)為網(wǎng)站是建立在內(nèi)容的基礎(chǔ)上椒功,沒有內(nèi)容談不上表現(xiàn)捶箱。由此看來,內(nèi)容結(jié)構(gòu)的設(shè)計(jì)的重要 性不言而喻动漾。遺憾的是目前的網(wǎng)站開發(fā)團(tuán)隊(duì)并沒有這樣一個(gè)職位丁屎,或是說這樣的職位總被其他的 職位兼顧著(一般都是網(wǎng)站策劃師),但我這里所言的網(wǎng)站結(jié)構(gòu)設(shè)計(jì)師并不僅限于現(xiàn)在策劃師所 作的旱眯。
目前的策劃師往往僅僅是策劃出網(wǎng)站風(fēng)格晨川、欄目证九、功能,但我這里談及的網(wǎng)站結(jié)構(gòu)設(shè)計(jì)師所 作的工作并不僅限于此共虑,他所要做的是將客戶提供的信息歸類愧怜,將信息內(nèi)容結(jié)構(gòu)化,使客戶提供 的整個(gè)文檔具備高度的可讀化(就像組織一本書看蚜,要分好章節(jié)叫搁、項(xiàng)目、段落等等)供炎。這樣的職位 要求從業(yè)人員有較高的邏輯思維能力和語文基礎(chǔ)渴逻,并熟知xhtml中的結(jié)構(gòu)化標(biāo)簽,可利用這些標(biāo)簽 最終形成內(nèi)容高度結(jié)構(gòu)化的網(wǎng)頁音诫。這個(gè)工作是整個(gè)網(wǎng)站構(gòu)建的基礎(chǔ)惨奕。
有了這樣一個(gè)網(wǎng)站內(nèi)容設(shè)計(jì)師,我們整個(gè)的工作就簡單而明了了竭钝。我們需要以下人員:
網(wǎng)站項(xiàng)目經(jīng)理:負(fù)責(zé)與客戶溝通梨撞,采集客戶的需求,確定網(wǎng)站的風(fēng)格香罐、欄目 卧波、功能,制定網(wǎng)站策劃書庇茫、指派監(jiān)督任務(wù)港粱,與項(xiàng)目實(shí)施人員溝通協(xié)調(diào),測試網(wǎng)站旦签,最終促使項(xiàng)目 水利完成查坪。 網(wǎng)站內(nèi)容結(jié)構(gòu)設(shè)計(jì)師:根據(jù)項(xiàng)目經(jīng)理提供的項(xiàng)目材料,生成高度結(jié)構(gòu)化的文檔宁炫,并形成 初始網(wǎng)頁(不含任何樣式)偿曙。
網(wǎng)頁設(shè)計(jì)師(美工):根據(jù)項(xiàng)目經(jīng)理提供的策劃書和內(nèi)容結(jié)構(gòu)師制作的初始網(wǎng)頁, 進(jìn)行網(wǎng)頁效果圖的設(shè)計(jì)羔巢,包括首頁望忆、欄目頁、內(nèi)容頁竿秆、功能頁等炭臭。
網(wǎng)站樣式設(shè)計(jì)師(網(wǎng)站制作):參照網(wǎng)頁設(shè)計(jì)師的效果圖以及內(nèi)容設(shè)計(jì)師的初始網(wǎng) 頁,編寫網(wǎng)頁樣式袍辞,須保證樣式的高效簡潔鞋仍。最終實(shí)現(xiàn)符合效果圖的網(wǎng)頁。
網(wǎng)站程序員:根據(jù)項(xiàng)目經(jīng)理的網(wǎng)站功能設(shè)計(jì)策劃搅吁,編制實(shí)現(xiàn)功能的后臺(tái)程序威创。需要 在頁面輸出的落午,就將頁面的靜態(tài)內(nèi)容換成動(dòng)態(tài)輸出的。要求了解web標(biāo)準(zhǔn)肚豺。
這樣的人員分配溃斋,保證了每個(gè)項(xiàng)目人員都能專心的發(fā)揮本身的長處,內(nèi)容設(shè)計(jì)師只要具備良 好的邏輯思維和語文基礎(chǔ)吸申,不需要去考慮網(wǎng)頁的表現(xiàn)梗劫;網(wǎng)頁設(shè)計(jì)師只要是個(gè)平面設(shè)計(jì)高手,具有良好的形象思維截碴,良好的美學(xué)觀念梳侨,良好的藝術(shù)創(chuàng)造力,不需要繁瑣的網(wǎng)頁設(shè)計(jì)知識(shí)日丹,畢竟網(wǎng)頁 設(shè)計(jì)也要有一定的邏輯思維走哺,這對(duì)專業(yè)的藝術(shù)設(shè)計(jì)人員來說是可怕而費(fèi)時(shí)的;網(wǎng)站樣式設(shè)計(jì)師( 網(wǎng)站制作)哲虾,只要照著效果圖實(shí)現(xiàn)效果就可以了丙躏,工作性質(zhì)類似于工匠,要求有細(xì)心仔細(xì)的工作作風(fēng)束凑,只需要了解樣式的編寫晒旅,不需要再去考慮創(chuàng)作上的問題,某種意義上說也是一種解脫汪诉。