ABFrame系统设计开发规范
7.1.1.总体命名规范
1) 路径规划
应用基础框架:com.primeton.abframe.
2) 对于应用中的变量命名,要求遵循如下规范:
a) 在逻辑流中,变量名称遵循Java变量命名规则,例如operator,userRole b) 页面流中,变量命名和逻辑流命名规则一致
3) 为保证程序逻辑或代码的可追溯性,要求每个文件都保留正确合适的开发人员信
息,在EOS安装的时候,有一个步骤是设置作者和姓名,这些设置的信息,也可以通过EOS Studio的首选项查看和重新设置,如下图:
针对创建者和部门,按照如下要求进行设置:
作者:输入开发环境使用者正式姓名的中文,例如张山,则输入”张山”,不允许使用开发人员的英文名或者系统缺省的用户名,如administrator
部门:输入开发环境使用者所在公司(或部门)的名称,例如“普元PSO”等 在做好上面的设置后,每个新建的文件均会按照设置填入缺省的姓名和部门。
7.1.2.构件包
? 概念
构件包是EOS6项目中基础的业务实现和业务部署单元,其中包含了构件,构件实现以及一些额外需要的资源(如配置信息、页面资源等)
? 命名规范
1) 构件包名称全部使用英文小写
2) 构件包名称采用长命名空间的方式,如com.primeton.abframe. 3) 构件包名=系统命名空间+”.”+业务描述的英文单词(缩写),例如org(缩写参见
总体规范部分)
4) 构件包命名在设计期由设计人员确定,不允许开发期确定 5) 显示名称描述为中文信息
6) 构件包属于一个抽象概念,但构件包创建后,会创建一个与构件包同名的包名
共61页 第26页
ABFrame系统设计开发规范
7.1.3.逻辑构件
? 概念
采用EOS的逻辑流实现的构件。
? 命名规范
1) 逻辑构件名称为构件对象的单词(或缩写),其后可选如Manager等动词,首字母
大写,与java类命名一致。如UserManager、MenuManager
2) 逻辑构件直接建在以构件包为名称的包下,原则上不增加新的包的定义 3) 逻辑构件名称不使用前缀或后缀 4) 显示名称描述为中文信息
5) 逻辑构件是包含一个单一实体管理功能的操作集合,即增(add)、删(delete)、改
(update)、查(query)等
7.1.4.逻辑流
? 概念
逻辑流属于逻辑构件的操作,它是采用EOS6图形化组装方式表达的一种程序逻辑。
? 命名规范
1) 逻辑流名称=参照java方法命名方式如对Employee的增、删、改、查的完整名称
就是 addEmployee、deleteEmployee、updateEmployee、queryEmployee 2) 如果名称太长,建议使用词汇的缩写 3) 显示名称描述为中文信息
7.1.5.Java构件
? 概念
采用Java语言实现的构件,符合SCA_JavaAnnotationsAndAPIs_V100的规范。 ? 命名规范
1) Java构件名称中单词的首字母大写,其余小写 2) Java构件的包命名空间为:
“com.”+”企业名称”+应用代号+”.” +构件包名(不含前缀)+“.service” 例如com.primeton.abframe.comm.service 3) 本项目原则上不使用Java构件
7.1.6.组合构件
? 概念
组合构件包含在构件装配目录下,由一组具有业务上相互联系的构件(逻辑构件、Java构件、组合构件)组成,本身也可以定义对外的服务和引用,其实质是一种更大粒度的构件。
共61页 第27页
ABFrame系统设计开发规范
组合构件可以定义构件的服务,引用关系,构件的实现等。
? 命名规范
1) 组合构件名称为构件的业务对象描述的单词,并全部采用小写,如auth 2) 组合构件直接建在以构件包为名称的包下,原则上不增加新的包的定义 3) 组合构件名称不使用前缀或后缀
4) 组合构件中,组装的构件名称为业务对象+后缀”Com”,例如authCom 5) 只有当项目与外部应用存在服务接口时,才创建组合构件 6) 显示名称描述为中文信息
7) 组合构件中定义服务接口时的命名规范为:动作+对象,例如finishActivityInsttance
7.1.7.运算逻辑
? 概念
运算逻辑是支撑业务处理的一组原子操作,对应于Java类的一个方法,运算逻辑可以在逻辑流中被组装。
EOS平台提供了一系列运算逻辑,通过对该系列运算逻辑的组合,基本可以实现业务的处理。
? 命名规范
1) 运算逻辑类的包路径规划:
“com.” +”企业名称”+应用代号+”.” +构件包名(不含前缀)+“.bizlets” 例如com.primeton.abframe.comm.bizlets
2) 运算逻辑类的命名规范遵循Java类命名规范,首字母大写,类根据业务来划分,类名
建议使用业务对象名称,由多个单词构成时,每个单词首字母大写
3) 每个运算逻辑类包含一组具有某些共同特性的运算逻辑,禁止将运算逻辑杂乱无章分
布在不同的运算逻辑类中,正确的实例如业务异常操作类com.primeton.abframe.comm.bizlets.BusiException.java,在该类下包含一组与业务异常相关的运算逻辑。
4) 运算逻辑命名符合java方法命名规则,其,例如writeLog,如果涉及多个单词(缩写),
则每个单词(缩写)的首字母大写
5) 运算逻辑名称不使用前缀或后缀(与EOS5对运算逻辑的命名规范有差异)
6) 某些运算逻辑支持参数可以按组增加,则建议运算逻辑名后加“Batch”,如
setNodeValueBatch
7.1.8.页面流
? 概念
页面流用来描述单个HTTP请求的处理过程或者多个请求/页面之间的跳转关系。 ? 使用原则
一个逻辑构件对应一个页面流,即一个页面流中是包含一个实体的所有页面操作。 一个功能模块可能涉及多个实体间的交互操作,可设计多个页面流,采用调用(对应实体的)子页面流方式
共61页 第28页
ABFrame系统设计开发规范
? 命名规范
1) 页面流名称=业务对象+动作,其中业务对象单词(缩写)全部小写,动作(缩写)
的首字母大写,如employeeManager,原则上应与逻辑构件名称一致。
2) 与某个构件相关的页面流,创建一个与该构件名相同的包(放置在构件包同名的包下),
页面流创建于该包下,例如机构管理构件包存在一个工作组管理的构件(workgroup),则在页面流下面创建workgroup的包,与工作组管理相关的页面流创建在workgroup下
3) 尽量不要在页面流上直接实现业务逻辑,而是在逻辑流中实现,在页面流中调用。 4) 页面流的action 为英文命名,使用单词(缩写)全部小写。通常为一个动词,如果表达
不足使用动宾短语此时宾语部分首字母大写。如:edit,query,queryEmp 5) 页面流显示名称描述为中文信息
7.1.9.工作流
? 概念
工作流是针对工作中具有固定程序的常规活动而提出的一个概念,通过将工作活动分解定义良好的任务、角色、规则和过程来进行执行和监控,达到提高生产组织水平和工作效率的目的。
? 命名规范
参见流程设计开发规范部分。
7.1.10. 数据集
? 概念
数据集是一系列实体的集合,用来统一管理实体。 ? 命名规范
1) 数据集名称采用小写,如session、auth、orginzation等
2) 数据集直接建在以构件包为名称的包下,原则上不增加新的包的定义,例如
com.primeton.abframe.auth.auth.datasetx
3) 所有数据集中设计的实体,以实体导入时的命名为准。
7.1.11. 命名Sql集
? 概念
是一组命名Sql的集合,体现为一个以.namingsqlx为后缀的XML描述文件。 ? 命名规范
1) 命名sql集名称采用小写,并直接建在以构件包为名称的包下,如
com.primeton.abframe.auth.auth.namingsqlx
2) 命名sql集名称不使用前缀或后缀,直接以业务对象单词(或其缩写)命名
共61页 第29页
ABFrame系统设计开发规范
7.1.12. 命名Sql
? 概念
命名SQL就是给一个sql起一个唯一标识(id),以及配置该sql执行所需要的参数和如何处理sql执行完后的结果。然后在使用的时候,传入id和参数即可。 ? 命名规范
1) 命名Sql名称=操作+对象,操作全部小写,对象首字母大写,如deleteDictType,
queryUserRoles
2) 操作分为:query、update、insert、delete
3) 命名SQL中,字段名用大写,映射结果集的属性也大写
7.1.13. 页面资源
? 概念
页面资源的类型包括:JSP、HTML、JS、图片等 ? 命名规范
1) 在构件包下为每个构件建立一个文件夹,名称与构件名称一致(如果逻辑构件名
带”Manager” 可以去掉),文件夹下创建与该构件相关的页面资源,例如构件busidict,在页面资源下创建busidict目录
2) 如果构件涉及较多的不同页面资源,如js、jsp、图片资源比较多,可以在构件同名的
文件夹下再创建script和image,并将相应资源放置在目录下,如下图:
共61页 第30页