




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Delphi 数据库系统应用程序开发规范摘要:众所周知,Delphi6.0是一种功能十分强大而灵活的可视化开发环境。但是,正因为它的灵活性,使得程序员的开发容易陷于一种散漫的、不规范的开发过程中。这种散漫的、不规范的开发过程将使得代码的可读性、可维护性极差。当需要对这样的代码进行维护升级进,将感到无从下手。而且,从软件质量的角度来说,软件的可维护性差也可以说是软件质量差的一个重要方面。正是为了对程序员的开发进行适当的规范化,特制定本规范。其根本目的,也无非是从程序员这一层对Delphi程序开发作一约束,保证程序具有良好的一致的结构,以期提高程序的可读性及可维护性,方便程序的测试、维护升级等工作
2、。1开发流程这里所说的“开发流程”,是指项目在需求分析和概要设计完成之后,到进行集成测试之前的阶段,即包括界面设计、详细设计、编程、单元测试几个阶段。针对这几个阶段,一方面为了较为规范且有效的工作,另一方面也为了在此基础上更精确地估算工作量及进行进度控制,建议遵循如下的开发流程:项目管理者及界面设计师界面及迁移设计文档、代码及目标程序拟定编程计划/进行任务切分需求分析/概要设计文档编程/单元测试业务逻辑理解分析详细设计/DB设计构建程序员项目管理者项目所有成员2命名规则21Delphi中的所有保留字都应该使用小写,且不能挪为他用,如const、var、procedure、type、functi
3、on等;22方法(过程、函数)命名采用描述性英文、动宾结构。每个单词的首字母采用大写,如LoadProject、ClearProject、CreateNewProject等;23变量命名方式:类别前缀 + 描述性英文231类别前缀全部用小写英文字母,采用以下列表(这里只列出部分类,需要时可适当补充): Standard页前缀 构件mm TMainMenupm TPopupMenu前缀 构件mmi TMainMenuItempmi TPopupMenuItemlbl TLabeledt TEditmem TMemobtn TButtoncb TCheckBoxrb TRadioBoxlb TLi
4、stBoxcb TComboBoxscb TScrollBargb TGroupBoxrg TRadioGrouppnl TPanelcl TCommandList Additional页bbtn TBitBtnsb TSpeedButtonme TMaskEditsg TStringGriddg TDrawGridimg TImageshp TShapebvl TBevelsbx TScrollBoxclb TCheckListboxspl TSplitterstx TStaticTextcht TChart Win32页tbc TTabControlpgc TPageControlil T
5、ImageListre TRichEditthr TTrackBarprb TProgressBarud TUpDownhk THotKeyani TAnimatedtp TDateTimePickertv TTreeViewlv TListViewhdr THeaderControlstb TStatusBartlb TToolBarclb TCoolBarData Access页ds TDataSourcetbl TTableqry TQuerysp TStoredProcdb TDataBasessn TSessionbm TBatchMoveusql TUpdateSQLData Co
6、ntrols页dbg TDBGriddbn TDBNavigatordbt TDBTextdbe TDBEditdbm TDBMemodbi TDBImagedblb TDBListBoxdbcb TDBComboBoxdbch TDBCheckBoxdbrg TDBRadioGroupdbll TDBLookupListBoxdblc TDBLookupComboBoxdbre TDBRichEditdbcg TDBCtrlGriddbch TDBChart232描述性文字由描述性单词组成,这些单词以大写字母开头且后接小写英文字母;24单元文件名241一般命名单元文件名请用描述性英文单词命名
7、,其中第一个单词的开头字母小写;242Form命名对于窗口名称用后缀名Form命名,其所对应的单元文件,就用该Form名称去掉“Form”之后的英文描述,如:主Form的对象名称为:MainForm,则其对应的unit文件名为:main;25常量命名常量由描述性单词组成,这些单词全部采用大写英文字母;26其他说明对于只起界面作用并且在代码中未引用的控件,可以不为其命名,如:一个按钮,由于为其设置了action,并且在代码中从不使用该按钮的名称,则可以不为其命名,采用Delphi自动命名即可(如Button1之类);3注释规则“源代码不仅仅是写给程序员自己看的,更重要的是写给其他程序员看的。”换
8、句话说,源代码更重要的作用是交流。因此,为了提高软件的可读性、可维护性,程序员在编写源代码时,加上一定的注释是相当必要的,应该把注释当成软件的一个不可缺少的一部分。如:单元文件:* 项目名称 版权所有 (C) 2000,2001 公司名称 *unit UnitName;*项目:模块:描述:版本:日期:作者:更新:TODO:*4界面设计规则软件的界面设计已经形成默认的工业标准,界面设计的主要原则是简洁、明快,使用户容易上手(如何设计更加优秀的人机界面,一个很好的方式就是学习、模仿优秀的软件界面):41用户观察窗体的习惯一般是从左上角到右下角,因此软件设计者应该将窗体中最重要的组件尽量放在左上角;
9、42一个窗体上的组件切忌太多,色彩搭配要合理;43由于因特网的发展,用户已经习惯于使用IE或NetScape Navigator浏览器软件,因此,软件界面可采用与上述浏览器类似的界面与操作方式;44软件一定要提供必要且充足的键盘支持;用Enter代替Tab键切换控件焦点(从左到右,由上而下键盘操顺序)45软件中的联机求助一定要丰富;46用“”标记菜单项或按钮的执行将会弹出一个对话框窗体;47状态条提示信息必须充分,快捷键的提示位置要明显,便于用户发现。5程序结构规则51一般结构在进行Delphi的数据库程序开发时,请务必遵守以下的程序结构规范,以增强代码的结构性和可读性能、可维护性;总的来说,
10、Delphi程序由多个unit组成,这些unit从结构上可以分为以下两层(与用户界面无关的全局层和与用户界面有关的GUI层):511与用户界面无关的全局层此层主要是指可随时在其他unit中引用的unit,包括:Data Module unit、utils unit、global unit等与整个应用程序有关的功能和数据;512与用户界面有关的GUI层此层则是指与用户界面有关的功能,由主窗口unit及适量的子窗口unit及对话框unit组成,这些unit往往只跟特定的用户界面有关。在GUI层要求窗口之间的调用关系尽量形成以主窗口为根节点的单向调用结构:本规范定义的程序结构简图如下:AppMain
11、FormGUI TierAppDialogAppDialogOthrerUnitAppSubFormAppSubForm。AppSubFormAppSubFormAppLogonFormAppFlashFormGlobal TierDataModuleAppUtilsOtherGlobals关于各种符号和名称的详细说明如下表:符号、名称说明强调用关系,有两层含义:1 MainForm引用SubForm,并可随时调用SubForm的方法;2 与SubForm有关的功能,应该尽可能在SubForm中相应的方法完成,MainForm只负责设置调用参数、执行调用和调用后的处理,而不应该在MainFor
12、m中直接写入这些功能代码。弱调用关系:只有在不得已而为之,或者说确实可以提高效率而又不降低代码清晰性的前提下,SubForm才可以调用MainForm及其控件的方法和属性。全局引用关系:GUI层的对象可随时使用Global层的任意函数、类、对象、常量、全局变量等;App MainForm应用程序主窗口unit: 应用程序正式启动后显示给用户的主界面,负责调用载入主界面数据、显示主界面操作、驱动具体的数据操作界面并调用其功能;App SubForm应用程序子窗口unit: 与特定数据或信息有关的界面,负责显示特定数据操作界面、实现特定数据的载入、编辑和保存。并可由主界面或其他界面调用自身的方法来
13、完成对特定数据的操作,而调用者无须关心操作的细节;App Dialog应用程序对话框unit: 与App SubForm类似,不过所对应的数据操作较为简单或者仅用来显示信息(提示、询问、确认等);App FlashForm启动窗口unit:应用程序启动时显示的启动画面;App LogonForm登录窗口unit: 应用程序可能在显示主窗口前要求用户登录,该单元负责显示登录界面并提供logon()方法,该方法返回true表示登录成功;Data Module数据模块unit: 负责与数据库进行交互,包括:数据库连接、数据读取、数据保存等只跟数据库操作有关的功能。且该单元除具有跟数据库交互的功能外,
14、不应该具有任何与数据库无关的功能。需要特别注意的是,除特殊情况外,所有只与数据库操作有关的都应该放置Data Module中。当然,根据实际情况,也可以采用多个Data Module;App Utils应用程序实用unit: 一些实用且通用的函数、常量、类的集合处,比如:将时间转换为特定字符串的函数DateTimeToStr19(TDateTime)、截断字符串右端指定子串的函数RightTrimSubStr(String,String)、以及显示确认对话框并返回确认结果的函数confirm()等等。注意,这些函数、常量除了可用于当前程序外,以后一样可用于其他程序,这也正是需要将这些功能独立出
15、来的原因;Other Globals应用程序全局unit: 与本应用程序密切相关的全局常量、变量、函数和类的集合。可视情况分割为多个global单元,比如:所有与注册表操作有关的放在一个单元、所有与界面显示有关的放在一个单元等。52Form间的通讯以下规定的两条,其目的皆是为了尽可能的减少Form unit间的耦合性:521以数据为中间层的通讯模式在多Form间,当存在这样的情形:Form1保存了某种数据,然后调用Form2显示该数据,请使用下图所示的通讯模式。即:Form1保存该数据到数据库中(可能通过Data Module的方法),然后直接调用Form2的某个方法去显示该数据,Form2的
16、对应方法调用时只允许指定控制性信息(如记录PK),而不允许对Form2的控件属性直接操作。Form2Form1DB(Data Module)522Form调用约束当FormA调用FormB时不可直接对FormB中的控件属性进行存取操作,而必须通过相应的公开方法进行。因为从对象的角度来说,FormA无须知道FormB是如何处理这条调用(消息)的,而只需要知道FormB提供了这种调用(消息处理机制)即可。这样实际上也加强了功能和界面的分离,因为这里更强调功能,而不是界面的具体控件。53功能和界面的分离为了尽可能的使得功能和界面进行分离,规定除简单的输入对话框(如登录对话框)外,当Form中的用户可
17、操作功能达到三个以上,这些功能必须在TactionList中进行统一管理,而将相应的操作控件(如按钮)的action属性设为TactionList中的action。6数据库表定义约定61建表的规范611表名表名的准确与标准化用表名准确描述采集数据中数据所表达的业务名称,并使用通行英文单词来表示612字段属性的描述序号字段英文名字段中文名类型与宽度字段使用意图主要值列表1ID表记录的IDInt临时、删除、提交、审核、复核、记帐等关键值2CreateDate创建时间DateTime3CreateUserID用户IDInt4RecordState记录状态Varchar 12。613表中基本字段的规范记录的ID(ID),记录的产生日期(CreateDate),记录使用状态的记录字段(RecordState),用户ID(CreateUserID);对于有树结构的表,另增加:父结点ID(UPID),结点名(Name)。614。数据收集字段根据采集数据的业务内容具体讨论确定。7管理约定为了有效的控制Delphi应用程序的开发进度,使得缺乏经验的程序员能够高效地开发,而不至陷陷于自由散漫而低效率的开发过程中去(Delphi的开发环境容易使程序员陷于这一状态),特制定如下的管理约定:项目管理者为了能够有效的控制整个系统的开发进度,必须使得每个程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低温天气混凝土施工方案
- 施工环境污染防治与控制方案
- 排水项目施工风险评估与管控方案
- 数控车工(中级)资格鉴定理论试题库及答案
- 2025-2030中国对叔丁基苯甲酸行业发展趋势及投资风险分析报告
- 建筑施工现场交通组织方案
- 施工材料使用量和成本控制方案
- 2025年褐煤开采洗选行业研究报告及未来行业发展趋势预测
- 2025年科普行业研究报告及未来行业发展趋势预测
- 2025年双肩包行业研究报告及未来行业发展趋势预测
- 电梯维保人员入职安全培训课件
- 危化品企业三级安全教育体系
- 运营服务合同协议
- 消防队伍管理授课
- 管理的四个要素
- 2025年银行反洗钱知识竞赛题库和答案(280题)
- 建筑施工各工种一会三卡样表(安全生产班前会、作业要点卡、风险提示卡、应急处置卡)
- 2024年山东省《宪法知识竞赛必刷100题》考试题库附答案【考试直接用】
- 配网检修管理
- 健康照护师初级复习试题含答案
- 债务转让合同模板
评论
0/150
提交评论