中國高校勤工助學網站程序開發質量和管理標準化

本標準化文檔主要針對中國高校勤工助學網站(以下簡稱中勤在線)的現有技術和發展方向,對網站後臺程序的開發作一份詳細的規範,僅供中勤在線程序員參考學習。
本文檔分爲兩部分,第一、程序開發標準化,其意義爲規範各程序員在完成本職工作過程的一切操作行爲的標準;第二、程序管理標準化,其意義爲規範程序員的管理,考覈,培訓,獎懲。

一、    【程序開發質量標準化】
1、開發環境
目前,中勤在線的具體開發/調試/運行環境基本爲:
程 序:Asp 3.0
平 臺:Win2K Server + IIS 5.0
數據庫:Access 2000/XP
隨着網站的不斷髮展,此開發/調試/運行環境已不再適合一個大型教育類網站的技術要求。程序語言暴露出安全性不夠,擴展性欠佳,移植性較差,代碼混亂等現象。致使開發人員幾乎很難針對過去的程序進行修改和更新,更不用說跨平臺的應用;Win2k和IIS 5.0的Web平臺工作不夠穩定,出現“當機”現象頻率過高;Access數據庫在大數據量的檢索中出現速度較慢的現象,並且數據備份操作煩瑣,更不利於將來實現多臺服務器的數據同步問題。
爲了提高中勤在線的技術含量,跟上國際主流網站開發的步伐,目前網站面臨重大改革,拋棄過去程序開發的道路(採用面向程序語言),及時與國際主流接軌(採用面向對象程序語言),我們有兩個開發環境可供選擇發展:
第一、採用Linux+Resin/Apache+Jsp(java)+Oracle/Sql Server環境方案;
第二、採用Win2K+IIS(含.net框架)+Asp.Net(C#,Vb.net)+Sql Server/Oracle環境方案;
國外,第一套方案已成爲主流,廣泛應用於電子商務領域,發展穩定;第二套方案推出於微軟.net計劃,發展前途一片光明。
首先,據中勤在線成立以來開發人員詳細資料統計分析,中勤在線後臺程序開發人員90%爲非計算機專業本科學生,10%爲計算機專業本科生與研究生,但由於其站性質,發展成爲專業的面向廣大社會的的門戶網站的可能性很小,其開發人員可能一直侷限於學生,尤其是有濃厚網絡開發興趣的非計算機專業學生。所以其開發團隊可能一直存在基礎不夠牢固的缺點。要想靈活掌握Linux系統下的java編程具有一定難度,大部分開發人員還是習慣於Windows環境下的程序開發,並且,對於具有一定經驗的Asp開發人員,學習Asp.net較學習java上手要快,關鍵就在於轉變由面向程序的概念到面向對象的概念,這是中勤在線應選擇第二套方案的第一個原因。
其次,網站初,中期程序開發所選擇的開發語言爲Asp,目前Asp很難移植到Linux環境下,要將現有欄目都轉爲Jsp程序再掛靠於Linux系統下是個浩大的工程,其工作量不下於重新開發一套完善的系統。再回看第二套方案,其Asp和Asp.net可以共存於新開發環境,這樣一來,本站可在不影響正常發展以及運作的條件下,同時對原有Asp程序進行升級轉換爲新的Asp.net程序,逐步分塊提高程序執行效率和網站整體的技術含量,真正做到發展與運作兩不誤,這是中勤在線應選擇第二套方案的第二個原因。
綜上所述,中勤在線應選擇第二套開發環境,朝着面向對象的發展方向,逐步實現技術的轉化和完善。

2、高效原則
作爲一個程序員,無論針對哪個領域的程序開發,應該努力追求程序的效率,請各位中勤在線的程序員注意,切記以下這句話:
“不要認爲CPU運算速度快就把所有的問題都推給它去做,程序員應該將代碼優化再優化,我們自己能做的決不要讓CPU做,因爲CPU是爲用戶服務的,不是爲我們程序員服務的!”
針對中勤在線的Web開發,我們將這句話實例化:
·儘量避免大量使用全局變量,刪除無用變量;
·儘量少用Session變量;
·數據量較大時儘量使用存儲過程分頁;
·儘量少用“Select * ”,即使需要所有字段也應儘量一個一個按照使用的順序羅列出來,Order By時應該儘量提前使用建立索引或者主鍵的字段排序;
·使用Request對象時,針對具體情況寫名是用QueryString方法還是Form方法;
·所有數據庫和文件對象都要在使用後儘可能早的Close,同時賦Nothing
·Asp.net開發中,儘量少用大型耗資源的系統控件,並且儘量使用CodeBehind技術,將代碼和頁面分開,並編譯動態鏈接庫文件;
儘量採用SQL Server 數據庫;

3、編碼約定
目前,中勤在線已正常運作三年有餘,程序員由九七級本科生延續至現在的零二級,各個年級的程序員編碼的熟悉程度和編碼的方式各不一致,以至於程序編碼五花八門,嚴格的說,從目前中勤在線的網站後臺程序編碼總體來看,中勤在線還停留在個人網站的水準上,看不出一個教育類大型網站的應有的水準,因此,我們的程序員必須統一編碼方式,原因其一,可以體現出整個網站的整體性;其二,可以提高程序的可閱讀性,方便下一階段的程序員修改更新程序。以下爲具體內容:
1、    變量先定義後使用;
2、    首字大寫,儘量採用英語描述,不宜採用拼音描述;
3、變量命名基本採用匈牙利命名法則;
匈牙利命名法則基本原則是:
變量名=屬性 + 類型 + 對象描述
即一個變量名由三部分信息組成,這樣,程序員很容易理解變量的類型、用途,而且便於記憶。
下邊是根據我站一些推薦使用的規則例子(詳細命名規則請參看匈牙利命名規則):
·屬性部分
全局變量:         g_
常  量:         c_
·類型部分
 指  針:         p_
 句  柄:         h_
 整  型:         i_
 浮 點 型:         f_
 日 期 型:         d_
 布 爾 型:         b_
 字 符 型:         s_
數 組 型:         ary_
·描述部分
 初 始 化:         Init
 臨時變量:         Tmp
其中部分規則考慮到將來.net發展的c# 變量命名規則,在Asp中可不考慮。
參考實例:c_i_InitBorderColor、g_s_TmpNewsTitle、g_i_ary_VoteNum,程序員可根據實際情況梢做改動,但必須遵循匈牙利命名法則,能夠使其他程序員看變量名便知其類型和屬性等關鍵標識符意義;
4、所有控件的屬性值都要使用雙引號或者單引號包括起來;
5、控件的命名規則:
  Button:          btn
Form:          frm
Select:          sel
Textarea:         txt
Input:           ipt
  Hidden:          hid
6、各控件主要使用規則:
  ·img控件
alt:所有展示類圖片都要具有能簡要描述圖片內容的文字說明。
·Input控件
maxlength:所有Input控件都需要制定maxlength屬性,默認值爲數據庫中對應的字段的長度。
readonly:所有不可更改的信息都要使用readonly屬性。
·Form控件
action:所有Form都要指定action,如果提交給本身就指定action=""
method:儘量使用post方式
onsubmit:所有form都要指定提交前需要的檢查程序。
所有form都要有對應的reset button。
·Button控件
Onclick:form中用於提交的button不容許使用此方法,所有數據檢查通過form的onsubmit激活。
·head屬性
所有頁面都要具有不爲空的head屬性。
·所有中文頁面都要加上如下語句:
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

4、數據庫設計
程序員在進行數據庫設計前應先仔細閱讀由市場部做的各項分析文檔(包括可行性分析,需求分析等),查看由信息部擬訂的項目所需功能列表後,仔細斟酌後進行數據庫初步設計,設計完後提交數據庫設計報表。詳細規範如下:
·所有表必須以字符“t”(table)開頭,如表tUsers,tAffriches,tMessages等等;
·所以字段必須以字符“f”(field)開頭,如字段fID,fName,fTitle等等;
·較重要表中,最少創建2個預留字段,命名爲fPre_Int (數字型),fPre_Str (字符型);
·設計Access數據庫應有較長數據庫文件名,或者與網絡部協商,做成ODBC連接,防止數據庫被非法下載。
·設計SQL Server數據庫還應備份數據庫創建SQL腳本,即備份數據庫結構。
數據庫設計基本

5、文件夾設置
隨着中勤在線的發展,其欄目設置越來越多,經過三年的開發,現已有十多個欄目,各個欄目均由不同人員開發,各欄目文件夾的設置也是七臨八亂,不成規矩,很難讓別的開發人員一目瞭然其欄目結構。因此爲了更加規範程序和頁面文件夾的設置,現規定如下:
·必須設有Connections文件夾,存放數據庫連接文件;
·必須設有Inc文件夾,存放包含文件和其他頁面調用程序;
·必須設有Images文件夾,存放圖片文件;
·必須設有Css文件夾,存放樣式表文件;
·必須設有Doc文件夾,存放開發文檔;
·必須設有Original Files文件夾,存放圖片源文件;
·必須設有Js文件夾,存放腳本文件;
·在有上傳功能的欄目中,必須設有Upload文件夾,存放上傳的圖片及文件;
·Asp.net欄目中,必須設置Source文件夾,存放程序C#或者Vb.net源文件;
·Asp.net欄目中,必須設置Bin文件夾,存放動態連接庫文件;
·使用SQL Server庫欄目中,必須設置Sql文件夾,存放數據庫結構SQL腳本文件;
·必須設置Backup文件夾,存放更新前的備份文件。

6、註釋與縮進
在過去的開發中,中勤在線使用的大部分爲Asp腳本語言,此語言程序與頁面嵌套在一起,通常被稱爲“意大利麪條”式代碼,所以閱讀程序往往很費時間,在.net開發中,出現了CodeBehind技術可將代碼和頁面分開,在一定程度上可以減輕程序員的負擔,但是要讓程序更快的閱讀代碼,還必須在適當的部分添加註釋,並且請合理採用代碼縮進,在模塊與模塊之間,循環區塊,條件區塊等等都應該使用代碼縮進,縮進一級爲兩個半角空格。

7、安全與調試
開發後期,程序員還擔負着代碼的調試和漏斗檢測任務,其中就包括如下內容
·所有頁面要在800*600,1024*768兩種分辨率下運行通過;
·所有頁面要在IE5.0,5.5以及6.0下運行通過沒有JavaScript錯誤;
·所有涉及刪除的操作,在用戶選定以後都要再進行一次確認操作;
·檢查Sql漏洞,以及每個傳遞參數,排除入侵可能性;
·開發完畢後必須掛在工作機房調試經內部調試一週方可正式發佈;

二、    【程序開發管理標準化】
1、項目管理
程序開發總體由開發部長全面負責,開發部長根據當前人力資源分配程序員到各項目組,每個項目組必須設置一個組長,負責整個項目的進度,首先畫出項目進度表,和項目操作流程和必要的開發文檔。項目組長每週制定週報,由開發部長審覈查閱,並且指定每週討論會時間,每週最少兩次,項目組長記錄討論具體內容。具體操作見《項目開發質量和管理標準化》。

2、獎懲機制
項目組長每週必須檢查成員開發的程序,嚴格按照程序開發質量標準化實施,並做記錄,每週統計上週報,並且每週給組員記分,提交部長查閱。項目開發完畢後,項目組全體成員必須集中討論和相互檢查程序,做出最後修改,項目組長提交項目本組開發明星,獎金體現在當月工資。另外,項目組長應根據每個組員的工作量,代碼編寫的效率,規範方面對每個員工有不同的評價體現在項目總開發文檔中,以便人力資源部考察和發放酬勞。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章