Domino Web开发规则之一:Notes命名规范

所有的设计元素的命名都分成两部分,名称和别名,规定名称用中文命名,别名用英文,别名尽量使用简写,以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 
多值文本类型:Mt++英文,样例:MtAuthor 
单值数字类型:Sn+英文,样例:SnMoney 
多值数字类型:Mn+英文,样例:MnMoney 
单值日期类型:Sd+英文,样例:SdApply 
多值日期类型:Md+英文,样例:MdApply 
RTF类型:Rtf+英文,样例:RtfRemark

注:和sap集成的域值可以参考sap参数表的定义,可不严格遵守上述域值定义规则。

角色 角色的命名限制:不能超过10个英文字母。

 

不要用中文命名。

不要用过多的角色,正常情况下一个库5个以下的角色,删除无用的角色常用角色:Manager、Normal、AllReader

2.LS变量命名

变量命名规则旨在LS代码维护时方便查询程序中变量的数据类型,使LS程序更加清晰/易懂;

在声明LS变量时,先使用注释,说明变量的主要用途。第二行为变量声明语句,英文简写首字母一定大写。

数据类型 规则 取值范围 说明
基本数据类型
Intger "i"+英文简写 -32,768 - 32,767 样例:

' 文档个数 
Dim iCount As Integer

Boolean "bo"+英文简写 0 (False) 或 -1 (True) 样例:

' 保存标志 
Dim boSaveFlag As Boolean

Byte "b"+英文简写 0 - 255

样例:

' 字节代码 
Dim bCode As Byte

 

Long "l"+英文简写 -2,147,483,648 - 2,147,483,647

样例:

' 总计 
Dim lTotal As Long

Single "s"+英文简写 -3.402823E+38 - 3.402823E+38

样例:

'总和 
Dim sSum As Single

Double "d"+英文简写 -1.7976931348623158E+308 - 1.7976931348623158E+308

样例:

'总和 
Dim dSum As Double

 

 

Currency "cy"+英文简写 -922,337,203,685,477.5807 - 922,337,203,685,477.5807

样例:

' 总价 
Dim cySumPrice As Currency

 

 

String "str"+英文简写  

样例:

' 用户名 
Dim strUserName As String

 

 

Array "a"+英文简写  

样例:

' 关键字列表 
Dim aKey(0 to 1) As Array

 

 

List "li"+英文简写  

样例:

' 关键字列表 
Dim liKey List as String

Variant "v"+英文简写  

样例:

' 文档UNID列表 
Dim vDocUNID As Variant

 

 

 

NotesSession "se"+英文简写  

一般一段程序只会有一个会话对象,因此,第一个会话对象命名为session

样例:

' 当前会话 
Dim session As New NotesSession

 

 

NotesDatabase "db"+英文简写  

如果是当前数据库而命名为db

样例: 
' 当前数据库 
Dim db As NotesDatabase 
' 组织机构库 
Dim dbOrgMng as NotesDatabase

NotesView "vw"+英文简写  

一段程序可能需要使用多个视图,因此,第一个会话对象命名为view

样例:

' 所有文档视图 
Dim view As NotesView 
' 按创建日期排图视图 
Dim vwMainByDate as NotesView

NotesViewEntryCollection "vec"+英文简写  

一段程序可能只需要同时使用一个NotesViewEntryCollection时,满足此条件可直接命名为vec

样例:

' 视图查询结果集 
Dim vec As NotesViewEntryCollection

注:此类功能与NotesDocumentCollection相似,如果NotesViewEntryCollection能够满足需求,优先考虑使用。

NotesViewEntry "ve"+英文简写  

一段程序如果可能只需要同时使用一个NotesViewEntry时,满足此条件可直接命名为ve

样例: 
' 视图查询结果单元 
Dim ve As NotesViewEntry

注:此类功能是NotesDocument的功能子集,如果NotesViewEntry能够满足需求,优先考虑使用。

NotesDocument "doc"+英文简写  

一段程序可能需要使用文档变量,因此,从会话中得到的当前文档命名为doc

样例: 
' 当前文档 
Dim doc As NotesDocument 
' 个人文档 
Dim docPerson as NotesDocument 
' 临时程序交换时使用文档变量 
Dim docTemp as NotesDocument

NotesDocumentCollection "dc"+英文简写  

一段程序可能只需要同时使用一个NotesDocumentCollection时,满足此条件可直接命名为dc

样例:

' 视图查询结果集 
Dim dc As NotesDocumentCollection

NotesDateTime "dt"+英文简写  

样例:

' 搜索开始时间 
Dim dtStart As NotesDateTime

NotesDocumentCollection "dc"+英文简写  

一段程序可能只需要同时使用一个NotesDocumentCollection时,满足此条件可直接命名为dc

样例:

' 视图查询结果集 
Dim dc As NotesDocumentCollection

NotesItem "itm"+英文简写  

一段程序可能只需要同时使用一个NotesItem时,满足此条件可直接命名为item

样例:

' 临时交换域 
Dim item As NotesItem 
' 用户名域 
Dim itmUsername As NotesItem

NotesRichTextItem "rtf"+英文简写  

样例:

' 附件存放域 
Dim rtfAttFiles As NotesRichTextItem

原文地址:https://www.cnblogs.com/hannover/p/2062015.html