版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Delphi数据库系统应用程序开发规范 摘要:众所周知,Delphi6.0 是一种功能十分强大而灵活的可视化开发环境。但是,正因为它的灵 活性,使得程序员的开发容易陷于一种散漫的、不规范的开发过程中。这种散漫的、不规范的开发过程 将使得代码的可读性、可维护性极差。当需要对这样的代码进行维护升级进,将感到无从下手。而且, 从软件质量的角度来说,软件的可维护性差也可以说是软件质量差的一个重要方面。 正是为了对程序员的开发进行适当的规范化,特制定本规范。其根本目的,也无非是从程序员这一 层对Delphi程序开发作一约束,保证程序具有良好的一致的结构,以期提高程序的可读性及可维护性, 方便程序的测试
2、、维护升级等工作。 1开发流程 这里所说的“开发流程”,是指项目在需求分析和概要设计完成之后,到进行集成测试之前的阶段, 即包括界面设计、详细设计、编程、单元测试几个阶段。针对这几个阶段,一方面为了较为规范且有效 的工作,另一方面也为了在此基础上更精确地估算工作量及进行进度控制,建议遵循如下的开发流程: 2 命名规则 2. 1 Del phi中的所有保留字都应该使用小写, function 等; 2. 2方法(过程、函数)命名 采用描述性英文、动宾结构。每个单词的首字母采用大写,如 CreateNew Project 等; 2. 3.变量命名 方式:类别前缀+描述性英文 2. 3. 1 类别前
3、缀 全部用小写英文字母, 且不能挪为他用,如const 、var、procedure、type、 Load Project 、Clear Project 采用以下列表(这里只列出部分类,需要时可适当补充) Stan dard 前缀 构件 前缀 构件 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命名,其所对应的单元文件,就用该Form名称去掉“Form”之后的英文 描述,如:主 Form的对象名称为:Main Form,则其对应的unit文件名为:main ; 2. 5.常量命名 常量由描述性单词组成,这些单词全部采用大写英文字母; 2. 6.其他说明 对于只起界面作用并且在代码中未引用的控件,可以不为其命名口:一个按钮,由于为其设置了 Del phi自动命
8、名即可(如 action ,并且在代码中从不使用该按钮的名称,则可以不为其命名,采用 Butt on1 之类); 3注释规则 ”换句话说,源代码更 “源代码不仅仅是写给程序员自己看的,更重要的是写给其他程序员看的。 重要的作用是交流。因此,为了提高软件的可读性、可维护性,程序员在编写源代码时,加上一定的注 释是相当必要的,应该把注释当成软件的一个不可缺少的一部分。 女口:单元文件: * 项目名称 版权所有(C) 2000,2001公司名称 * unit Un itName; * 项目: 模块: 描述: 版本: 日期: 作者: 更新: TODO: * 4界面设计规则 软件的界面设计已经形成默认的
9、工业标准,界面设计的主要原则是简洁、明快,使用户容易上手(如 何设计更加优秀的人机界面,一个很好的方式就是学习、模仿优秀的软件界面): 4. 1用户观察窗体的习惯一般是从左上角到右下角,因此软件设计者应该将窗体中最重要的组件 尽量放在左上角; 4. 2.一个窗体上的组件切忌太多,色彩搭配要合理; 4. 3由于因特网的发展,用户已经习惯于使用IE或NetScape Navigator 浏览器软件,因此,软 件界面可采用与上述浏览器类似的界面与操作方式; 4. 4软件一定要提供 必要且充足 的键盘支持;用 Enter代替Tab键切换控件焦点(从左到右,由上 而下键盘操顺序) 4. 5.软件中的联机
10、求助一定要丰富; 4. 6.用“”标记菜单项或按钮的执行将会弹出一个对话框窗体; 4. 7.状态条提示信息必须充分,快捷键的提示位置要明显,便于用户发现。 5. 程序结构规则 5. 1.一般结构 在进行Delp hi的数据库程序开发时,请务必遵守以下的程序结构规范,以增强代码的结构性和可读 性能、可维护性; 总的来说,Del phi程序由多个unit组成,这些unit从结构上可以分为以下两层(与用户界面无关 的全局层和与用户界面有关的GUI层): 5. 1. 1 与用户界面无关的全局层 此层主要是指可随时在其他unit中引用的unit,包括:Data Module unit、utils uni
11、t、global unit 等与整个应用程序有关的功能和数据; 5. 1. 2 .与用户界面有关的 GUI层 此层则是指与用户界面有关的功能,由主窗口 unit及适量的子窗口 unit及对话框unit组成,这些 unit往往只跟特定的用户界面有关。在GUI层要求窗口之间的调用关系尽量形成以主窗口为根节点的单 向调用结构: 本规范定义的程序结构简图如下: V, Data Module App Utils Other Globals Global Tier ; 关于各种符号和名称的详细说明如下表 符号、名称 说明 强调用关系,有两层含义: 1. MainForm引用SubForm,并可随时调用 S
12、ubForm的方法; 2. 与SubForm有关的功能,应该尽可能在SubForm中相应的方法完成, Main Form只负责设置调用参数、执行调用和调用后的处理,而不应 该在MainForm中直接与入这些功能代码。 弱调用关系: 只有在不得已而为之,或者说确实可以提咼效率而又不降低代码清晰 性的前提下,SubForm才可以调用MainForm及其控件的方法和属性。 全局引用关系: GUI层的对象可随时使用 Global层的任意函数、类、对象、常量、 全局变量等; App Mai nForm 应用程序主窗口 un it: 应用程序正式启动后显示给用户的主界面,负责调用载入主界面数据、 显示主界
13、面操作、驱动具体的数据操作界面并调用其功能; App SubForm 应用程序子窗口 un it: 与特定数据或信息有关的界面,负责显示特定数据操作界面、实现特定 数据的载入、编辑和保存。并可由主界面或其他界面调用自身的方法来完 成对特定数据的操作,而调用者无须关心操作的细节; App Dialog 应用程序对话框 un it: 与App SubForm类似,不过所对应的数据操作较为简单或者仅用来显 示信息(提示、询问、确认等); App FlashForm 启动窗口 unit :应用程序启动时显示的启动画面; App Log onForm 登录窗口 unit : 应用程序可能在显示主窗口前要
14、求用户登录,该单兀负责显示登录界面 并提供logon()方法,该方法返回true表示登录成功; Data Module 数据模块unit : 负责与数据库进行交互,包括:数据库连接、数据读取、数据保存等只 跟数据库操作有关的功能。且该单元除具有跟数据库交互的功能外,不应 该具有任何与数据库无关的功能。需要特别注意的是,除特殊情况外,所 有只与数据库操作有关的都应该放置Data Module中。当然,根据实际情 况,也可以采用多个Data Module ; App Utils 应用程序实用unit : 一些实用且通用的函数、常量、类的集合处,比如:将时间转换为特定 字符串的函数 DateTime
15、ToStr19(TDateTime)、截断字符串右端指定子串的 函数RightTrimSubStr(String,String)、以及显示确认对话框并返回确认 结果的函数con firm()等等。注意,这些函数、常量除了可用于当前程序 外,以后一样可用于其他程序,这也正是需要将这些功能独立出来的原因; Other Globals 应用程序全局unit : 与本应用程序密切相关的全局常量、变量、函数和类的集合。可视情况 分割为多个global单兀,比如:所有与注册表操作有关的放在一个单兀、 所有与界面显示有关的放在一个单兀等。 5. 2. Form间的通讯 以下规定的两条,其目的皆是为了尽可能的
16、减少Form unit间的耦合性: 5. 2. 1.以数据为中间层的通讯模式 在多Form间,当存在这样的情形:Formi保存了某种数据,然后调用Form2显示该数据,请使用下 图所示的通讯模式。即:Formi保存该数据到数据库中(可能通过Data Module的方法),然后直接调 用Form2的某个方法去显示该数据,Form2的对应方法调用时只允许指定控制性信息(如记录PK),而 不允许对Form2的控件属性直接操作。 5. 2. 2. Form调用约束 当FormA调用FormB时不可直接对FormB中的控件属性进行存取操作,而必须通过相应的公开方法 进行。因为从对象的角度来说,FormA
17、无须知道FormB是如何处理这条调用(消息)的,而只需要知道 FormB提供了这种调用(消息处理机制)即可。这样实际上也加强了功能和界面的分离,因为这里更强 调功能,而不是界面的具体控件。 5. 3.功能和界面的分离 为了尽可能的使得功能和界面进行分离,规定除简单的输入对话框(如登录对话框)外,当Form 中的用户可操作功能达到三个以上,这些功能必须在Tactio nList中进行统一管理,而将相应的操作控 件(如按钮)的 action属性设为TactionList 中的action 。 6. 数据库表定义约定 6. 1.建表的规范 6. 1. 1.表名 表名的准确与标准化用表名准确描述采集数
18、据中数据所表达的业务名称,并使用通行英文单词来 表示 6. 1. 2 .字段属性的描述 序号 字段英文名 字段中文名 类型与宽度 字段使用意图 主要值列表 1 ID 表记录的ID Int 临时、删除、提交、审核、 复核、记帐等关键值 2 CreateDate 创建时间 DateTime 3 CreateUserID 用户ID Int 4 RecordState 记录状态 Varchar 12 O O。 o o。 0 0。 o o。 o o。 0 0。 6. 1. 3.表中基本字段的规范 记录的ID (ID),记录的产生日期(CreateDate ),记录使用状态的记录字段( Recordsta
19、te ),用 户ID ( CreateUserID );对于有树结构的表,另增加:父结点 ID ( UP ID),结点名(Name。 6. 1. 4。数据收集字段 根据采集数据的业务内容具体讨论确定。 7. 管理约定 为了有效的控制Delphi应用程序的开发进度,使得缺乏经验的程序员能够高效地开发,而不至陷陷 于自由散漫而低效率的开发过程中去(Del phi的开发环境容易使程序员陷于这一状态),特制定如下的 管理约定: 项目管理者为了能够有效的控制整个系统的开发进度,必须使得每个程序员模块的开发进度在可控 制范围之内。为此,规定项目管理者在拟定开发计划并进行任务切分之后,向程序员下达具体模块的
20、开 发任务时,必须下达如下例所示的To-Do-List表格。并且要求程序员将下表所列的内容加入Delphi6.0 的To-Do-List列表中,以便程序员自己在程序开发过程中随时跟踪并调整自己的开发进度。从而进一 步使得项目管理者实现了整个项目的开发进度控制。 任务名称 任务要素 任务开发期限 载入并显示用户选择的文件 显示文件选择对话框,让用户选 择文件; 载入用户选择的文件; 显示用户选择的文件内容,并进 入编辑状态; 2012/02/12 2012/4/20 &基类继承关系 出师表 两汉:诸葛亮 先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内, 忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之 气
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石嘴山伸缩门安装合同范本
- 电子商务行业数字化转型
- 2024版安全防护系统设计与实施合同
- 2024年度标准二手房交易定金支付合同
- 二零二四年度光学仪器玻璃制造合同
- 仓储空间布局优化
- 石灰石膏污染防治
- 基于大数据的疾病预测与预防-第2篇
- 《律师职业道德研究》
- 东坑有机蔬菜配送合同范本
- 上海市校车安全管理规定(有效期延长至2025年)
- 出库单样本12623
- Y2系列电机外形及安装尺寸(共2页)
- 三偏心蝶阀结构分析
- 补偿收缩混凝土应用技术规程JGJT1782009
- 机井资料表格(共9页)
- 豆类食物营养成分表
- 造纸及纸制品行业企业风险分级管控体系实施指南(DB37T 3149—2018)
- 农药英语词汇
- 第十二讲区域变质岩的鉴定与描述(1)
- 三类医疗器械医疗机构规章管理制度
评论
0/150
提交评论