电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Domino代码优化、编码规范

32页
  • 卖家[上传人]:油条
  • 文档编号:116917823
  • 上传时间:2019-11-17
  • 文档格式:PPT
  • 文档大小:112KB
  • / 32 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、Domino应用开发规范 2004-04-03 石振勇 表单规则: ?11 表单命名规则 ?表单名称统一用中文,尽量能展示该表单的功能和意图. ?如果表单名无法展示其意图,或者表单名必须用英文,或者需要 对表单做些其他说明,则填写表单的备注. ?必须填写表单的别名.别名的可以用英文单词组合或汉语拼音. 如果用拼音,在能够容忍的长度内,尽量用全拼。规定:如果名 称全拼在16个字之内,用全拼并且每个字的首字母要大写。 如果超过16个字,则全用每个字的首字母大写。 ?表单名无需加”fm”的前缀。但可以按其功能类别加前缀,比 如用于区分“核心表单和非核心表单”的前缀 ?对于不需要用来创建文档的表单,名字用括弧括起来,用以 将后台表单和前台表单区分开,如功能性的表单作为后台表 单。 表单规则: ?12 表单的Js Header ? ?表单的Js Header中的函数应尽可能的少。只保留仅与本表单 相关的特殊的Js函数。 ?规定:放在页面里的js函数包要在页面中写明每个包中的函 数名称,方便查找和查看。 ? 资源库中的js函数包同时要有同名的说明文件。还要求有 一个总体说明文件。 ?13 表单的O

      2、n KeyDown事件 ?可以在此函数中限制用户的一些按键,例如: ?/防止用户CTRL+N,避免繁盛保存冲突 ?if(event.keyCode=78 表单规则: ? 14 表单的OnLoad ? Onload中的代码要尽可能的简短,不要写具体的 实现代码,只写被调用的函数体即可,目的是为了 代码清晰简洁,便于维护。例如: ? /打开前设置相关状态域 ? ondocload(); ? /装载意见 ? LoadOpinion(); ? /修改附件链接 ? ModifyAttachLink(); ? /上载附件 ? AddAttach(); 域的规则: ? 21 域的命名规则 ? 可以用英文单词组合或汉语拼音.如果用拼音,在能 够容忍的长度内,尽量用全拼。规定:首字母大写 用全拼。 ? 域名不要加用以说明域的类型属性的前缀。但可以 按其功能类别加前缀,比如用于区分“控制域、数 据域、Html用的域”的前缀 ? 域名可以加其功能类型的前缀,用于功能类型有限 时。当功能类型几十上百种时,就没意义了。 域的规则: ? 22 文本域容量限制问题 ? 除非一个NotesItem需要在视图或文件 夹

      3、中显示,后台创建的notesItem一定 要将其 IsSummary属性置为False 视图的规则 ?31 视图的命名规则 ?视图名称统一用中文,尽量能展示该视图的功能和意图. ?如果视图名无法展示其意图,或者视图名必须用英文,或者需要 对视图做些其他说明,则填写视图的备注。规定:如果视图本 身是被调用的在备注中必须写明被谁调用。 ?必须填写视图的别名.别名的可以用英文单词组合或汉语拼音. 如果用拼音,在能够容忍的长度内,尽量用全拼. 规定:如果名 称全拼在16个字之内,用全拼并且每个字的首字母要大写。 如果超过16个字,则全用每个字的首字母大写。 ?视图名无需加”vw”的前缀. ?对于不需要用于前台显示的视图,名字用括弧括起来成为隐 藏视图,用以将后台视图和前台视图区分开 视图的规则 ? 33 视图的列 ? 一般应填写列的“标题”属性,用于辨别该列 ? 视图的列的内容的字体应统一设置,一般字号设置 为9,字体为宋体,颜色根据客户需要设置,风格 应协调统一。 ? 视图的列公式尽可能的简洁,减少计算量。 ? 避免使用时间相关的列公式, 比如Now, Created, Modified.

      4、? 列尽可能不排序 ? 删除所有不必要的列 视图的规则 ? 34 视图的选择公式 ? 避免使用复杂的视图选择公式 ? 视图选择公式避免使用与时间、当前 用户相关的函数或命令,如 now,Today,UserName都是应该 避免使用的 视图的规则 ? 35 嵌入视图 ? 视图作为“嵌入元素”嵌入页面或表单 时,“要显示的行”属性的数字尽量设 置的少些,以提高嵌入视图的打开速 度。规定:初始值设为20行,如果用 户提出速度问题,可以改为10行,作 为第一解决方案。 代理的规则 ? 41代理的命名规则 ? 代理的名字可以用英文单词组合或汉语拼 音.如果用拼音,在能够容忍的长度内,尽量用 全拼. 规定:如果名称全拼在16个字之内, 用全拼并且每个字的首字母要大写。如果 超过16个字,则全用每个字的首字母大写 。 ? 必须填写代理的备注,对代理进行详细的 说明。 ? 代理名加用于标明其是否为核心代理的前 缀. 代理的规则 ? 42 代理的其他规则 ? 对于定时执行的代理,在该数据库正式启 用前,或者该定时代理暂时不使用时,取 消代理前的复选框,以暂时禁用该代理。 ? 对于那些只为管理者在客户端

      5、使用的代理 ,应设为“私有代理”,防止为他人误用 ? 代理 “Sub Initialize” 中的代码要尽可能的 简短,不能超过40行。多个代理中或和其 他设计元素中共享的代码,应独立到 “script库” 中。 代理的规则 ? 43 同时运行代理 ? 缺省的,domino同一时刻只执行一个web 代理(串行), 配置domino并行运行web 代理能够提高应用的答复时间。 ? 配置并行运行代理,需要设置服务器文档 中HTTP页下的“是否同时运行web代理”为 “是”或者在notes.ini中设置这一行 “DominoAsynchronizeAgents=1” 代理的规则 ?44防止资源冲突 ?同时运行web代理时,为防止资源冲突,要使用用加锁机制 ,例如: ?SharesResources = docCgi.UNID(0) + “save“ ?lockID = Createlock(SharesResources) ?gotLock = Codelock(lockID) ?= ?/你的代码 ?= ?If (gotLock) Then ?releaseLock = Codeunlock

      6、(lockID) ?dseleteLock=Destroylock(lockID) ?End If Script库的规则 ? script库中要放功能相近的代码,以达 到“高内聚”的目的。也便于查看代码 。 ? Script 库的开头区域要有对整个Script 说明的注释 LotusScript代码规则 61 函数的长度 ? 单个函数中的代码行数不要超过40行 。这是一个最重要的规则。 LotusScript代码规则 ?62 函数的命名 ?让我们看一些错误的命名: ?PersonLog 更新人员日志 ?PeopleOut 打印人员外出的信息 ?RemoveUser'从文档的当前环节和当前处理人中删除指定处 理人 ?RenyuanJB计算人员的级别 ?621 函数的名字用英文单词组合。 ?622 函数名字的语法结构,一般应采用“动宾”等动词开头 的结构 ?623 函数的名字在能容忍的程度内,尽可能的长,以更 好的揭示意图 ?624 函数的名字应和函数的功能一致,不可超出或小于 函数的功能,或者“风马牛不相及”。 LotusScript代码规则 ?63参数的规则 ?6.3.1参数名

      7、字要有意义 ?例如: ?sub SetValue(width, height) 良好的风格 ?sub SetValue(x,y)不好的风格 ?例如编写字符串拷贝函数StringCopy,它有两个参数。如果把参数 名字起为str1和str2,例如function StringCopy( str1, str2) ?那么我们很难搞清楚究竟是把str1拷贝到str2中,还是刚好倒过来。 可以把参数名字起得更有意义,如叫strSource和strDestination。这 样从名字上就可以看出应该把strSource拷贝到strDestination。 ?632如果输入参数以值传递的方式传递 ,则宜改用“ByVal argument”方式来传递,这样可以防止作为参数的变量值被修改, 同时又可以省去临时变量的构造过程,从而提高效率。 ?633 避免函数有太多的参数,参数个数尽量控制在5个以内。 LotusScript代码规则 ? 64 函数的返回值 ? 要书写函数的返回值类型 ? 函数的返回值要与函数的名字相配合 ? 函数的正常返回值和错误返回值的区 分 ? 函数尽量不要通过参数传递函数的返 回值

      8、,除非有多个不相干的返回值 LotusScript代码规则 ? 65 函数的职责 ? 函数的职责要单一,如果觉得职责的“ 粒度”不好把握,可以先用自然语言写 出总控模块(可以作为注释),针对 自然语言的每句话即可作为一个函数 。 LotusScript代码规则 ? 66 变量的规则 ? 每个模块必须使用 option declare 这个语句 来强制要求所有的变量必须定义 ? 变量的定义后面要书写该变量的注释 ? 变量的作用范围尽量少用全局,作用范围 越小越好 ? 变量尽量都要定义类型 ? 少使用Variant类型 LotusScript代码规则 ? 67嵌套的深度和广度 ? 条件语句的嵌套不能超过3层。 ? 循环语句的嵌套不能超过3层。 ? 两者混合的嵌套也不能超过3层。 ? 条件结构的开始和结束语句之间的 代码不能超过20行。 ? 循环结构的开始和结束语句之间的 代码不能超过20行。 LotusScript代码规则 ?将Redim的使用降到最少,下面的片断A比片断B快20% ?For i = 1 to 10000 ?If (i iMax) Then ?iMax = iMax + 1

      9、00 ?Redim Preserve sArray(1 To iMax) ?End If ?sArray(i) = “” ?Next ?Fragment B ?For i = 1 to 10000 ?Redim Preserve sArray(1 To i) ?sArray(i) = “” ?Next ?使用GetNextDocument代替GetNthDocument LotusScript代码规则 ?68 其他规则 ?使用For循环代替Do循环 ?遍历数组元素时,使用Forall代替For ?避免使用不必要的数组,例如:片断A比片断B快一倍。 ?片断 A ?for i=1 to 100 ?sum = sum + x(i) ?next ?t(1)=sum ?片断 B ?for i=1 to 100 ?t(1)=t(1)+x(i) ?Next LotusScript代码规则 ? 69 禁止硬编码 ? 任何将数据库文件名和路径名 直接写 在程序中的,都是硬编码。 ? 任何取当前数据库同路径作为目标数 据库路径的做法,都是硬编码 公式规则 ? 尽可能不用或少用DbColumn, DbLoo

      10、kup ? 尽可能使用视图列序号而不是域的名 字作为DbColumn or DbLookup 的参数 ? 使用DbColumn, DbLookup.时, 尽量开启“缓存”参数 图片规则 ? 所有的图片尽量放在 文件系统上,使 用来引用,这样既可以利用 浏览器端的缓存,也可以省去Domino 对图片的转换 JavaScript ? 具有通用性的,可以提取的js函数独 立到一个单独的资源数据库中。 注释规则 ?101 函数体注释 ?针对每个函数,按照下面的模板进行注释 ?''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''

      《Domino代码优化、编码规范》由会员油条分享,可在线阅读,更多相关《Domino代码优化、编码规范》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.