開發(fā)流程及規(guī)范:Web 開發(fā)的分散性和交互性,決定了 Web 開發(fā)必須遵從一定的開發(fā)規(guī)范和技術(shù)約定。
只有每個開發(fā)人員都按照一個共同的規(guī)范去設(shè)計(jì)、溝通、開發(fā)、測試、部署,才能保證整個開發(fā)團(tuán)隊(duì)協(xié)調(diào)一致的工作,從而提高開發(fā)工作效率,提升工程項(xiàng)目質(zhì)量。
一、 項(xiàng)目的角色劃分
如果不包括前、后期的市場推廣和產(chǎn)品銷售人員,開發(fā)團(tuán)隊(duì)一般可以劃分為項(xiàng)目負(fù)責(zé)人、程序員、美工三個角色。
項(xiàng)目負(fù)責(zé)人在我們中國習(xí)慣稱為"項(xiàng)目經(jīng)理",負(fù)責(zé)項(xiàng)目的人事協(xié)調(diào)、時間進(jìn)度等安排,以及處理一些與項(xiàng)目相關(guān)的其它事宜。程序員主要負(fù)責(zé)項(xiàng)目的需求分析、策劃、設(shè)計(jì)、代碼編寫、網(wǎng)站整合、測試、部署等環(huán)節(jié)的工作。美工負(fù)責(zé)網(wǎng)站的界面設(shè)計(jì)、版面規(guī)劃,把握網(wǎng)站的整體風(fēng)格。如果項(xiàng)目比較大,可以按照三種角色把人員進(jìn)行分組。
角色劃分是Web項(xiàng)目技術(shù)分散性甚至地理分散性特點(diǎn)的客觀要求,分工的結(jié)果還可以明確工作責(zé)任,最終保證了項(xiàng)目的質(zhì)量。分工帶來的負(fù)效應(yīng)就是增加了團(tuán)隊(duì)溝通、協(xié)調(diào)的成本,給項(xiàng)目帶來一定的風(fēng)險(xiǎn)。所以項(xiàng)目經(jīng)理的協(xié)調(diào)能力顯得十分重要,程序開發(fā)人員和美工在項(xiàng)目開發(fā)的初期和后期,都必須有充分的交流,共同完成項(xiàng)目的規(guī)劃和測試、驗(yàn)收。
二、 開發(fā)工具的選取
不象C/S結(jié)構(gòu)程序開發(fā),可以一門語言從頭到尾,你用Delphi,就是Delphi程序員,你用VC++,你就是VC程序員。B/S結(jié)構(gòu)的Web開發(fā)工作,工具的選擇是一件痛苦的事情。從Windows到Linux,從IIS到 Apache,從J2EE到 .NET,從COM到.NET到EJB組件......還有 Asp、Asp.net、Jsp、Php、Perl、Javascript、Vbscript......
美工也輕松不了多少,什么"網(wǎng)頁三劍客" "新網(wǎng)頁三劍客"、FrontPage、Photoshop、CorelDraw......誰都說自己是最強(qiáng)大的!
我們的經(jīng)驗(yàn)是,選用工具時最好是統(tǒng)一的,比如美工統(tǒng)一用DreamwaverMX制作網(wǎng)頁,程序員全部用文本編輯器書寫代碼。統(tǒng)一工具的好處是可以保持同一個項(xiàng)目文檔的一致性,便于開發(fā)人員的交流和文檔的保存。
但是也不必刻意強(qiáng)求一致,比如美工可以使用任何自己熟悉的圖形處理軟件,只要最后能生成瀏覽器支持的圖片就可以了。正是Web開發(fā)工具的多樣性,才成就了今天互聯(lián)網(wǎng)多姿多彩的局面。
只要程序員的純Html和Javascript 代碼的功夫足夠過硬,就能勝任最后的網(wǎng)站整合工作。
三、 項(xiàng)目開發(fā)流程
如果項(xiàng)目真正談下來了,就需要正式確定前階段的需求分析,該補(bǔ)充的步驟必須補(bǔ)上。然后進(jìn)行詳細(xì)的總體設(shè)計(jì),其實(shí)也基本是前階段工作的重復(fù)和完善。
產(chǎn)生各欄目文件夾的結(jié)構(gòu)圖(一些公共文件夾如images、scripts、 styles等需要固定存放,共同調(diào)用)。
然后由美工根據(jù)內(nèi)容表現(xiàn)的需要,設(shè)計(jì)靜態(tài)網(wǎng)頁和其它動態(tài)頁面界面框架,該切分的圖片要根據(jù)尺寸切割開來。給需要程序動態(tài)實(shí)現(xiàn)的頁面預(yù)留頁面空間。制定字體、字號、超級鏈接等CSS樣式等。
在美工設(shè)計(jì)頁面的同時,程序員著手開發(fā)后臺程序代碼,做一些必要的測試。
美工界面完成后,由程序員添加程序代碼,整合網(wǎng)站。
由項(xiàng)目組共同聯(lián)調(diào)測試,發(fā)現(xiàn)bug,完善一些具體的細(xì)節(jié)。
制作幫助文檔、用戶操作手冊。向用戶交付必要的產(chǎn)品設(shè)計(jì)文檔。
然后進(jìn)行網(wǎng)站部署、客戶培訓(xùn)。
最后進(jìn)入網(wǎng)站維護(hù)階段。這一階段也可以不包括在該項(xiàng)目中,而作為公司的服務(wù)內(nèi)容。
以上的每一部都會產(chǎn)生一些階段性成果,項(xiàng)目經(jīng)理需要及時進(jìn)行監(jiān)督、審核,發(fā)現(xiàn)問題及時糾正。
為了控制項(xiàng)目的進(jìn)度,應(yīng)當(dāng)實(shí)施填寫"項(xiàng)目進(jìn)度表"制度,即每天填寫工作日志,記錄當(dāng)天的工作細(xì)目和工作量,以及需要解決和已經(jīng)解決的問題。
四、 一些技術(shù)規(guī)則
1, 數(shù)據(jù)庫命名約定(參考了"匈牙利命名法")
數(shù)據(jù)庫(Database):格式 [db]_[ desc]。
表(Table):格式 [tab]_[desc]。表名長度不能超過30個字符,單詞首寫字母大寫,多個單詞間不用連接符號。
字段(Field or Column):格式f_[type]_[desc]。f:表明這是一個字段名稱;type:可選,表明字段類型,字符型為c,整型為i,邏輯型為b,貨幣類型為m,浮點(diǎn)型為f,日期型為d,時間型為t,二進(jìn)制為bl。如果類型為字符型,可以省略。desc:對字段屬性的有意義的描述,可以用英語單詞、單詞縮寫、漢語拼音、字段實(shí)際含義的拼音縮寫等,單詞之間可以用單詞首字母大寫軟分割(推薦),也可以用"_"隔開。
舉例:
f_name (姓名)
f_c_ UserInfo 或 f_c_ User_Info
f_xm (姓名)
f_grp_id (組標(biāo)識)
索引(Index):格式 [idx]_[desc]。
視圖(View):格式 [View]_[表A]_[表B]_[表C]...,其中View表示"視圖"。這個視圖由幾個表產(chǎn)生就用連字符"_"連接幾個表的名,如果表過多可以將表名適當(dāng)簡化。
存儲過程:格式 [sp]_[表名]_[存取過程名(縮寫)],比如sp_User_Delete。
觸發(fā)器(Trigger):格式 [trg]_[d][i[[u]_[desc]。trg 代表觸發(fā)器;d,i,u表明觸發(fā)器類型(Delete,Insert,Update)定義,書寫順序?yàn)閐、i、u;desc是表的名稱,表明觸發(fā)器所在的表。
數(shù)據(jù)庫設(shè)備(Database Device):格式 [dev]_[desc]。
約束(Constraint):格式 [cns]_[desc]。
2, SQL語句書寫規(guī)范
SQL語句中,SQL關(guān)鍵字全部大寫,其它的遵照"數(shù)據(jù)庫命名約定"。
例如:
SELECT * FROM tabNewsInfo WHERE f_UserName="" ORDER BY f_i_autoid
3, 文件夾命名約定
公共文件夾:
/images 公共圖片
/styles 樣式表
/scripts 腳本
/ftps 下載
/doc 網(wǎng)站相關(guān)素材、文檔
/readme.txt 網(wǎng)站說明文檔
/helps.htm 網(wǎng)站幫助文檔
/mylogs.txt 網(wǎng)站維護(hù)記錄
其它欄目的命名,可以用拼音首字母簡稱,也可以用英文單詞。全部文件夾的含義在readme.txt文件中說明。
4,對象及變量命名約定:每個變量名必須先定義,再使用。
在ASP文件的最開頭添加語句<%Option Explicit%>可以強(qiáng)制變量定義。代碼塊必須采用縮進(jìn)格式。每個函數(shù)前必須標(biāo)明函數(shù)的功能、輸入?yún)?shù)、返回值的相關(guān)信息。
變量類型 縮寫前綴
String str 或 s
Integer Int
Date Dt
Object obj或 o
Boolean bol或 b
Byte Byt
Double Dbl
Error Err
Long Lng
Single Sng
5,圖形對象約定
圖片的格式:最后生成 jpg,gif,png,swf 格式的圖形文件。
圖片的字節(jié)大小:最大不能超過30k。
圖片的尺寸:根據(jù)需要確定,最好使用小圖片,大的圖片必須切割成小圖片使用。
圖片的留白:圖片的邊界不能留白,圖片只包含有效的色彩元素。
6,媒體對象約定
流媒體的格式: asf,wmv,wma,rm,不建議使用 avi 格式的動畫文件。
7,頁面布局的基本約定
中文段落必須有2個漢字的縮進(jìn)。字間距采用默認(rèn)大小。行間距為16pt~20pt。文字布局必須留有"天""地""左""右",不能把版面占滿。
頁面布局必須保持色彩平衡。
注意上下、左右的呼應(yīng)。注意頁面的整體協(xié)調(diào)。提倡畫面和文字的融合,而不是畫面和文字的明顯分離。
要按照設(shè)計(jì)廣告的要求來設(shè)計(jì)網(wǎng)頁頁面 ,特別是一些產(chǎn)品展示性的頁面。
五、 一些經(jīng)驗(yàn)和教訓(xùn)
1,能用靜態(tài)網(wǎng)頁表現(xiàn)的內(nèi)容,盡量不用程序代碼動態(tài)實(shí)現(xiàn)。
2,設(shè)計(jì)階段,必須和用戶進(jìn)行充分的交流,完全、準(zhǔn)確的了解用戶的需求。
既不能歪曲用戶的意思,也不能一味迎合用戶的非正當(dāng)需求,也不能對自己沒有把握的技術(shù)甚至不可能實(shí)現(xiàn)的技術(shù)夸下海口。需求分析是一個溝通、交流、引導(dǎo)、教育、斗爭、妥協(xié)的過程。需求分析結(jié)果要有文字資料存檔。
3,技術(shù)參數(shù)必須了解準(zhǔn)確。
比如用戶的軟件平臺是linux系列,那你的系統(tǒng)就要考慮用Java或者 Php 加MySQL開發(fā)了,這時候你的ASP.NET技術(shù)就用不上了。
4,最好讓用戶對已經(jīng)確定的需求內(nèi)容簽字,蓋章。
5,任何交流,必須有書面記錄。
對一些喜歡"健忘"-實(shí)際上是懶惰的開發(fā)人員,要求他必須每天花10分鐘寫工作日志。
6,每個項(xiàng)目的有關(guān)文檔,全部、統(tǒng)一集中歸檔。