B3 《名称赋予基准》
1.目的
本书是某某系统(以下简称“本系统”)以Java技术为背景、以Spring MVC为开发架构进行设计与编码时对名称赋予的基准,未规定之处需按编程规约进行命名。
2.文档及文件夹命名规范
(1)文档名称规范
大型系统的软件开发标准成果物种类有几百种,文件有成千上万个。如果不对命名进行规范,文档的管理将非常混乱。因此文档命名规范非常重要。
软件命名体系包含文档命名规约与代码命名规约,如附图B3-1所示。在本书姊妹篇《Java代码与架构之完美优化——实战经典》一书中介绍了基本代码命名规约体系,而本书介绍文档命名规约。
附图B3-1 软件命名体系组成
文件命名规则:以开发阶段为横轴,以子系统、功能为纵轴进行归类划分,以“文件ID+文件成果物名称”的形式进行命名。
①文档ID。
每个文档都需要一个ID编号,以便文档在文件夹下排列及查询。根据是否与功能有关,分为两种情况。
a.与功能ID有关的文档命名规范。
文档ID具体构成:
第1、2位为开发阶段编号(例如:RA、ED、ID);
第3、4位为子系统编号(例如:YF);
第5~8位为功能编号(例如:DL01);
第9~10位为功能阶层内文档索引编号(01~99)。
其中,开发阶段与子系统编号之间用中横线“-”(半角)连接;功能编号与索引编号之间、索引编号与名称之间用下画线“_”(半角)连接,如下所示。
ID-YFDL01_01_登录概要设计.docx
b.与功能ID没有关系文档命名规范。
文档ID具体构成:
第1、2位为开发阶段编号(例如:RA、ED、ID);
第3、4位为子系统编号(例如:YF);
其中,开发阶段与子系统编号之间用中横线“-”(半角)连接;子系统编号与索引编号之间、索引编号与名称之间用下画线“_”(半角)连接,如下所示。
ID-YF_01_命名基准.docx
②文档名称。
文档名称是各个阶层文档成果物名称,如下所示。
ID-YFDL01_01_登录概要设计.docx
另外,各成果物还需要有附件时,要特别在名称里加上“附页+2位编号”提示,如下所示。
ID-YFDL01_01_登录概要设计_附页01.docx
③备份文件名称。
制作的文件或者式样变更需要备份目前文件时(在没有版本管理工具的情况下),需要在文件后面添加备份日期,如下所示。
ID-YF_01_命名基准_20170225.docx
(2)文件夹命名规范
文件夹命名亦非常重要,良好的文件夹层次有助于文档的归类与检索,如附图B3-2所示。
附图B3-2 文件夹层次
文件夹命名规则:两位数字编号+开发流程名称。其中,第1位编号与流程名对应,第2位编号为预留编号(可以根据需要在各流程直接加一些别的文件,便于管理)。
根据需要亦可以增加如附表B3-1所示的文件夹。
附表B3-1 文件夹名称
3.共通
(1)业务ID
【概要】业务组识别用代号。
【构成】开头3个缩写大写字母。
【例】ORG。
本项目业务代号如附表B3-2所示。
附表B3-2 业务代号
(2)功能ID
【概要】功能识别唯一ID。
【构成】为业务ID+业务内两位数字编号,即01~99。
【例】ORG01。
(3)页面ID
【概要】页面唯一识别ID。
【构成】功能ID+S(creen)+两位页面数字编号(01~99)。
【例】ORG01S01。
(4)消息ID
【概要】消息唯一ID。
【构成】一位消息种类代号+业务ID+3位数字编号(001~999)。
①分别如下:
E:错误,Error;
W:警告,Warning;
I:信息,Information;
D:调试,Debug。
【例】EORG001。
(5)报表名称
【概要】报表唯一识别ID。
【构成】功能ID+R(Report)+报表数字编号(01~99)+文档名称。
【例】ORG01R01_userlist。
4.业务项目命名
(1)业务项目中文名称标准
【概要】页面、处理、报表等使用的控件项目的汉字名称。
【构成】一般来说,使用最多的是修饰语+主要语+区分语(后缀),修饰语是可以省略的,中文名称不超过20个汉字。由修饰语、主要语、区分语构成。
①修饰语:这个是对主要语与区分语的修饰。
②主要语:数据条目。
③区分语:数据的属性(例如:编号、区分、数量、金额、比率等)。
例如:产品合计金额=①产品+②合计+③金额。
性别编号=②性别+③编号。
(2)业务项目英文名称标准
【概要】类(包括接口)、方法(包括构造函数)、变量、常量、参数的名称识别符。
【构成】开头字母只能够使用A~Z,a~z,以及_、$,识别符英文名称不超过40个字母。英文名称命名,使用相应的汉语所对应的英文名称,英文名称的赋予根据“365IT学院自动命名工具”自动命名。
(3)处理名称
名种按钮英文名称如附表B3-3所示。
附表B3-3 各种按钮英文名称
5.架构名称
(1)页面层
①非事件项目:项目ID。
【概要】每个非事件项目在系统中都有唯一性标识。
【构成】表单ID+下画线+项目名称。
【例】org01S01 Form_userName。
②非事件项目:项目名称。
【概要】非事件项目名称在系统中亦需要唯一性标识。
【构成】表单ID+「.」+项目名称。
【例】org01 S01 Form.userName。
③事件项目:菜单ID。
【概要】菜单唯一识别ID。
【构成】业务ID+英文名称。
【例】ORGFather。
④事件项目:按钮ID。
【概要】页面上按钮名称。
【构成】
a.按钮method属性名称:动词+名称(可省略)+Event。
【例】deleteUserEvent、searchEvent。
b.Id属性,在method属性名称后直接加Id。
【例】deleteUserEventId、searchEventId。
(2)控制层
①表单。
【概要】页面提交数据容器。
【构成】页面ID+Form。
【例】类名:Org01 S01Form。
②控制器。
【概要】页面控制器。
【构成】页面ID+Controller。
【例】类名:Org01S01Controller。
(3)业务层
①业务层。
【概要】业务逻辑处理层。
【构成】
a.接口:页面ID+Service。
【例】类名:Org01S01Service。
b.实现类:页面ID+Service+Impl。
【例】类名:Org01S01ServiceImpl。
②模式。
【概要】模式(Model)后加后缀“Dto”。
【构成】页面ID+Dto。
【例】类名:Org01S01Dto。
(4)持久层
①持久层(Repository)。
【概要】数据库SQL调用接口。
【构成】页面ID+Repository。
【例】类名:Org01S01Repository。
②业务SQLMAP文件。
【概要】以业务为单位建立mybatis相应的SQLMAP文件。
【构成】业务模块代号+下画线+sqlMap。
【例】org_sqlMap。
③SQL语句ID。
【概要】以页面为单位,定义SQL业务语句ID,定义的语句ID就是持久层Repository接口里面的方法名称。
【构成】SQL种类+页面ID(第一个字母要大些)+两位数字编号(01~99)。
查询,select;
更新,update;
删除,delete;
插入,insert。
【例】selectOrg01S0101。
6.数据库
(1)实体表名(概念名称与物理名称)
【概要】分为概念名称与物理名称,这两种名称都与ER图里设计的一致。
【构成】概念名称,如果是由多对多产生的表,名称由原实体表A+原实体表B构成。物理名称由t(table)+下画线+业务名+表功能名称组成。
【例】概念表名称:用户角色表=用户表A+角色表B。
物理表名称:t_sys_user。
(2)视图名称(概念名称与物理名称)
【概要】视图名称与ID与ER图里设计的一致。
【构成】v+下画线+视图功能名称。
【例】v_user_org。