Delphi數(shù)據(jù)庫系統(tǒng)應(yīng)用程序開發(fā)規(guī)范_第1頁
Delphi數(shù)據(jù)庫系統(tǒng)應(yīng)用程序開發(fā)規(guī)范_第2頁
Delphi數(shù)據(jù)庫系統(tǒng)應(yīng)用程序開發(fā)規(guī)范_第3頁
Delphi數(shù)據(jù)庫系統(tǒng)應(yīng)用程序開發(fā)規(guī)范_第4頁
Delphi數(shù)據(jù)庫系統(tǒng)應(yīng)用程序開發(fā)規(guī)范_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 Delphi數(shù)據(jù)庫系統(tǒng)應(yīng)用程序開發(fā)規(guī)范 摘要:眾所周知,Delphi6.0 是一種功能十分強(qiáng)大而靈活的可視化開發(fā)環(huán)境。但是,正因?yàn)樗撵` 活性,使得程序員的開發(fā)容易陷于一種散漫的、不規(guī)范的開發(fā)過程中。這種散漫的、不規(guī)范的開發(fā)過程 將使得代碼的可讀性、可維護(hù)性極差。當(dāng)需要對這樣的代碼進(jìn)行維護(hù)升級進(jìn),將感到無從下手。而且, 從軟件質(zhì)量的角度來說,軟件的可維護(hù)性差也可以說是軟件質(zhì)量差的一個重要方面。 正是為了對程序員的開發(fā)進(jìn)行適當(dāng)?shù)囊?guī)范化,特制定本規(guī)范。其根本目的,也無非是從程序員這一 層對Delphi程序開發(fā)作一約束,保證程序具有良好的一致的結(jié)構(gòu),以期提高程序的可讀性及可維護(hù)性, 方便程序的測試

2、、維護(hù)升級等工作。 1開發(fā)流程 這里所說的“開發(fā)流程”,是指項(xiàng)目在需求分析和概要設(shè)計完成之后,到進(jìn)行集成測試之前的階段, 即包括界面設(shè)計、詳細(xì)設(shè)計、編程、單元測試幾個階段。針對這幾個階段,一方面為了較為規(guī)范且有效 的工作,另一方面也為了在此基礎(chǔ)上更精確地估算工作量及進(jìn)行進(jìn)度控制,建議遵循如下的開發(fā)流程: 2 命名規(guī)則 2. 1 Del phi中的所有保留字都應(yīng)該使用小寫, function 等; 2. 2方法(過程、函數(shù))命名 采用描述性英文、動賓結(jié)構(gòu)。每個單詞的首字母采用大寫,如 CreateNew Project 等; 2. 3.變量命名 方式:類別前綴+描述性英文 2. 3. 1 類別前

3、綴 全部用小寫英文字母, 且不能挪為他用,如const 、var、procedure、type、 Load Project 、Clear Project 采用以下列表(這里只列出部分類,需要時可適當(dāng)補(bǔ)充) Stan dard 前綴 構(gòu)件 前綴 構(gòu)件 mm TMai nMenu mmi TMai nMen ultem pm TPopupMenu pmi TPopupMen ultem lbl TLabel edt TEdit hk THotKey ani TAni mate mem TMemo btn TButton dtpTDateTime Picker tv TTreeView cb TCh

4、eckBox lv TListView rb TRadioBox hdrTHeaderCo ntrol lb TListBox stb TStatusBar cb TComboBox tlb TToolBar scb TScrollBar clb TCoolBar gb TGro up Box rgTRadioGro up pnl TPanel cl TComma ndList Data Access ds TDataSource tbl TTable Additi onal qry TQuery spTStored Proc bbtn TBitBt n db TDataBase sb TSp

5、 eedButt on ssn TSessi on me TMaskEdit bm TBatchMove sg TStri ngGrid usql TUp dateSQL dg TDrawGrid img TImage Data Con trols頁 shp TShape dbg TDBGrid bvl TBevel dbn TDBNavigator sbx TScrollBox dbt TDBText clb TCheckListbox dbe TDBEdit spl TSpI itter dbm TDBMemo stx TStaticText dbi TDBImage cht TChart

6、 dblb TDBListBox dbcb TDBComboBox Win32 頁 dbch TDBCheckBox tbc TTabCo ntrol dbrg TDBRadioGro up pgc TP ageCo ntrol dbll TDBLooku pListBox il TImageList dblc TDBLooku pComboBox re TRichEdit dbre TDBRichEdit thr TTrackBar dbcg TDBCtrlGrid prb TP rogressBar dbch TDBChart ud TU pDow n 2. 3. 2 .描述性文字 由描述

7、性單詞組成,這些單詞以大寫字母開頭且后接小寫英文字母; 2. 4.單元文件名 2. 4. 1.一般命名 單元文件名請用描述性英文單詞命名,其中第一個單詞的開頭字母小寫; 2. 4. 2. Form命名 對于窗口名稱用后綴名Form命名,其所對應(yīng)的單元文件,就用該Form名稱去掉“Form”之后的英文 描述,如:主 Form的對象名稱為:Main Form,則其對應(yīng)的unit文件名為:main ; 2. 5.常量命名 常量由描述性單詞組成,這些單詞全部采用大寫英文字母; 2. 6.其他說明 對于只起界面作用并且在代碼中未引用的控件,可以不為其命名口:一個按鈕,由于為其設(shè)置了 Del phi自動命

8、名即可(如 action ,并且在代碼中從不使用該按鈕的名稱,則可以不為其命名,采用 Butt on1 之類); 3注釋規(guī)則 ”換句話說,源代碼更 “源代碼不僅僅是寫給程序員自己看的,更重要的是寫給其他程序員看的。 重要的作用是交流。因此,為了提高軟件的可讀性、可維護(hù)性,程序員在編寫源代碼時,加上一定的注 釋是相當(dāng)必要的,應(yīng)該把注釋當(dāng)成軟件的一個不可缺少的一部分。 女口:單元文件: * 項(xiàng)目名稱 版權(quán)所有(C) 2000,2001公司名稱 * unit Un itName; * 項(xiàng)目: 模塊: 描述: 版本: 日期: 作者: 更新: TODO: * 4界面設(shè)計規(guī)則 軟件的界面設(shè)計已經(jīng)形成默認(rèn)的

9、工業(yè)標(biāo)準(zhǔn),界面設(shè)計的主要原則是簡潔、明快,使用戶容易上手(如 何設(shè)計更加優(yōu)秀的人機(jī)界面,一個很好的方式就是學(xué)習(xí)、模仿優(yōu)秀的軟件界面): 4. 1用戶觀察窗體的習(xí)慣一般是從左上角到右下角,因此軟件設(shè)計者應(yīng)該將窗體中最重要的組件 盡量放在左上角; 4. 2.一個窗體上的組件切忌太多,色彩搭配要合理; 4. 3由于因特網(wǎng)的發(fā)展,用戶已經(jīng)習(xí)慣于使用IE或NetScape Navigator 瀏覽器軟件,因此,軟 件界面可采用與上述瀏覽器類似的界面與操作方式; 4. 4軟件一定要提供 必要且充足 的鍵盤支持;用 Enter代替Tab鍵切換控件焦點(diǎn)(從左到右,由上 而下鍵盤操順序) 4. 5.軟件中的聯(lián)機(jī)

10、求助一定要豐富; 4. 6.用“”標(biāo)記菜單項(xiàng)或按鈕的執(zhí)行將會彈出一個對話框窗體; 4. 7.狀態(tài)條提示信息必須充分,快捷鍵的提示位置要明顯,便于用戶發(fā)現(xiàn)。 5. 程序結(jié)構(gòu)規(guī)則 5. 1.一般結(jié)構(gòu) 在進(jìn)行Delp hi的數(shù)據(jù)庫程序開發(fā)時,請務(wù)必遵守以下的程序結(jié)構(gòu)規(guī)范,以增強(qiáng)代碼的結(jié)構(gòu)性和可讀 性能、可維護(hù)性; 總的來說,Del phi程序由多個unit組成,這些unit從結(jié)構(gòu)上可以分為以下兩層(與用戶界面無關(guān) 的全局層和與用戶界面有關(guān)的GUI層): 5. 1. 1 與用戶界面無關(guān)的全局層 此層主要是指可隨時在其他unit中引用的unit,包括:Data Module unit、utils uni

11、t、global unit 等與整個應(yīng)用程序有關(guān)的功能和數(shù)據(jù); 5. 1. 2 .與用戶界面有關(guān)的 GUI層 此層則是指與用戶界面有關(guān)的功能,由主窗口 unit及適量的子窗口 unit及對話框unit組成,這些 unit往往只跟特定的用戶界面有關(guān)。在GUI層要求窗口之間的調(diào)用關(guān)系盡量形成以主窗口為根節(jié)點(diǎn)的單 向調(diào)用結(jié)構(gòu): 本規(guī)范定義的程序結(jié)構(gòu)簡圖如下: V, Data Module App Utils Other Globals Global Tier ; 關(guān)于各種符號和名稱的詳細(xì)說明如下表 符號、名稱 說明 強(qiáng)調(diào)用關(guān)系,有兩層含義: 1. MainForm引用SubForm,并可隨時調(diào)用 S

12、ubForm的方法; 2. 與SubForm有關(guān)的功能,應(yīng)該盡可能在SubForm中相應(yīng)的方法完成, Main Form只負(fù)責(zé)設(shè)置調(diào)用參數(shù)、執(zhí)行調(diào)用和調(diào)用后的處理,而不應(yīng) 該在MainForm中直接與入這些功能代碼。 弱調(diào)用關(guān)系: 只有在不得已而為之,或者說確實(shí)可以提咼效率而又不降低代碼清晰 性的前提下,SubForm才可以調(diào)用MainForm及其控件的方法和屬性。 全局引用關(guān)系: GUI層的對象可隨時使用 Global層的任意函數(shù)、類、對象、常量、 全局變量等; App Mai nForm 應(yīng)用程序主窗口 un it: 應(yīng)用程序正式啟動后顯示給用戶的主界面,負(fù)責(zé)調(diào)用載入主界面數(shù)據(jù)、 顯示主界

13、面操作、驅(qū)動具體的數(shù)據(jù)操作界面并調(diào)用其功能; App SubForm 應(yīng)用程序子窗口 un it: 與特定數(shù)據(jù)或信息有關(guān)的界面,負(fù)責(zé)顯示特定數(shù)據(jù)操作界面、實(shí)現(xiàn)特定 數(shù)據(jù)的載入、編輯和保存。并可由主界面或其他界面調(diào)用自身的方法來完 成對特定數(shù)據(jù)的操作,而調(diào)用者無須關(guān)心操作的細(xì)節(jié); App Dialog 應(yīng)用程序?qū)υ捒?un it: 與App SubForm類似,不過所對應(yīng)的數(shù)據(jù)操作較為簡單或者僅用來顯 示信息(提示、詢問、確認(rèn)等); App FlashForm 啟動窗口 unit :應(yīng)用程序啟動時顯示的啟動畫面; App Log onForm 登錄窗口 unit : 應(yīng)用程序可能在顯示主窗口前要

14、求用戶登錄,該單兀負(fù)責(zé)顯示登錄界面 并提供logon()方法,該方法返回true表示登錄成功; Data Module 數(shù)據(jù)模塊unit : 負(fù)責(zé)與數(shù)據(jù)庫進(jìn)行交互,包括:數(shù)據(jù)庫連接、數(shù)據(jù)讀取、數(shù)據(jù)保存等只 跟數(shù)據(jù)庫操作有關(guān)的功能。且該單元除具有跟數(shù)據(jù)庫交互的功能外,不應(yīng) 該具有任何與數(shù)據(jù)庫無關(guān)的功能。需要特別注意的是,除特殊情況外,所 有只與數(shù)據(jù)庫操作有關(guān)的都應(yīng)該放置Data Module中。當(dāng)然,根據(jù)實(shí)際情 況,也可以采用多個Data Module ; App Utils 應(yīng)用程序?qū)嵱胾nit : 一些實(shí)用且通用的函數(shù)、常量、類的集合處,比如:將時間轉(zhuǎn)換為特定 字符串的函數(shù) DateTime

15、ToStr19(TDateTime)、截斷字符串右端指定子串的 函數(shù)RightTrimSubStr(String,String)、以及顯示確認(rèn)對話框并返回確認(rèn) 結(jié)果的函數(shù)con firm()等等。注意,這些函數(shù)、常量除了可用于當(dāng)前程序 外,以后一樣可用于其他程序,這也正是需要將這些功能獨(dú)立出來的原因; Other Globals 應(yīng)用程序全局unit : 與本應(yīng)用程序密切相關(guān)的全局常量、變量、函數(shù)和類的集合??梢暻闆r 分割為多個global單兀,比如:所有與注冊表操作有關(guān)的放在一個單兀、 所有與界面顯示有關(guān)的放在一個單兀等。 5. 2. Form間的通訊 以下規(guī)定的兩條,其目的皆是為了盡可能的

16、減少Form unit間的耦合性: 5. 2. 1.以數(shù)據(jù)為中間層的通訊模式 在多Form間,當(dāng)存在這樣的情形:Formi保存了某種數(shù)據(jù),然后調(diào)用Form2顯示該數(shù)據(jù),請使用下 圖所示的通訊模式。即:Formi保存該數(shù)據(jù)到數(shù)據(jù)庫中(可能通過Data Module的方法),然后直接調(diào) 用Form2的某個方法去顯示該數(shù)據(jù),F(xiàn)orm2的對應(yīng)方法調(diào)用時只允許指定控制性信息(如記錄PK),而 不允許對Form2的控件屬性直接操作。 5. 2. 2. Form調(diào)用約束 當(dāng)FormA調(diào)用FormB時不可直接對FormB中的控件屬性進(jìn)行存取操作,而必須通過相應(yīng)的公開方法 進(jìn)行。因?yàn)閺膶ο蟮慕嵌葋碚f,F(xiàn)ormA

17、無須知道FormB是如何處理這條調(diào)用(消息)的,而只需要知道 FormB提供了這種調(diào)用(消息處理機(jī)制)即可。這樣實(shí)際上也加強(qiáng)了功能和界面的分離,因?yàn)檫@里更強(qiáng) 調(diào)功能,而不是界面的具體控件。 5. 3.功能和界面的分離 為了盡可能的使得功能和界面進(jìn)行分離,規(guī)定除簡單的輸入對話框(如登錄對話框)外,當(dāng)Form 中的用戶可操作功能達(dá)到三個以上,這些功能必須在Tactio nList中進(jìn)行統(tǒng)一管理,而將相應(yīng)的操作控 件(如按鈕)的 action屬性設(shè)為TactionList 中的action 。 6. 數(shù)據(jù)庫表定義約定 6. 1.建表的規(guī)范 6. 1. 1.表名 表名的準(zhǔn)確與標(biāo)準(zhǔn)化用表名準(zhǔn)確描述采集數(shù)

18、據(jù)中數(shù)據(jù)所表達(dá)的業(yè)務(wù)名稱,并使用通行英文單詞來 表示 6. 1. 2 .字段屬性的描述 序號 字段英文名 字段中文名 類型與寬度 字段使用意圖 主要值列表 1 ID 表記錄的ID Int 臨時、刪除、提交、審核、 復(fù)核、記帳等關(guān)鍵值 2 CreateDate 創(chuàng)建時間 DateTime 3 CreateUserID 用戶ID Int 4 RecordState 記錄狀態(tài) Varchar 12 O O。 o o。 0 0。 o o。 o o。 0 0。 6. 1. 3.表中基本字段的規(guī)范 記錄的ID (ID),記錄的產(chǎn)生日期(CreateDate ),記錄使用狀態(tài)的記錄字段( Recordsta

19、te ),用 戶ID ( CreateUserID );對于有樹結(jié)構(gòu)的表,另增加:父結(jié)點(diǎn) ID ( UP ID),結(jié)點(diǎn)名(Name。 6. 1. 4。數(shù)據(jù)收集字段 根據(jù)采集數(shù)據(jù)的業(yè)務(wù)內(nèi)容具體討論確定。 7. 管理約定 為了有效的控制Delphi應(yīng)用程序的開發(fā)進(jìn)度,使得缺乏經(jīng)驗(yàn)的程序員能夠高效地開發(fā),而不至陷陷 于自由散漫而低效率的開發(fā)過程中去(Del phi的開發(fā)環(huán)境容易使程序員陷于這一狀態(tài)),特制定如下的 管理約定: 項(xiàng)目管理者為了能夠有效的控制整個系統(tǒng)的開發(fā)進(jìn)度,必須使得每個程序員模塊的開發(fā)進(jìn)度在可控 制范圍之內(nèi)。為此,規(guī)定項(xiàng)目管理者在擬定開發(fā)計劃并進(jìn)行任務(wù)切分之后,向程序員下達(dá)具體模塊的

20、開 發(fā)任務(wù)時,必須下達(dá)如下例所示的To-Do-List表格。并且要求程序員將下表所列的內(nèi)容加入Delphi6.0 的To-Do-List列表中,以便程序員自己在程序開發(fā)過程中隨時跟蹤并調(diào)整自己的開發(fā)進(jìn)度。從而進(jìn)一 步使得項(xiàng)目管理者實(shí)現(xiàn)了整個項(xiàng)目的開發(fā)進(jìn)度控制。 任務(wù)名稱 任務(wù)要素 任務(wù)開發(fā)期限 載入并顯示用戶選擇的文件 顯示文件選擇對話框,讓用戶選 擇文件; 載入用戶選擇的文件; 顯示用戶選擇的文件內(nèi)容,并進(jìn) 入編輯狀態(tài); 2012/02/12 2012/4/20 &基類繼承關(guān)系 出師表 兩漢:諸葛亮 先帝創(chuàng)業(yè)未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛(wèi)之臣不懈于內(nèi), 忠志之士忘身于外者,蓋追先帝之殊遇,欲報之于陛下也。誠宜開張圣聽,以光先帝遺德,恢弘志士之 氣

溫馨提示

  • 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

提交評論