所有的设计元素的命名都分成两部分,名称和别名,规定名称用中文命名,别名用英文,别名尽量使用简写,以WEB开发时不会产生较长的URL为前提,提高HTTP Request的响应速度。中文名称前面加上字母A到Y用于组织分类和排序。表单和视图的别名统一在前面加一个空格,代理统一不加空格,其目的是保证在design下看起来对齐一致。
1.设计元素
元素 | 规则 | 说明 |
帧结构集 | 名称:中文名称 别名:"frms"+英文 |
样例: 启动帧结构集|frmsStart 内容帧结构集|frmsContent |
帧 | 名称:中文名称 别名:"frm"+英文 |
因为帧只存在于帧结构集中,所以不需要用字母来组织分类。 样例: 导航帧|frmNav 右边帧|frmRight |
页面 | 名称:中文名称 别名:英文+".html" |
样例: 导航页面|Nav.html 左边页面|Left.html |
表单 | 名称:中文名称 别名:”fm”+英文(用于存贮) 别名:英文+”.html”(用于显示) 别名:英文+”.xml”(用于显示) 别名:英文+”.js”(用于动态JS) |
样例: 申请表单|fmApply 主题表单|fmTopic 说明: 如果表单设计属于仅限于显示,如: HTML\查询结果|searchResult.html XML\查询结果|searchResult.xml JS\扩展日期组件|extCalendar.js 此显示类表单使用”?readform&login&<参数字符串>”打开。根据实际用途设置ContentType。 注:任何需要动态生成显示内容时(页面呈现时,调用后台代码或复杂的公式设计),如:xml/js/json/html都可使用显示类表单完成。 |
视图 | 显示视图命名
名称:中文名称 别名:"vw"+英文["By"+排序关键字描述] 程序视图命名 名称:"("+中文名称+")" 别名:"vw"+英文["By"+排序关键字描述] |
视图的命名与表单是一致的,视图中文名的组织字母与该表单一致,视图别名也与表单的别名的英文部分保持一致。
比如如果表单名为:申请表单|fmApply,那么对应的视图名称应该是"申请视图|vwApply"。如果对于一个表单可能有不止一个视图,经常用的情况是分类视图,对于此类视图,命名规范是名称:中文名称,别名:"vw"+英文+"By"+类别, 样例:申请\按日期|vwApplyByDate 申请\按类别|vwApplyByType (申请\按文档创建日期)|vwApplyByCreateDate
注:对于视图的列,如果没有强制性的排序要求,请确保所有的文档按创建时间降序排列,这样新文档才会在最前面显示(这个问题一定要注意)。 视图一般分为显示用视图和程序用视图。在开发时,公式或程序不要在显示用视图中进行操作,如查询,取值。应另创建程序视图提供公式或程序使用。这样不会造成视图设计发生改变时而影响公式或程序运行。 |
代理 | 名称:中文名称 别名:"ag"+英文 |
代理的命名也要与表单保持一致,其名称的中文组织字母与表单一样,在表单中经常要使用到QueryOpenAgent和QuerySaveAgent,对应的代理应该是与其一致,比如表单"申请表单|fmApply",那么对应此表单的QueryOpenAgent应该是"申请打开代理|agApplyOpen",对应此表单的QuerySaveAgent应该是"申请保存代理|agApplySave",对于非上述两种情况的代理,不要加open或者save,尽量在代描备注中进行描述此代理作用。
对于所有的代理,如果不是真正意义的定时代理(需要服务器定时来运行),不要把代理属性设置成“定时”,如果设置成了定时可能存在一定的风险,并且在不同的系统打开进行编辑保存时,代理会自动去查找运行的服务器导致design半天不反应。 注:定时代理在多服务器布署时,如果代理所在数据库在多台服务器上存在复本,请指定定时代理运行的服务器,以免造成文档复制冲突问题。 |
子表单 | 名称:中文名称 别名:"sfm"+英文 只用于编辑类子表单 |
如果只用于编辑类子表单,别名应该为"sfm"+英文简称+"Edit"; 如果只用于只读类子表单,别名应该为"sfm"+英文简称+"Read"; |
域 | 命名规范:前缀+英文,其中的英文如果数据字典有,则必须来自于数据字典,数据字典中没有的,可自行命名,但需要遵守数据字典中的命名要求。
除了保留域,规范如下: 单值文本类型:St+英文,样例:StTopic 注:和sap集成的域值可以参考sap参数表的定义,可不严格遵守上述域值定义规则。 | |
角色 | 角色的命名限制:不能超过10个英文字母。
不要用中文命名。 不要用过多的角色,正常情况下一个库5个以下的角色,删除无用的角色常用角色:Manager、Normal、AllReader |
2.LS变量命名
变量命名规则旨在LS代码维护时方便查询程序中变量的数据类型,使LS程序更加清晰/易懂;
在声明LS变量时,先使用注释,说明变量的主要用途。第二行为变量声明语句,英文简写首字母一定大写。
数据类型 | 规则 | 取值范围 | 说明 |
基本数据类型 | |||
Intger | "i"+英文简写 | -32,768 - 32,767 | 样例:
' 文档个数 |
Boolean | "bo"+英文简写 | 0 (False) 或 -1 (True) | 样例:
' 保存标志 |
Byte | "b"+英文简写 | 0 - 255 |
样例: ' 字节代码
|
Long | "l"+英文简写 | -2,147,483,648 - 2,147,483,647 |
样例: ' 总计 |
Single | "s"+英文简写 | -3.402823E+38 - 3.402823E+38 |
样例: '总和 |
Double | "d"+英文简写 | -1.7976931348623158E+308 - 1.7976931348623158E+308 |
样例: '总和
|
Currency | "cy"+英文简写 | -922,337,203,685,477.5807 - 922,337,203,685,477.5807 |
样例: ' 总价
|
String | "str"+英文简写 |
样例: ' 用户名
| |
Array | "a"+英文简写 |
样例: ' 关键字列表
| |
List | "li"+英文简写 |
样例: ' 关键字列表 | |
Variant | "v"+英文简写 |
样例: ' 文档UNID列表
| |
类 | |||
NotesSession | "se"+英文简写 |
一般一段程序只会有一个会话对象,因此,第一个会话对象命名为session 样例: ' 当前会话
| |
NotesDatabase | "db"+英文简写 |
如果是当前数据库而命名为db 样例: | |
NotesView | "vw"+英文简写 |
一段程序可能需要使用多个视图,因此,第一个会话对象命名为view 样例: ' 所有文档视图 | |
NotesViewEntryCollection | "vec"+英文简写 |
一段程序可能只需要同时使用一个NotesViewEntryCollection时,满足此条件可直接命名为vec 样例: ' 视图查询结果集 注:此类功能与NotesDocumentCollection相似,如果NotesViewEntryCollection能够满足需求,优先考虑使用。 | |
NotesViewEntry | "ve"+英文简写 |
一段程序如果可能只需要同时使用一个NotesViewEntry时,满足此条件可直接命名为ve 样例: 注:此类功能是NotesDocument的功能子集,如果NotesViewEntry能够满足需求,优先考虑使用。 | |
NotesDocument | "doc"+英文简写 |
一段程序可能需要使用文档变量,因此,从会话中得到的当前文档命名为doc 样例: | |
NotesDocumentCollection | "dc"+英文简写 |
一段程序可能只需要同时使用一个NotesDocumentCollection时,满足此条件可直接命名为dc 样例: ' 视图查询结果集 | |
NotesDateTime | "dt"+英文简写 |
样例: ' 搜索开始时间 | |
NotesDocumentCollection | "dc"+英文简写 |
一段程序可能只需要同时使用一个NotesDocumentCollection时,满足此条件可直接命名为dc 样例: ' 视图查询结果集 | |
NotesItem | "itm"+英文简写 |
一段程序可能只需要同时使用一个NotesItem时,满足此条件可直接命名为item 样例: ' 临时交换域 | |
NotesRichTextItem | "rtf"+英文简写 |
样例: ' 附件存放域 |