2014-10-21 157 views
2

在我的(巨大)的公司,我们主要使用了代码分析两种工具:是否可以使用SonarQube来实现类CAST分析?

  • 声纳(Qube)需要 - 在发展,紧密独联体一体化,熟知和喜爱我的开发人员。
  • CAST - 过程需要。没有连续的测量,每年只有几次,例如主要发布。 CAST分析与开发完全分离,由单独的团队完成(我们只需发送交付软件包进行分析)。

我在开发方,你可能会猜到,我(有点)知道Sonar/PMD,但不是CAST。无论如何,我对CAST分析的频率并不满意,但这可能不是我能影响或改变的过程。

所以我想,如果它也许是可能的声纳类似的规则来实现,如CAST。当然不是全部,也不是全部,但至少是CAST分析版本没有什么大的惊喜。

我GOOGLE了全国各地,寻找类似“PMD规则声纳/ PMD”,但找不到任何东西。

为那些谁拥有的经验与两个声纳和CAST我的问题IST:

是否有可能实现声纳CAST分析规则(或其某种近似)?

回答

1

我知道,这两个工具,CAST和SonarQube。 您的问题的答案将取决于技术:您使用哪种语言进行开发?你使用任何框架?

不要告诉我只是J2EE,因为它涵盖了很多不同的语言:Java,JavaScript,JSP,HTML ......没有谈论框架(Spring,Hibernate,Struts,...)和每个解决方案将针对这些具有不同规则的语言使用不同的分析器。

CAST和SonarQube之间最主要的是,无论使用的词汇analyzis识别违反编程的最佳实践,但CAST也识别组件之间的联系(理由是慢)。所以CAST会有一些指标,如扇入/扇出和一些额外的规则(他们命名为架构或结构),如避免从表示层到数据层的直接访问。此外,它还附带了一些xml文件来分析框架组件。

这种规则可以代表一个额外的20%,但这又是非常依赖于语言。而且这两种工具的版本也不同,因为发行版之间的规则数量可能会有所不同。

不,我认为并非所有这些“架构”规则都可以用SonarQube来实现。然而,他们并不都非常重要,所以你不要错过这么多。

我想你公司使用CAST作为一些质量门? 在这种情况下,我会建议与使用CAST的人一起工作,以确定哪些CAST规则对他们至关重要,并可能触发NoGo或KO。只要在这里发布这些规则,我相信你会得到一些好评。

不要犹豫,要求进一步的精度。 此致敬礼。

+0

首先,感谢你详细的答案。 我们使用JSF和(特别是在我的项目中)使用JavaScript,由JBoss堆栈上的JPA/Hibernate提供支持。所以,当然,很多东西。我们确实有QG,但我认为CAST分析不会带来KO。实际上,我被告知CAST是一种“行业标准”,具有标准化的规则和指标。所以我天真地寻找“CAST规则为PMD /声纳”。嗯,我不想跳入CAST内部... 谢谢你的提示。 – lexicore 2014-10-23 11:20:51

+0

我想在你的公司购买CAST的人会告诉你,这是一个标准,考虑到他们支付的价格。特别是,如果他们每年只使用两次,并且不会KO任何版本的应用程序。 “标准”标签可能是他们可以假装购买的唯一价值。 – Qualilogy 2014-10-23 17:21:54

+0

如果您专注于Java/Javascript,CAST不会比SonarQube有更多的规则,也没有什么关键的。如果我们补充说CAST并不是一个真正的开发工具,因为它不能很好地融入持续集成过程,并且SonarQube具有更好,更有价值的接口,所以不要花时间使用CAST。 – Qualilogy 2014-10-23 17:27:08

2

我相信,一套在SonarQube可用规则应该涵盖的你与CAST检查规则99%。如果你在SonarQube的集合中找不到来自CAST的有价值的规则,请随时查询stackoverflow。

1

我们在公司的开发环境中使用sonarqube,但在我的项目中客户使用CAST作为SQ工具。声纳规则几乎覆盖了所有的CAST规则,对于那些没有的规则,我们使用基于squid java插件的XPATH编写(如果我记得很清楚,Sonar 3.8+)。

在XPATH中,我们覆盖了99%的CAST规则,我们写或多或少的30条规则。你可以在这个链接中找到更多的信息,还有一个基于类的AST表示的XPATH规则测试工具(链接在下面的链接中)。

http://docs.sonarqube.org/display/SONAR/Extending+Coding+Rules

顺便说一句,我们的项目是基于Java,甲骨文网络中心网站,春天,CXF和JPA /休眠

希望帮助,干杯

相关问题