InfoQ

新闻

Google SoC系列:dcov——Ruby文档覆盖度分析器

作者 Werner Schuster译者 高昂 发布于 2007年6月26日 上午5时30分

社区
Ruby
主题
编程,
代码分析
标签
Google SoC,
报表,
编码标准,
文档,
静态分析,
代码覆盖率

静态分析工具对于保证代码质量来说非常有用,特别是如果这些工具被统一在一个可以自动构建过程中时。比如说rcov项目,可以帮助开发者检查Ruby测试代码的覆盖情况。在Google SoC的支持下,一个名叫dcov的新项目已可以帮助开发者分析Ruby代码的文档覆盖情况。

项目的开发者Jeremy McAnally就此解释道:

Dcov分析项目中的文档,提供(类似于rcov的)文档覆盖程度评价,并且(最终会)提供文档覆盖质量的评价。(分析将会)涉及各个功能部件:类、方法和模块。

覆盖质量分析将会使得dcov项目更为有趣:

目前这只是“代码中是否存在注释?”的问题,当质量分析开始应用时,那么事情将会变得越来越有趣。

检查功能部件是否存在注释是很有用的功能,但是这是否会导致开发者向代码中添加无用注释,目的仅是为了从dcov中得到更好的评级。决定注释是否有用将是相对困难的工作,所以Jeremy将这项功能作为dcov的一个可选择插件部分:

实际上我今天刚重构了代码,让分析器变成独立的、可热插拔的类,这样用户可以随意的选择启用或放弃这个功能模块。我希望我们可以有精通语言分析的志愿者加入进来,帮助我们制定衡量注释质量的标准。

dcov项目的文档输出也将基于现有的Ruby工具实现:

我正在试图为项目代码添加Ruby Reports(Ruport)的支持,这意味着,随着Ruport团队不断发布的新的文档输出格式,我们就可以使用这些不同的格式来输出文档报告。

Ruport是一个可拓展的报表系统,可以获得各种输入源的数据,包括(CSV、ActiveRecord models等)之后生成不同格式的报表(包括PDF、HTML等)。

既然dcov可以分析Ruby代码,那么再了解一下Jeremy为其使用何种工具也将十分有趣:

所有代码都通过RDoc的“parse_files”方法解析,之后我们得到一个经解析的数据结构并进行分析。开始的时候,我试图找到一个可以手工解析(或是使用类似于parse_tree来解析的方法),这会使结构更为明晰,但是我后来发现使用RDoc是个更好的选择:一来RDoc的实现更为简洁;二来RDoc是Ruby标准发布版中的一个部分,所有使用Ruby的人都会安装有RDoc类库。

RDoc通过Code Objects系列对象提供了访问Ruby代码及其相应注释的方法,Code Objects被用来表示类、方法等等,以及它们相应的注释。

目前dcov项目建立在RubyForge之上,并且Jeremy拥有一个Blog站点。同时Jeremy还在InfoQ上撰写有一本电子书“Mr. Neighborly's Humble Little Ruby Book”。

查看英文原文:Google SoC Series: dcov - Ruby documentation coverage analyzer

相关赞助商

InfoQ中文站Ruby社区,面向Web和企业开发的Ruby,主要关注Ruby on Rails,通过新闻、文章、视频访谈和演讲以及迷你书等为中国Ruby社区提供一流资讯。

没有回复

回复

独家内容

虚拟化导论

人们很容易想当然的以为虚拟化技术仅仅应用于服务器。而在现实中,虚拟化这一苏醒的概念正被运用于各个层面,其中包括网络,存储以及应用基础架构。在这篇导论中,InfoQ将深入每个方面,详尽向您描述虚拟化技术的运用以及其优点与不足。

用户故事估算技巧

作为开发者,同时也是ThoughtWorks的咨询师,Jay Fields总结了自己估算用户故事的有效技巧。

InfoQ案例研究:纳斯达克市场回放

在这篇案例研究中,InfoQ对Adobe AIR和Amazon的简单存储服务(Simple Storage Service ,S3)在NASDAQ市场回放程序(NASDAQ Market Replay)中的应用进行了详细的分析。

Hadoop基本流程与应用开发

本文介绍了Hadoop的基本流程、业务场景、代码范例以及集成测试。本文是《分布式计算开源框架Hadoop入门实践》三部曲的最后一部。

SOA在互联网系统中的应用

本视频对SOA在互联网系统中的应用进行了探讨,主要以支付宝在SOA的实践为例,主题从敏捷的应用程序(对象与组件)到敏捷的企业系统(应用集成与面向服务),再到敏捷的生态圈(网关与开放平台)。

用数字沟通——来自敏捷精灵的忠告

因为不知道如何反击,技术人员不得不听从业务人员的要求。这已经是老生常谈了。问题何在?开发人员用数字主要是进行计算的,而业务人员使用数字辅助决策。在下面的故事中,“敏捷精灵”鼓励一个开发人员用数字来描述与计算无关的问题。

Hadoop中的集群配置和使用技巧

本文介绍了Hadoop如何配置分布式框架运行环境,同时特别讲解了其中的一些细节。Hadoop可以单机跑,也可以配置集群跑,这里主要重点说一下集群配置运行的过程。本文是Hadoop入门实践三部曲的第二部。

JavaScript多线程编程简介

虽然有越来越多的网站在采用AJAX技术,但是开发复杂的AJAX应用仍然是个难题。本文探索了如何应用多线程缓解其中一些问题。