2014-10-21 54 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 /休眠

希望幫助,乾杯

相關問題