惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
S
Securelist
H
Heimdal Security Blog
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
Spread Privacy
Spread Privacy
Cyberwarzone
Cyberwarzone
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
C
CERT Recently Published Vulnerability Notes
P
Proofpoint News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
人人都是产品经理
人人都是产品经理
C
Cisco Blogs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Engineering at Meta
Engineering at Meta
Project Zero
Project Zero
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
Cisco Talos Blog
Cisco Talos Blog
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
O
OpenAI News
P
Proofpoint News Feed
Google Online Security Blog
Google Online Security Blog
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
U
Unit 42
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
G
GRAHAM CLULEY
Apple Machine Learning Research
Apple Machine Learning Research
TaoSecurity Blog
TaoSecurity Blog
S
Security @ Cisco Blogs
C
Check Point Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
S
Secure Thoughts
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 最新话题
T
Tenable Blog
Latest news
Latest news
I
InfoQ

博客园 - Apolloge

Ext中的get、getDom、getCmp、getBody、getDoc的区别【转】 Extjs 模板的自定义格式化[转] IT项目开发的75条管理守则【转】 当 eval 返回的 json 值时,提示 Error: Invalid Label 的原因 说说C#下的动态可配置的扩展 介绍一个学习方面的网站 Internet Explorer的hasLayout属性 比较常用集合类如何选择 NET常用Request获取信息 UX、UI、UCD、Usability、IA等设计中的常见名词 IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法 中国古代四大神兽图释 软件版本号 中华流传十大吉祥图解 WEB2.0概念诠释 Javascript在页面加载时的执行顺序 URL格式规范 C#.NET 中的类型转换 Transact SQL小手册
为什么要进行Code Review?
Apolloge · 2007-03-02 · via 博客园 - Apolloge

目的:


    Code Review的主要目的,是通过开发人员之间的互相查看代码,来保证代码质量,以便交给测试人员的时候,起码保证代码质量是比较高的。这只是Code Review的一个主要功能,其实,Code Review还可以帮助新手学习高手的代码风格及编程思想,能快速提高新手的编程能力。


任务:

    其实Code Review主要检查代码中是否存在以下方面问题:代码的一致性、编码风格、代码的安全问题、代码冗余、是否正确设计以满足需求(性能、功能等等),具体内容如下:

  1. 完整性检查(Completeness)
        代码是否完全实现了设计文档中提出的功能需求
        代码是否已按照设计文档进行了集成和Debug
        代码是否已创建了需要的数据库,包括正确的初始化数据
        代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型
  2. 一致性检查(Consistency)
        代码的逻辑是否符合设计文档
        代码中使用的格式、符号、结构等风格是否保持一致
  3. 正确性检查(Correctness)
        代码是否符合制定的标准
        所有的变量都被正确定义和使用
        所有的注释都是准确的
        所有的程序调用都使用了正确的参数个数
  4. 可修改性检查(Modifiability)
        代码涉及到的常量是否易于修改(如使用配置、定义为类常量、使用专门的常量类等)
        代码中是否包含了交叉说明或数据字典,以描述程序是如何对变量和常量进行访问的
        代码是否只有一个出口和一个入口(严重的异常处理除外)
  5. 可预测性检查(Predictability)
        代码所用的开发语言是否具有定义良好的语法和语义
        是否代码避免了依赖于开发语言缺省提供的功能
        代码是否无意中陷入了死循环
        代码是否是否避免了无穷递归
  6. 健壮性检查(Robustness)
        代码是否采取措施避免运行时错误(如数组边界溢出、被零除、值越界、堆栈溢出等)
  7. 结构性检查(Structuredness)
        程序的每个功能是否都作为一个可辩识的代码块存在
        循环是否只有一个入口
  8. 可追溯性检查(Traceability)
        代码是否对每个程序进行了唯一标识
        是否有一个交叉引用的框架可以用来在代码和开发文档之间相互对应
        代码是否包括一个修订历史记录,记录中对代码的修改和原因都有记录
        是否所有的安全功能都有标识
  9. 可理解性检查(Understandability)
        注释是否足够清晰的描述每个子程序
        是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释
        使用一些统一的格式化技巧(如缩进、空白等)用来增强代码的清晰度
        是否在定义命名规则时采用了便于记忆,反映类型等方法
        每个变量都定义了合法的取值范围
        代码中的算法是否符合开发文档中描述的数学模型
  10. 可验证性检查(Verifiability)
        代码中的实现技术是否便于测试

posted @ 2007-03-02 15:27  Apolloge  阅读(801)  评论()    收藏  举报