1、EAS命名规范EAS命名规范修订历史版本号发布日期编制人审核人/批准人修改的章节号1.02004-12-05华道清初始版本1.12005-05-16华道清根据EAS开发流程重新修订1.简介1.1 目的本文档的目的是规范EAS 设计开发过程中的命名。1.2 范围本文档适用于EAS设计阶段和开发阶段。1.3 约束本文档约定设计阶段采用的工具为Together和BOS Studio,开发阶段基于BOS和应用框架的编程模型进行,对MDA模式下的设计开发进行命名规范。2. 设计阶段的命名2.1. Together工程及文件命名请参见项目文件组织规范。2.2. Together建模命名2.2.1. 子系统
2、命名子系统的命名在ERP系统中通常具有固定的术语,EAS中使用到的子系统名都可以从EAS术语数据库中检索,检索方法请使用“术语管理工具”进行检索。命名格式:大写英文缩写 举例: 总账 GL 应收 AR 应付 AP固定资产 FIX人力资源 HR组织架构 ORG基础资料 BD企业战略管理 SEM2.2.2. 系统接口图命名系统接口图从架构的高度,展现当前子系统与所有其他子系统的接口依赖关系,体现当前系统的边界。系统接口图的命名格式:固定为architecture,采用全小写样式。系统接口图中的包必须命名别名(alias栏),命名格式为:大写英文缩写+(+中文名称+)举例: 2.2.3. 接口交互图
3、命名接口交互图用于展现当前子系统与某一具体子系统的相互调用关系。命名格式:当前子系统缩写_+相关子系统缩写举例:gl_botpgl_base 2.3. 数据库建模命名2.3.1. 数据库对象命名列表通用命名规则与名称长度(应据KSQL的最新规范进行调整):类型命名规则最大长度例子数据表T_+子系统名+具体名称30T_HR_CompenItem视图V_+子系统名+具体名称30V_ORG_Company字段F+具体名称30FID, FNumber, FVerifier主键PK_+子系统名+具体名称18PK_HR_CompenItem外键FK_+子系统名+具体名称18FK_HR_ComColl_Em
4、p约束CR_+子系统名+具体名称18CR_Sys_CodeRule普通索引IX_+子系统名+具体名称18IX_BA_FunctNum唯一索引唯一约束UX_+子系统名+具体名称UK_+子系统名+具体名称18UK_BA_FunctNum关系图子系统名_+顺序号_+具体名称255HR _3_Compute用户定义类型具体名称32Name, Name_Unicode, Number2.3.2. Field字段命名n 以大写字母F开头, 接下来的每个单词的第一个字母大写;n 一般字段名(Bool字段除外)要以名词、名词词组、形容词+名词、分词+名词来命名;n 所有的标识字段用大写的“ID”(如FID,
5、FUserID等);n 对于Bool类型的字段命名使用F+Is+形容词(名词、分词);举例:? 名字:FName;? 编码:FNumber;? 顺序号(序号):FSeq;? 描述:FDescription;? 备注:FComment;? 组织类型:FOrgType;? 组织单元:FOrgUnit; ? 金额:FAmount;? 数量:FQty;? 创建人:FCreatorID;? 创建日期:FCreatedDate。2.3.3. Constraint约束命名 主键:PK_+子系统名+具体名称外键:FK_+子系统名+具体名称约束:CR_+子系统名+具体名称普通索引:IX_+子系统名+具体名称唯一
6、索引:UX_+子系统名+具体名称唯一约束:UK_+子系统名+具体名称2.3.4. 数据库脚本命名 请参见EAS数据库管理规范。2.4. BOS元数据命名序号元数据命名格式路径1异常XxxException根(app上一层)2枚举XxxEnum根(app上一层)3数据表T_XX_YyyXX为子系统简称,大写;Yyy为Pascal格式app4实体具体名称app5关系R_ClientEntity_SupplierEntity_ClientLinkPropertyapp6FacadeXxxFacadeapp7规则XxxRuleapp8查询XxxQueryapp9用户界面XxxUIclient10资源X
7、xxResourceclient(客户端使用,通常情况)app(服务端使用,特殊情况)根(共用,特殊)11业务功能XxxFunctionapp12业务流程模板XxxTemplateapp13业务流程XxxProcessapp2.4.1. 异常命名命名格式: XxxException举例: CurrencyException2.1.1 子异常命名命名格式:XXX_XXX_(以下划线分隔的有明确语义的大写英文单词)举例:NAME_NOT_NULL (“名称不能为空!”)2.4.2. 资源命名命名格式: XxxResource举例: AccountResource2.4.2.1. 资源项命名命名格式
8、:xxxXxxxXxxx(有明确语义的英文单词组合)举例:notAllowChangeParent (“不允许更改科目的父科目!”)2.4.3. 枚举命名命名格式: XxxEnum举例: SystemEnum2.4.3.1. 枚举项命名命名格式:XXX_XXX_(以下划线分隔的有明确语义的大写英文单词)举例:FIXED_ASSETS (固定资产)2.4.4. 查询命名2.4.4.1. 普通查询命名格式: XxxQuery举例: CurrencyQuery (币种查询)2.4.4.2. F7查询命名格式: F7XxxQuery举例: F7CurrencyQuery (F7币种查询)2.4.4.3
9、. 查询字段2.4.3.1 自有字段命名格式:xxx(查询绑定主对象属性名称)举例:number(编码)2.4.3.2 连接字段命名格式:连接对象名连接对象名属性名举例:company.name (公司名称)图例: 2.4.5. UI命名2.4.5.1. 基类继承自ListUI命名格式: XxxUI举例: VoucherListUI (凭证序时薄界面)2.4.5.2. 基类继承自EditUI命名格式: XxxUI举例: VoucherEditUI (凭证编辑薄界面)2.4.5.3. 向导界面命名格式: XxxWizardUI举例: VoucherExpWizardUI(凭证引出向导界面)2.4
10、.5.4. 其它命名格式: XxxUI举例: VirtualCompanySumBalanceUI(虚体公司余额汇总界面)2.4.6. 业务功能命名命名格式: XxxFunction举例: VoucherBizFunction(凭证业务功能)2.5. BVT测试案例命名设计阶段的BVT测试主要用于外部接口或者重要算法的测试。命名格式:Bvt + 被测试的接口类名 举例: BvtIVourcher 凭证接口BVT测试类3. 开发阶段的命名3.1. JAVA工程及文件命名请参见项目文件组织规范。3.2. JAVA编码命名3.2.1. 大小写3.2.1.1. Pascal 样式大小写将标识符的首字母
11、和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用 Pascal 大小写。例如:BackColor3.2.1.2. Camel 样式大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor 这是在Java编码中默认的方式。3.2.1.3. 大写标识符中的所有字母都大写。主要针对常量的定义。例如:public static final int MAX_VALUE = 100;3.2.1.4. 小写标识符中的所有字母都小写。这个主要是针对包的命名。例如: com.kingdee.eas.xxx;大小写规则使用参考表标识符大小写示例备注类Pascal
12、AccountBalance包名小写com.kingdee.eas方法CameltoString参数CameltypeName常量大写MAX_VALUE枚举值大写FIXED_ASSETS3.2.2. 缩写为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则: 1、不允许将缩写或缩略形式用作标识符名称的组成部分。例如,使用 getWindow,而不要使用 getWin。 2、不允许使用计算机领域中未被普遍接受的缩写。 3、在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用 UI 作为 User Interface 的缩写,用 OLAP 作为 On-line Analyti
13、cal Processing 的缩写。 3.2.3. 包命名命名包名时的一般性规则是公司性质.公司名称.产品名称.功能细分;全部小写;例如:com.kingdee.bos.xxx;com.kingdee.eas.xxx;3.2.4. 类命名类的命名采用Pascal大小写,英文单词也可为缩略词(全部大写)。举例:BOSObjectFactory.java BOS对象工厂类3.2.4.1. 工具类的命名命名格式: 模块或对象名 + Util举例:AccountUtil 科目工具类DateTimeUtil 日期时间工具类3.2.4.2. 事件处理器类的命名基于BOS和应用框架的编程模型不建议自己写事
14、件处理器,绝大多数的事件处理都可以在UIDesigner中指定。如果要编写事件处理程序,在事件处理器(类)的命名中,采用如下命名格式:事件名+ EventHandler 例如:FocusEventHandler3.2.4.3. 设计模式相关类的命名命名格式:类名 + 模式名称常用的模式有“Factory”,“Delegate”,“Adapter”,“Mediator”等。举例: LoginHelper 登录帮助类 EventMediator 事件协调器3.2.5. 方法命名使用动词或动词短语命名方法。 使用Camel大小写。 举例:removeAll()getCharArray()invoke
15、()3.2.6. 参数命名1、使用描述性参数名称。参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定它的含义。 2、对参数名称使用 Camel 大小写。 3、使用描述参数的含义的名称,而不要使用描述参数的类型的名称。开发工具将提供有关参数的类型的有意义的信息。因此,通过描述意义,可以更好地使用参数的名称。少用基于类型的参数名称,仅在适合使用它们的地方使用它们。 4、不要使用保留的参数。保留的参数是专用参数,如果需要,可以在未来的版本中公开它们。相反,如果在类库的未来版本中需要更多的数据,请为方法添加新的重载。 5、不要给参数名称加匈牙利语类型表示法的前缀。 举例:Ty
16、pe getType(string typeName)string format(string format, object args)3.2.7. 属性命名1、使用名词或名词短语命名属性。 2、使用Camel 大小写。 3、不要使用匈牙利语表示法。 3.2.8. JNDI命名3.2.8.1. JDBC Connection JNDI连接池的JNDI命名采用小写jdbc + / + 名称(小写),如: jdbc/eas4013.2.8.2. EJB JNDIEJB的JNDI命名:l remote: ejb/ eas/+ 模块限定名 + _ + 类名 + Home;l local: ejb/ e
17、as/ + 模块限定名 + _ + 类名 + LocalHome。举例: ejb/eas/com_kingdee_eas_base_uiframe_app_MainFunctionMenuControllerRemoteHomeejb/eas/com_kingdee_eas_basedata_master_account_app_AccountViewControllerLocalHome3.2.8.3. JMS DESTATION JNDI对于JMS connection factory的JNDI命名为:jms/名称+connectionfactory(小写)JMS destation的JN
18、DI命名,如果为queue,则为jms/名称+queue(小写);如果为topic,则为jms/名称+topic(小写)3.2.9. 局部变量的命名不允许使用中文对命名空间、类、类成员、变量命名。局部变量的命名采用Camel大小写。例如:DataTable dataTable;对于for循环的变量名,继续使用i、j、k。for(int i=0; i10; i+) for(int j=0; j20; j+) 3.2.10. 数组变量的命名数组应该总是用下面的方式来命名byte buffer; 而不是byte buffer;3.2.11. 布尔类型的命名布尔类型的方法、属性或者Field,使用is
19、前缀来命名。例如: public bool isEmpty public bool isEmpty(object o) /do something .3.2.12. 控件命名控件的命名,以前缀作为标识某种类型的控件。具体如下:控件前缀说明KDButtonbtnKDButtonGroupgrp按钮组KDBizMultiLangBoxmlt多语言编辑框KDBizPromptBoxprmtF7KDCheckBoxchkKDComboBoxcomboKDContainercontKDCurrencyTextFieldtxt币别编辑框KDDatePickerpk日期KDEditorPanepaneKDF
20、ormattedTextFieldtxt格式化编辑框KDFilterTextFieldtxtKDLabellblKDLabelContainercont标签容器KDListlistKDMaskTextFieldtxtKDPanelpnlKDPasswordFieldpwdKDProgressBarbar进度条KDRadioButtonbtnKDScrollPanepaneKDSeparatorsepKDSlidersld滑块KDSplitPanepaneKDSpinnerspinKDTabbedPanepane多页签KDToggleButtonbtnKDTextAreatxtKDTextPan
21、epaneKDTimePickerpk时间KDTreetreeKDTreeViewtrviewKDWorkButtonbtn工作区按钮3.3. 单元测试案例命名开发阶段的单元测试主要用于外部接口或者重要算法的测试。命名格式:Test + 被测试的接口类名 举例: TestICurrency 币别接口单元测试类3.4. 性能测试脚本命名性能测试脚本通常是利用ORMRpc工具进行录制的,为了满足性能测试的要求,需要统一命名。命名格式:子系统名 + 业务对象名 + 操作类型的方式命名举例:BasedataAccountAddnew.java 科目新增BasedataAccountUpdate.java 科目修改BasedataAccountDelete.java 科目删除BasedataAccountQuery.java 科目查询
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1