ABFrame系统设计开发规范
3) 页面资源文件一律使用小写字母,命名一般采用主谓格式,各个单词之间使用下划线
“_”连接,如org_tree.jsp、dictionary.js
7.1.14. Java
? 概念
EOS6中所有JAVA文件(包括运算逻辑和JAVA构件将自动呈现在Java目录下),另外,允许通过该目录开发项目中其他的JAVA程序,包括工具类,测试类、Tag类、Filter类等。 ? 命名规范
1) 建议在开发环境中设置好格式,开发过程当中用快捷方式自动格式化。 2) Package 的命名
Package 的名字全部采用小写字母,命名规则如下:
“com.” +”企业名称”+应用代号+”.” +构件包名(不含前缀)+“类别”,例如:com.primeton.abframe.comm.bizlets
此外,对于包名我们做如下约定:
a) 工具函数类包名前缀为.util,如com.primeton.abframe.auth.util b) Servlet类包名前缀为.servlet,如com.primeton.abframe.auth.servlet c) test case类包名前缀为.test,如com.primeton.abframe.auth.test d) Tag类包名前缀为.tag,如com.primeton.abframe.auth.tag
e) Filter类包名前缀为.filter,如com.primeton.abframe.auth.filter
共61页 第31页
ABFrame系统设计开发规范
3) Class 的命名
Class 的名字必须由大写字母开头而其他字母都小写的单词组成,例如:DataFile或InfoParser。
4) Class 变量的命名
变量的名字必须用一个小写字母开头。后面的单词用大写字母开头,例如:debug 或 inputFileSize。
5) Static Final 变量的命名
Static Final 变量的名字应该都大写,并且指出完整含义,例如:MAX_UPLOAD_FILE_SIZE=1024。
6) 参数的命名
参数的名字必须和变量的命名规范一致。
7) 数组的命名
数组应该总是用下面的方式来命名: byte[] buffer; 而不是: byte buffer[];
8) 方法的参数命名
使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字: SetCounter(int size) {
this.size = size; }
7.1.15. 配置信息
? 概念
由于构件包在EOS6中是一个独立的部署单元,因此构件包提供的配置信息目录,允许定义异常、国际化资源文件、日志配置、Handler等 ? 命名规范
遵循相关配置规范。
7.1.16. 包
? 概念
EOS6允许在很多资源类型下创建包,用以构造项目的命名空间。
EOS6创建构件包时,会自动创建构件包同名的包,创建逻辑构件时,也会创建与逻辑构件同名的包。
共61页 第32页
ABFrame系统设计开发规范
? 命名规范
1) 包命名一律要求为小写
2) 在各个资源下创建包的规范参见各个资源的命名规范,例如逻辑构件、组合构件等
7.1.17. WEB目录
? 概念
WEB目录是针对整个项目的WEB配置目录,允许放置对整个应用有效的资源文件,包括公共的js、图片、页面、以及WEB-INF的配置等
? 命名规范
1) WEB目录下文件的命名规范。 目录结构
common -放置公共JSP文件
images - 存放项目中运用的图片资源,建议图片名称使用abf-前缀。 scripts - 存放项目中公共的JavaScript资源。 styles - 存放项目中运用的样式文件。
2) 构件包(功能)级资源严禁放在WEB目录下
7.1.18. 国际化资源文件
? 概念
页面的信息的国际化内容都存放在构件包的配置信息下的resources/i18n目录下的资源文件中
? 命名规范
1) 资源文件的命名规范。
资源文件的命名按照构件包和子构件包划分,每个构件(子)包对应一组资源文件,每组资源文件包括多个语种的对应信息,如机构维护的构件包为oganization则国际化资源文件为
oganization_en_US.properties,oganization_zh_CN.properties。。。。等。 国际化的标识为 语种_国别。
语种使用ISO639-2(w3c) 国别 使用ISO3166(w3c) 2) Key的命名
1、 全局使用的消息名:
固定名称、标题、按钮显示名称:以l_开头加上英文单词
例如: 选择 l_choose
确定 l_comfirm 取消 l_cancle
字段名: 实体名.属性名
例如:AcOrganization.orgid
共61页 第33页
ABFrame系统设计开发规范
提示信息:以m_+”开头加上页面操作信息”+”_”+”消息名称”
例如:删除时的提示信息m_delete_confirm 图片名称:以i_开始加上英文单词 例如:i_logo
2、 局部使用的消息名(构件包、页面流、JSP内使用)
局部使用的消息名称可在全局使用的消息命名规范基础上,在消息名前增加”页面流名称”+”_”
如 选择:EmployeeManager._ l_choose
字段名: EmployeeManager._ AcOrganization.orgid 删除时的提示信息EmployeeManager._m_delete_confirm
7.2. 设计开发规范 7.2.1.构件包
1) 设计时,合理规划项目中构件包的粒度,一个构件包相当于一个业务模块,避免构件
包太大,影响业务的复用;避免构件包太细,导致项目构件包数量太多,不利于管理 2) 构件包在设计阶段由设计人员确定
3) 每个构件包对应一个与其名称一致的web路径 4)
7.2.2.逻辑构件
1) ABFrame项目的业务处理一律通过逻辑构件中的逻辑流实现
7.2.3.逻辑流
1) 要求逻辑流尽可能做到简洁功能独立,简洁是指所实现的逻辑流条理清晰、业务算法
简单易于理解,要求在熟悉EOS体系架构和已有构件(可能是EOS提供的,也可能是自身的积累)的基础上,选择最佳的算法实现;功能独立是指在一个逻辑流中的业务处理是独立的,复杂的逻辑流考虑细分为多个小的逻辑流,以提高逻辑流的复用度。例如,某个功能要求查询获得多个数据表的结果,在编写逻辑流时不建议将所有查询处理放到一个逻辑流中实现,而是在不同的逻辑流中实现,再通过页面流调用多个逻辑流,这样,编写的逻辑流可能还能在别的功能中得到复用,充分利用到面向构件积累的优势。
以下是某项目中页面流的截图,该逻辑响应用户界面上查询某次培训的详细资料(包括培训基本信息、培训的课程安排、参与培训的人员列表)的动作,对应信息的查询完全可以在一个逻辑流中实现,也可以分为三个逻辑流实现(如图所示),然后通过页面流分别调用,这样分别实现的三个逻辑流除了满足此功能外,还可以在培训课程查询、培训人员查询等功能中得到复用。
共61页 第34页
ABFrame系统设计开发规范
2) 编写的逻辑流要求以业务的语义描述每个处理环节(避免使用程序语义描述或者不描
述),即更改逻辑流中调用的运算逻辑的显示名称,同时逻辑图形编排清晰,尽可能不出现交叉线,另外可以在逻辑流中增加注释图元,注明逻辑流的功能等,这样有利于别人的阅读和理解,也方便日后系统的维护,以下是某项目中的逻辑流截图:
共61页 第35页