`
alanwu
  • 浏览: 200561 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

zzCode Review的主要内容

阅读更多
http://blog.csai.cn/group.asp?gid=47&pid=1374

1. Code Review & Code Conventions
质量是衡量一个软件是否成功的关键要素。而对于商业软件系统,尤其是企业应用软件系统来说,除了软件运行质量、文档质量以外,代码的质量也是非常重要的。软件开发进行到编码阶段的时候,最大的风险就在于如何保证代码的易读性和一致性,从而使得软件的维护的代价不会很高。

在软件开发的过程中,以下几种情形随处可见:

1. 软件维护时间长,而且维护人员的积极性不高:
做过软件维护的开发人员,尤其是在接手不是自己开发产品的源码的时候,即使有良好的文档说明,仍然会对代码中冗长、没有注释的段落“叹为观止”。理解尚且如此困难,何况要修改或者增加新的功能。因此,很多开发人员不愿意进行软件维护的工作。

2. 新的开发人员融入团队的时间比较长:
除了没有良好的培训、文档等有效的机制以外,每个人一套的编码风格,也容易造成新成员对于已有代码的理解不够,甚至出现偏差。

编码规范,作为解决以上问题的方案已经得到了很长时间的应用。而在产品或者项目实际开发的过程中,仅有Code Conventions是不能解决Code的问题的。它往往和Code Review配合,作为代码质量保证的手段。
1.1. Code Review的层次与内容
Code Review就是审查代码的质量。根据形式分为两种,一种是交叉代码审查,就是自己的代码由他人来检查,就象检查作业一样;另一种是代码会审,就是以会议的形式,大家共同审核代码的质量。

Code Review 的目的有[2]:
2 在项目早期就能够发现代码中的BUG;
2 帮助初级开发人员学习高级开发人员的经验,达到知识共享;
2 避免开发人员犯一些很常见,很普通的错误;
2 保证项目组人员的良好沟通;
2 项目或产品的代码更容易维护;

一般情况下,Code Review的内容与层次如下:
2 编码风格与代码规范一致性:检查代码是否符合编码规范,确保所有人写的代码基本一致;
2 代码满足基本的功能要求:检查代码的逻辑实现,以及单元测试的编写策略,确认实现功能性需求;
2 代码满足性能等非功能性需求:非功能性需求一般不便于测试,需要借助一定的工具和Review人员的素质,针对编码中对于性能影响的瓶颈给出解决方案;
2 去除冗余,提高代码可读性:适当使用 Refactorying技术,去除代码中的Bad Smell;如果有需要,可以Refactorying to Pattern。

1.2. Code Conventions的尴尬境地
从Code Review的层次分析中我们可以看到,Code Conventions是其基础。而实际的情况是,在软件开发中,两者都沦为“宣传口号”,而非切实执行的实践。
造成这种情形的原因有二:
1. Code Conventions是开发过程的“道德”而非“法律”:很多时候,由于没有有效的工具或者辅助手段的支持,是否遵守编码规范是依靠开发人员的“道德素养”-自觉遵守,而非实际考核的指标;
2. Code Review的基石不牢:在第一种原因的影响下,Code Review执行的过程中,如果花费了大量的时间在代码规范的检查上,那么对于更为重要的程序执行逻辑、性能、易读性等的评审投入的精力就有限的;而这种情况反过来也使得对于编码规范的检查,通常都是走过场。最后,还是每个人一套规范,只要最终交付的产品完成指定的功能就可以啦。

分享到:
评论

相关推荐

    dbutil:数据库元数据tool

    * @see cn.zzcode.listener.ColumnEventListener#event(cn.zzcode.listener.event.ColumnEvent) */ public void event(ColumnEvent event) { System.out.println(event.getColumnDefinition().getC

    智者百度风云榜关键词采集器.zip

    - "ZzCode.DLL":这可能是一个动态链接库文件,包含了一些共享函数或模块,为"SpiderBaiduTop.exe"提供功能支持。 - "SpiderBaiduTop.exe":这是程序的主执行文件,负责执行关键词采集和分析的任务。 - "说明.htm":...

    《C语言课程设计案例精编》源代码.rar

    "站点说明.url"可能是一个链接,指向一个在线资源,比如作者的网站或者论坛,那里可能有更多关于课程设计的讨论、更新或答疑等内容,为学习者提供了一个互动和交流的平台。 "50842032C"看起来像是一个文件名,根据...

    VC大全(精华版)源代码

    Visual C++是Microsoft公司推出的一款集成开发环境,主要用于编写Windows平台上的应用程序,包括控制台程序、图形用户界面应用以及Windows服务等。 在VC编程中,开发者可以利用Microsoft的MFC(Microsoft ...

    易语言查询区号邮编号源码-易语言

    "易语言查询区号邮编号源码"是一个使用易语言编写的程序,主要用于查询中国的区号和邮政编码。这个程序可能包含了数据库操作、字符串处理、用户界面设计等多个方面的编程知识。 在易语言中,"源码"指的是程序的原始...

    C语言例程,经典例程

    2. "zzcode软件说明.txt" 这可能是一个文本文件,详细解释了这些例程所属的软件或代码库的使用方法和注意事项,包括版本信息、版权声明、许可协议等。 3. "站点说明.url" 这是一个URL快捷方式,可能链接到一个网站或...

Global site tag (gtag.js) - Google Analytics