您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > [配置管理]10Delphi开发规范
Delphi开发规范郑重声明:XX软件股份有限公司版权所有。本文档中任何部分未经XX软件股份有限公司书面授权,不得将材料泄露给第三方,不得以任何手段、任何形式进行复制与传播。文件编码文件密级最新发布日期当前版本变更履历版本日期变更位置变更理由/变更内容变更人备注1.0新建1.1根据研发项目管理流程问题巡检检查出的问题进行更新:增加变更履历目录1前言............................................................................32模块划分策略....................................................................33模块间交互模式设计..............................................................34编码与命名规范..................................................................45工程属性和版本命名规范..........................................................46模块依赖关系....................................................................47代码构建体系规划................................................................57.1源代码目录结构(要考虑第三方类库、公共组件的配置)........................57.2模块构建输出策略..........................................................57.3编译/构建选项.............................................................58附录:构建脚本(ant或FinalBuilder构建文件)...................................58.1附录1FinalBuilder[ForDelphi]工程构建指南.............................58.1.1引入................................................................58.1.2设置................................................................98.1.3编译...............................................................108.2附录2VA开发规范介绍....................................................118.2.1模块划分...........................................................118.2.2VA命名规则........................................................111前言Delphi开发平台下,常规项目一般有两类,一类是对单元进行管理的单个exe工程文件,一类是通过包(dpk)来组织的大型系统。对于第二类大型系统,提供如下工程组织建议。2模块划分策略较大规模系统建议划分为基础模块和业务模块两大类。基础模块是系统的基本模块,是指系统能够运行的必须依赖的模块。业务模块是系统的扩展模块,是指系统可选加载的处理某类业务的模块。业务模块分为基本业务模块和辅助工具模块,基本业务模块完成独立业务处理,辅助工具模块用来实现模块间的协同处理或扩展系统功能。列出模块列表及功能说明(模块的粒度根据具体情况确定,基本原则是公共的、基础的细,业务部分粗)在考虑模块划分时,要结合版本的划分、分支/合并策略3模块间交互模式设计模块间的交互模式按照定义操作规范和发起调用的原则划分,可以分为:直接交互、间接交互和辅助交互三种。直接交互:(橙色表示规范定义者,箭头背向表示调用发起者,红线表示交互或协同工作的双方)直接交互模式,是指模块之间有直接的引用或调用关系。直接交互是一种高效、简单的高耦合度交互模式。直接将使模块直接产生依赖关系,被引用的模块有任何调整时,引用的模块都要做相应的调整,并且模块加载时,被引用的模块必须加载。直接交互简单高效,因此常用于基本模块跟扩展模块直接的交互。间接交互:间接交互模式,是指模块之间通过基础模块或公共模块交互的模式,协作模块之间没有直接的关系,通过公共模块定义的规范交互。间接交互是一种高扩展性的低耦合度交互模式,所以是高扩展性系统中扩展模块间的常用交互模式。辅助交互:(虚线表示可能不存在,存在与否不影响规范的制定)辅助交互模式,是指模块提供遵守某公共规范或自定规范操作接口,通过第三方模块调用的交互模式,协作模块都被动的等待第三方模块调用。辅助交互一般用于任务可以切割成几块完成,而且每小块任务之间相互独立的情况下。辅助交互的模块之间的耦合度为零,所以可配置性很强,并且可以很好的支持业务过程重组。需要对外提供业务服务的业务模块,尽量制定操作规范接口,以支持此交互模式。4编码与命名规范在遵循公司相关编码和命名规范的基础上,在这里补充具体项目的编码和命名规范,比如增加前缀、比如结构化命名的分段规范5工程属性和版本命名规范DLL/EXE/BPL在编译后有一系列属性值,可以通过资源管理器浏览版本命名规范包括内部测试版本和外部正式发布版本(在遵循公司相关规范的基础上)6模块依赖关系1.模块依赖关系表各个模块必须按照编译的顺序列出2.清晰列出模块之间的依赖关系3.定义模块的粒度(比如包、单元、类),以及根据具体项目在模块依赖关系表中表现的粒度的策略模块依赖关系是编译时,确定模块需要前置编译顺序。通过整理模块依赖关系,可以在进行每日构建时,保证正确的编译完成。序号模块名称依赖关系模块功能说明备注…11V5SysMngJob。。。12V5BusinessUI。。。13V5SysMngUI11、12…此处维护的是每个模块(包)依赖的包清单。7代码构建体系规划7.1源代码目录结构(要考虑第三方类库、公共组件的配置)7.2模块构建输出策略模块输出目标文件规划(DLL/EXE/DCU/BPL、运行包/设计包的考虑,Java类似)、输出目录结构、管理策略(根据具体项目情况确定模块的粒度)7.3编译/构建选项根据具体IDE工具确定,先列出常用的编译指令或选项及其应用场合8附录:构建脚本(ant或FinalBuilder构建文件)8.1附录1FinalBuilder[ForDelphi]工程构建指南对于以包(dpk)组织的大型系统,工程打开、编译都是非常耗时的,因此利用工具进行系统构建,是提高工作效率的有效手段。下面对如何利用FinalBuilder进行Delphi系统构建进行介绍说明。8.1.1引入首先是新建一个FinalBuilder工程,引入需要进行编译的工程文件。步骤如下图所示步骤一点击进入ImportDelphiProjectGroup:步骤二选择需要引入的工程的具体包文件,注意不要重复引入步骤三选择Delphi版本步骤四指定相关属性,也可以后面再设置8.1.2设置工程文件引入后,需要进行必要的熟悉调整。对于FinalBuilder2来说,主要是改变两个地方,如下图所示8.1.3编译完成相关工程的引入和配置后,还可以随时调整依赖关系,同时可以根据需要,进行分组管理,方便配置管理员进行版本编译发布。常用调整功能快捷按钮如下:补充一些基本概念内容更丰富一些补充命令行说明8.2附录2VA开发规范介绍8.2.1模块划分VA目前划分为基础模块和业务模块两大类。按照目前VA的客户端、服务器端和管理平台三部分划分方法,基础模块必须能保证这三部分分别启动和运行。业务模块是系统的扩展模块,是指系统可选加载的处理某类业务的模块。业务模块分为基本业务模块和辅助工具模块,基本业务模块完成独立业务处理,辅助工具模块用来实现模块间的协同处理或扩展系统功能。这里的模块是指系统模块,即有目前VA系统的Job、Logic、GUI三个包共同组成的模块,部署模块必须三个包同时部署。按照当前VA的目录划分,BillDsgn、FrameWork、QueryAlys、V5BaseData、V5Business、V5Comm、V5DataCst、V5Mngplatform、V5SysMng等以及第三方组件包划为基础模块,其余目录划为业务模块。下图是VA新版配置库目录结构:8.2.2VA命名规则服务命名规则:每个服务分为三个包(Package),同属于一个工程组。工程组的命名规则为:V5[服务名].pbg三个包分别为工作包:V5[服务名]Job.dpk逻辑包:V5[服务名]Logic.dpk界面包:V5[服务名]UI.Dpk包需要代版本信息:版本标识为1.0单元命名规则:单元分为7类1.Svc:服务类所在单元:V5_Svc_[服务名]2.Job:工作类所在单元:V5_Job_[工作名或工作范畴名]3.Assitant:工作助理所在单元:V5_Asst_[助理名或助理范畴名]4.Util:辅助类所在单元:V5_Util_[类名或范畴名]5.Frame:层类所在单元:V5_Frame_[层名]6.DataModule:数据服务单元:V5_DataModule_[数据模块名]7.Dsgn:设计时类所在单元:V5_Dsgn_[类名或范畴名]8.Define:定义所在单元:V5_Define_[服务名]类命名规则:1.Service:TV5[服务名]Service2.Assistant:T[助理名]Assistant3.Job:T[工作名]Job4.Frame:T[层名]Frame5.DataModule:T[数据模块名]DataModuleJob类属性命名规则:于数据库表字段有关的类属性名应与表字段名相同JobMethod枚举类型命名规则:1.枚举类型命名规则:TJobMethod[工作名]2.枚举项命名规则:Jm_[工作名缩写]_[方法名]工作助理工作处理方法命名规则:procedureDo[工作名][方法名]Job(Context:TEFWDBContext;Job:[工作类];varHandled:Boolean);动态类ID命名规则:V5_DCID_[服务名]_[类名]异常错误ID:V5_ERR_[类名]_[错误名]异常错误描述:V5_ESTR_[类名]_[错误名]表标签ID:V5_TBID_[表名]注:固定表的ID全部小于0,大于零的数值用作重构表过滤子命名规则:TFilterAtom_[过滤子名]表标签类命名规则:TV5_DBTableLabel_[表名]根据前面确定的结构,将VA相关的实践加进去,形成一个示范性的文件!
本文标题:[配置管理]10Delphi开发规范
链接地址:https://www.777doc.com/doc-7071590 .html