Notes规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Notes程序开发规范备忘
1. 表单的规则
1.1. 表单命名规则
表单命名规范:必须有中文名和英文别名,其中英文别名命名格式为:frm + 其他字符。

必须填写表单的别名.别名的可以用英文单词组合或汉语拼音.如果用拼音,在能够容忍的长度内,尽量用全拼。

通用表单的英文别名命名格式为:$$+ 其他字符,一般不需要自己创建。

1.2. 表单的Js Header
表单的Js Header中的函数应尽可能的少。

只保留仅与本表单相关的特殊的Js函数。

通用的Js函数应放到资源数据库中。

1.3. 表单隐藏域设计
表单中的隐藏域全部放在一起,以表格的形式展现,并且放在表单的上方,如:
通过<div style=”display:none”>……</div>的方式隐藏内容,不采用Domino本身的隐藏方式。

通用的隐藏域,如文档UNID,不能在表单中单独创建这些域,如是通用的,则在资源库中创建,表单再引入,方便日后管理和维护。

隐藏域用到多少创建多少,没用到的隐藏域一个也不用放在表单中,隐藏域必须包含文字说明。

为了界面直观明了,隐藏的内容全部采用红色标出来。

1.4. 表单中的按钮设计
表单按钮采用HTML格式,每个按钮占用一列,方便日后的统一修改和维护。

1.5. 表单中的显示内容
界面内容尽可能不用HTML代码方式设计,多采用Domino本身的设计方式,表格宽度选取“按窗口大小调整”,而不是“按固定宽度”,然后在表格外套一大表格,代码如:<table width=<计算文本> border=0 align="center"><tr><td>……</TD></TR></TABLE>,如上图所示。

这样做的目的是表格宽度由计算文本控制,这样调整计算文本即可调整整个表格的大小。

正文内容和附件都是子表单,从资源库中引入,不能重新创建,减少日后的维护。

1.6. 表单的OnLoad
Onload中的代码要尽可能的简短,不要写具体的实现代码,只写被调用的函数体即可。

例如:
//打开前设置相关状态域:ondocload();
1.7. 表单代理的调用
最好采用这样的形式:document.all.item(‘savedoc’).click。

这样做的好处在于代理可以取得表单上所有域的内容,调用代理之前可以进行js前台判断。

如上边方法不能实现,则根据自己擅长的方式处理。

2. 域的规则
命名规则:可以用英文单词组合或汉语拼音.如果用拼音,在能够容忍的长度内,尽量用全拼,如收文编号:swbh或者swNumber。

表单保留域:表单中有些域必须统一,如标题(Subject),正文(Body)。

3. 视图的规则
隐藏视图命名规范:必须有中文名和英文别名,而且必须有括号括起,中文名命名为$$+ 中文名称,英文别名命名为$$vw + 英文字符。

如($$模块配置)$$vwModelConfig。

显示视图命名规范:必须有中文名和英文别名,英文别名命名为vw + 英文字符。

如:模块配置vwModelConfig。

视图列中列标题和内容全部靠左对齐,没有特殊的情况下,只有一列有链接,其他列只是显示信息;每列最好有排序功能。

删除列放在视图的第一列。

视图的索引:“刷新索引”属性一般选为:“自动刷新”;“废弃索引”属性一般选为:“不废弃”。

对于“用户经常访问,视图中文档经常变动”的视图,这种设置有助于提高视图的打开速度。

4. 代理的规则
代理命名规范:ag + 函数名,如保存文档agSaveDoc,代理中不编写具体实现代码,只是调用一个函数,如call SaveDoc。

函数存放在Script库中,并且函数名称必须是代理名字去掉ag后的函数名,即保持名字的同步。

有几个通用代理:agToExcelPrint(打印)、ViewQueryOpenDefault(视图模板表单打开时调用)、wDeleteDocument(删除文档)。

5. Script库的规则
每个数据库中一般包括3个Script库,ErrorLog(出错处理),MainLib(代理调用的各个函数),Common(通用函数),特别说一下,Common库以资源库中的为基准,如设计过程中,出现通用的函数,则先将函数放到资源库的Common库中,然后在拷贝的自己的库,即一定保持资源库中的Common库的函数是最新最全的。

为了代码的规范,特作以下设定:
当前会话对象命名:session
当前数据库对象:db,其他的数据库:db+ 英文字符.
当前文档对象: note或者doc。

其他的文档doc+英文字符。

6. 注释规则
每个函数前边必须包含一段注释,包括函数功能、参数说明、创建日志等。

代码段内,必须有足够的注释,原则上根据每个子功能划分,即函数到底做了哪些事情?把你的回答写成注释即可。

7. 错误处理规则
每个函数必须具备出错处理机制,错误内容写入系统出错日志库中。

出错函数调用已经写好,不用自个编写。

原理:使用LotusScript的“on error goto lable”,当发生错误时,跳转到”lable”指定的行下面,然后由我们自己来处理错误,我们提供了一个错误处理类“ErrorLog”。

该类中的方法“Sub writeErrorToLog(db As notesdatabase,Byval Errmsg As String,Byval Errline As String)”用于处理错误,该方法的功能是记录出错信息,并写到出错日志库中。

使用方法:
在函数的开始添加
On Error Goto er1 ‘当发生错误时转到”er1:”行处写:
Call writeErrorToLog(session.CurrentDatabase,Cstr(Error()),Cstr(Erl()))
8. LotusScript代码规则
8.1. 函数的长度
函数中的代码行数原则上不要多于100行。

8.2. 函数的命名
让我们看一些错误的命名:
PersonLog ‘更新人员日志
PeopleOut ‘打印人员外出的信息
相对比较正确的应该是这样
UpdatePersonLog ‘更新人员日志
PrintPeopleOut ‘打印人员外出的信息
8.3. 参数的规则
参数名字要有意义
例如:
sub SetV alue(width, height) ’良好的风格
sub SetV alue(x,y)’不好的风格
例如编写字符串拷贝函数StringCopy,它有两个参数。

如果把参数名字起为str1和str2,例如function StringCopy( str1, str2)。

那么我们很难搞清楚究竟是把str1拷贝到str2中,还是刚好倒过来。

可以把参数名字起得更有意义,如叫strSource和strDestination。

这样从名字上就可以看出应该把strSource拷贝到strDestination。

如果输入参数以值传递的方式传递,则宜改用“ByV al argument”方式来传递,这样可以防止作为参数的变量值被修改,同时又可以省去临时变量的构造过程,从而提高效率。

避免函数有太多的参数,参数个数尽量控制在5个以内。

8.4. 函数的返回值
要书写函数的返回值类型
函数的返回值要与函数的名字相配合
函数的正常返回值和错误返回值的区分
函数尽量不要通过参数传递函数的返回值
8.5. 函数的职责
函数的职责要单一,如果觉得职责的“粒度”不好把握,可以先用自然语言写出总控模块(可以作为注释),针对自然语言的每句话即可作为一个函数。

8.6. 变量的规则
变量的定义后面要书写该变量的注释
变量的作用范围尽量少用全局,作用范围越小越好
一组变量作用相近时,可将这组变量集中在一起定义,并且对该组变量作个说明,比如下面分为两组
Private docApp As notesdocument '应用主文档
Private dbApp As notesdatabase '应用数据库。

相关文档
最新文档