




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaScript代码审查表版本:0.3作者:xel创建日期:2006-04-23最后修改日期:2006-05-20使用说明本审查表在对JavaScript源代码进行审查时使用,每次审查时,审查者将本审查表打印一份,并填写相应内容。需要注意的是,对每项检查内容,都需要将代码从头至尾检查一遍,即如果有20项检查内容,就需要查看20次源代码。查看源代码时,只需要看是否符合检查项的要求,不考虑任何对源代码修改的问题,修改工作由代码编写者完成。审查表审查人审查日期审查内容(被审查文件的作用)被审查文件所属的项目被审查文件在项目中的路径1. 审查准备工作审查项目说明通过否(通过打“”,未通过即留空白)说明(用于描述不清楚的问题或者有条件通过的情况)1.1. 应准备最新版本的审查表。1.2. 应准备最新版本的编码规范。编码规范版本号:1.3. 要审查的JavaScript源代码应为需要审查的版本。JavaScript源代码版本号为:1.4. 要审查的HTML文件应为需要检查的版本。HTML文件的版本号为:2. 源代码编码风格审查项目说明通过否说明(列出未通过审查的行号和文件名)2.1. 变量名、常量名、类名、类的属性名应符合编码规范要求。2.2. 方法名的命名应符合编码规范的要求。2.3. 缩进、花括号、折行的排版应符合编码规范的要求。2.4. 空格、空行应符合编码规范的要求。2.5. 超过10行(不计空行、函数定义、仅包括花括号的行)的源代码应有相应的块注释描述其目的(而非实现方法)。2.6. 定义变量的语句除for循环的循环变量定义外,每行应仅定义一个变量。3. 文件引用审查项目说明通过否说明(列出未通过审查的行号和文件名)3.1. 应在每个js文件开头加入DEBUG=true语句。该语句将使得assert、dalert函数均出于调试工作状态中。3.2. 如果文件中定义了公用的类,每个文件应仅定义了一个公用类。3.3. 源代码中引用的其他文件中的方法、类应使用项目公用目录下的定义。在项目中,每个用例仅使用一个js文件,其余需要引用的方法、类、变量,全部在公共目录中定义。4.功能审查项目说明通过否说明(列出未通过审查的行号和文件名)4.1. 方法的功能应明确。包括方法的入口参数的含义是否明确(即审查是否能够看懂)?方法的返回值是否明确?方法对其他资源产生的影响(如修改了HTML文档中的对象、修改了XML对象、修改了全局变量或对象等)是否在注释中(而不仅仅是在代码中)明确?4.2. 方法的块注释应保证了方法完成了其所有功能。4.3. 方法的块注释应保证了方法没有做任何不应由本方法做的工作。即方法没有做任何方法定义说明中没有说明的工作。4.4. 块注释后的源代码应保证完成块注释所声明的工作。4.5. 块注释后的源代码应保证没有做任何块注释未声明的工作。5. 变量审查项目说明通过否说明(列出未通过审查的行号和文件名)5.1. 一个变量的不同取值范围不应代表3个或以上不同的含义。例如,整型变量iValue在0时,表示某个索引值,在=0时表示未知值,在 0) lnCount+;要简捷,并且少进行一次逻辑判断。6.7. 赋值语句不应为变量赋一个不同类型的值,除非确实要进行类型转换。如,若s原代表一个字符串值,i代表一个整型值,那么:i = s;是不允许的,如果确实要在整型和字符串型之间进行转换,应使用如下方法:i = s 0;/字符串转换为整型s = i + “”;/整型转换为字符串型6.8. 整数乘法、加法、减法的结果不应超过整数的上限、下限。整数的上限为232-1,下限为-232-17. 条件判断语句和switch语句审查项目说明通过否说明(列出未通过审查的行号和文件名)7.1. if语句的嵌套不应大于3层。7.2. 布尔变量的比较不应写为与true、false进行比较。例如,对布尔变量isValid的比较语句应写为:if (isValid) 而不是:if (isValid = true) 7.3. 对于可能含有小数部分的数值变量,应在某个精度范围内进行比较,而不是进行直接比较。如,f是一个含有小数部分的数值变量,则比较其与变量x的语句应写为:if (x PREC f & f 写为=,=写为,写为=,=写为。7.8. switch语句块中的每个case分支,其结尾应使用break语句或者retrun语句确保分支处理被收尾。default分支的最后可以不使用break。7.9. switch语句块的最后应写出default分支。8. 循环语句审查项目说明通过否说明(列出未通过审查的行号和文件名)8.1. 循环的执行条件和终止条件应符合循环的执行意图。类似于7.4.。8.2. 应确保循环能够终止,除非确实需要无限循环。即,应判断在循环内部的每个执行分支上,循环变量发生向着循环终止的条件发展,或者导致循环终止的条件一定会发生。8.3. 无限循环的标准写法为:for (;)或者while (true),其他写法均不可接受。8.4. 循环变量的初始化应紧靠着循环入口,两者之间不应有无关的语句。8.5. 对循环变量的比较语句,或者控制循环执行次数的语句,没有出现边界错误。类似于7.7.。8.6. 循环体的最后一次执行,如果和循环体的一般执行情况不同,应进行专门处理。如,工作一共有10个小项要完成,分成3次循环做,每次循环做4个小项,那么最后一次循环(即第3次循环)应仅做2小项的工作,或者在做了4小项工作后将最后2小项删除。8.7. 循环体退出之后,如果有需要收尾的工作,应进行收尾处理。如,工作一共有10个小项要完成,分成2次循环做,每次循环做4个小项,那么在循环结束后,还应该有2小项工作要做,不能遗漏。8.8. 循环的嵌套层数应小于等于3层。8.9. 循环内部的if语句嵌套不应大于2层。8.10. 循环的出口数不应大于3个(即,在循环内部使用break或者return退出的情况不能大于2个)。9. 方法审查项目说明通过否说明(列出未通过审查的行号和文件名)9.1. 方法名应该明确无误。如,除了初始化和用于最后释放资源的方法外,类似以下的方法名是不可接受的:handleXXX()、initXXX()、processXXX()等,上述名称说明方法的编写者在定义方法时尚未能够仔细考虑方法内部要实现哪些具体功能,因此是不可接受的。9.2. 方法的参数应少于或等于7个。9.3. 方法的参数排列应按照先输入参数,后输出参数的顺序排列。9.4. 若方法的代码行数超过20行,应在方法声明语句前,按照Java方法注释的要求编写方法说明。param部分用于说明参数return部分用于说明返回值description部分用于说明方法的意图,以及对其他资源可能造成的影响。9.5. 方法返回值的不同取值范围不应代表3个或以上不同的含义。同5.1.。9.6. 方法的每个出口应明确地返回和方法声明相匹配的结果。10. 错误处理审查项目说明通过否说明(列出未通过审查的行号和文件名)10.1. 不应使用alert语句输出调试信息。10.2. 若传入方法的参数是来自于用户输入的,或者来自于外部系统,应使用判断语句确保参数取值的合法性。用if语句判断参数的合法性时,应注意逐级判断,即避免如下形式:if (xxx.yyy.zzz)而是应采用:if (null = xxx) if (null = xxx.yyy) if (null = xxx.yyy.zzz | xxx.yyy.zzz) 10.3. 若传入方法的参数是来自于系统内部产生的数据,或者是HTML文件中定义的对象,应使用assert语句验证参数取值的合法性。类似于10.2.。10.4. 调用其他方法语句,应对方法返回值范围的每种可能性进行处理。如,一个方法其返回值不为空时,表示找到了一个对象,为空时表示未找到对象,此时,应对返回值为空和不为空的两种情况都进行判断处理。10.5. 如果方法可能出现异常,或者方法有多个出口,应使用try finally 结构保证出口处理得到执行。11. WEBAPI的使用11.1. 新打开的页面中,如果需要查询用户信息,应使用WinManager.openSimple方法,而不是WinManager.dialog方法。11.2. 如果某个变量是作为字符串类型的查询参数,传递给queryEngine的,应对首先其中的XML特殊字符进行替换,而后对其中sql语句的特殊字符进行替换。XML特殊字符替换包括:替换为>等。sql语句的特殊字符替换包括:替换为替换为替
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脂脉康定价策略研究-洞察及研究
- 产业园热电联产项目可行性研究报告
- 麻醉、精神药品管理培训考核试题及答案
- 2025版专业计算机设备租赁合作协议书
- 2025年度商品砼绿色供应链购销合同范本
- 2025版农家乐房屋租赁及乡村民宿特色项目合作合同
- 2025版国际贸易保险合同编号:TIC20250021
- 2025年度毛竹资源承包与竹林生态旅游开发合同
- 2025年度地下车库钢管运输安全防护及应急处理服务合同
- 2025版绿化工程环保材料采购与应用合同下载
- 2023年高考作文备考之广东重点中学六校四联“鲁侯养鸟”分析
- 半导体制造工艺基础之扩散工艺培训课件
- 溶剂油MSDS危险化学品安全技术说明书
- 检验标本的采集与运送课件
- 济南版生物七年级下册课程纲要
- 福建升辉鞋业有限公司年加工EVA鞋底385万双、TPR鞋底65万双、PVC鞋底60万双项目环评报告表
- 胸腺瘤诊断治疗指南
- 班主任到场签到表
- 视网膜静脉阻塞.LM
- 海底捞-A级门店管理制度
- 《陶行知教育名篇》读书笔记(课堂PPT)
评论
0/150
提交评论