代码静态检查.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码静态检查 清华大学软件学院 刘强、陈光 代码评审技术 代码审查(Code Review )是一种用来确认方案设计和代码实现的质量保证 机制 ,它通过阅读代码来检查源代码与编码规范的符合性以及代码的质量。 代码审查的作用 •  检查设计的合理性 •  互为 Backup •  分享知识、设计、技术 •  增加代码可读性 •  处理代码中的“地雷区” 缺陷检查表 编程规范 性能方面(续 ) •  按照具体编程语言的编码规范进行检查 ,包括命名规则、程序注释、 •  是否采用内存或硬盘缓冲机制以提高效率 ? 缩进排版、声明与初始化、语句格式等。 •  并发访问时的应对策略 •  I/O 方面是否使用了合适的类或采用良好的方法以提高性能(如减 面向对象设计 少序列化、使用 buffer 类封装流等 ) •  类的设计和抽象是否合适 •  同步方法的使用是否得当 ,是否过度使用 ? •  是否符合面向接口编程的思想 •  递归方法中的迭代次数是否合适(应保证在合理的栈空间范围内 ) •  是否使用合适的设计模式 •  如果调用了阻塞方法 ,是否考虑了保证性能的措施 性能方面 •  避免过度优化 ,对性能要求高的代码是否使用profile工具 •  在出现海量数据时 ,队列、表、文件在传输、上载等方面是否会出 资源释放处理 现问题 ,是否控制如分配的内存块大小、队列长度等 •  分配的内存是否释放 ,尤其在错误处理路径上(如 C/C++ ) •  对 Hashtable、Vector 等集合类数据结构的选择和设置是否合适 •  错误发生时是否所有对象被释放 ,如数据库连接、Socket、文件等 •  有无滥用 String 对象的现象 •  是否同一个对象被释放多次(如 C/C++ ) •  是否采用通用的线程池、对象池等高速缓存技术以提高性能 •  代码是否保存准确的对象引用计数 •  类的接口是否定义良好 ,如参数类型等应避免内部转换 缺陷检查表 程序流程 数据库处理(续 ) •  循环结束条件是否准确 •  数据库访问模块是否正确封装 ,便于管理和提高性能 •  是否避免了死循环的产生 •  是否采用合适的事务隔离级别 •  对循环的处理是否合适 ,应考虑到性能方面的影响 •  是否采用存储过程以提高性能 线程安全 •  是否采用 PreparedStatement 以提高性能 •  代码中所有的全局变量是否是线程安全的 通讯方面 •  需要被多个线程访问的对象是否线程安全 ,检查有无通过同步方 •  Socket 通讯是否存在长期阻塞问题 法保护 •  发送接收的数据流是否采用缓冲机制 •  同步对象上的锁是否按相同的顺序获得和释放以避免死锁

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档