轉(zhuǎn)自:https://blog.csdn.net/liwg06/article/details/56349789/旋恼,只限本人個人學習。侵刪统台。
本文是一個靜態(tài)代碼分析工具的清單雕擂。共有8個工具,其中7個是開源工具贱勃,1個有免費使用的版本井赌,都可以用于多種語言。
Codacy幾乎包含所有你需要的功能贵扰。比如免安裝版本仇穗、支持多種語言、只關(guān)注提交版本中的新問題戚绕、企業(yè)級安全保障纹坐、發(fā)現(xiàn)新問題時可以收到通知、安全和性能檢查舞丛、配置文件適用于所有項目耘子、提供云或者預置版本、代碼覆蓋率球切、上千條規(guī)則拴还、分析不同分支、靈活定制欧聘、代碼重復率片林、攪拌器/復雜性、忽視不相關(guān)的問題保持分析結(jié)果簡潔、估計修復問題的時間费封、項目統(tǒng)計焕妙、在GH/BB/GL上自動注釋PR、文檔記載每個問題弓摘、管理用戶角色和權(quán)限焚鹊、設(shè)置目標幫助修復技術(shù)債務(wù)。
通常Codacy官方支持語言版本都支持靜態(tài)分析韧献、代碼重復率末患、代碼復雜性和測試覆蓋率。現(xiàn)在支持如下語言:Scala锤窑、Java璧针、JavaScript、Python渊啰、Ruby探橱、PHP。
社區(qū)支持的語言是那些被用戶加入Codacy的語言绘证。當支持這些語言的版本可以完美的工作時隧膏,它可能只限于靜態(tài)分析功能。包括CoffeeScript嚷那、CSS胞枕、C/C++、Dockerfile魏宽、SASS曲稼、Shell Scrip、Swift和TypeScript湖员。
官網(wǎng):https://www.codacy.com/
GitHub:https://github.com/codacy
Moose屬于BSD/MIT,是一個基于Pharo環(huán)境的軟件和數(shù)據(jù)分析開源平臺瑞驱。它提供多種服務(wù)娘摔,范圍從導入和分析數(shù)據(jù)到模型化,再到測量唤反、查詢凳寺、挖掘和構(gòu)建交互式可視化分析工具。目前支持的語言是C彤侍,C++肠缨,Java,Smalltalk盏阶,.NET晒奕,也許以后會添加更多。
最新版本:6.1
官網(wǎng):http://www.moosetechnology.org/
GitHub:https://github.com/moose/Moose
Humane assessment:http://humane-assessment.com/
Agile visualization:http://agilevisualization.com/
PMD是一個源代碼分析器。它尋找常見的編程缺陷脑慧,例如未使用的變量魄眉、空的catch塊、多余的對象創(chuàng)建等等闷袒。支持Java坑律、JavaScript、Salesforce.com Apex囊骤、PLSQL晃择、Apache Velocity、XML也物、XSL宫屠。
另外,它包含CPD(copy-paste-detector)焦除,一個復制粘貼檢測器激况。CPD尋找重復的代碼,支持Java膘魄、C乌逐、C++、C#创葡、Groovy浙踢、PHP、Ruby灿渴、Fortran洛波、JavaScript、PLSQL骚露、Apache Velocity蹬挤、Scala、Objective C棘幸,Matlab焰扳,Python,Go误续,Swift和Salesforce.com Apex吨悍。
最新版本:5.5.2
發(fā)布日期:2016年11月5日
官網(wǎng):https://pmd.github.io/
GitHub:https://github.com/pmd
Pretty Diff聯(lián)合多個語言解析器為當前流行的網(wǎng)絡(luò)語言比較工具創(chuàng)造了一個能夠識別語言差異的工具。它可以立刻比較簡化的代碼和它對應的開發(fā)環(huán)境蹋嵌。
因為這個工具包含多個語言解析器執(zhí)行美化操作育瓜,所以有大量的可用功能和更多的可能。
最新版本:2.1.15
發(fā)布日期:2016年12月4日
官網(wǎng):http://prettydiff.com/
GitHub:https://github.com/prettydiff/prettydiff
1. 編寫干凈的代碼:SonarQube提供一份關(guān)于源代碼整體健康情況的概述栽烂。更重要的是躏仇,它將在新代碼中發(fā)現(xiàn)的問題高亮顯示恋脚。使用項目中的質(zhì)量門設(shè)置,你將可以輕易的修復漏洞钙态,機械的改善代碼慧起。
2. 檢測錯誤:代碼分析器配備強大的路徑敏感數(shù)據(jù)流引擎,可以嚴格檢測錯誤册倒。比如空指針引用蚓挤、邏輯錯誤、資源泄漏等等驻子。
3. 多語言:超過20個代碼分析器可以使用灿意,SonarQube為每個主流編程語言提供一個代碼分析器:C/C++、JavaScript崇呵、C#缤剧、Java、COBOL域慷、PL/SQL荒辕、PHP、ABAP犹褒、VB.NET抵窒、Python、RPG叠骑、Flex李皇、Objective-C、Swift宙枷、Web等等掉房。每個分析器提供大量的規(guī)則以便定位普遍的和特定語言的質(zhì)量問題。應用程序經(jīng)常一次使用幾種編程語言慰丛,例如[C#卓囚,C++和JavaScript]或者[Java,JavaScript和HTML]诅病。SonarQube自動檢測這些語言哪亿,調(diào)用對應的分析器。
4. 開發(fā)運營一體化:SonarQube希望成為開發(fā)運營生態(tài)系統(tǒng)的一部分睬隶,因此使用網(wǎng)勾或廣泛的數(shù)據(jù)接口將它集成入CI引擎、提升渠道等页徐。
5. 集中控制質(zhì)量:為開發(fā)者苏潜、技術(shù)領(lǐng)導、管理者和負責幾個或者幾千個項目的決策層提供一個代碼質(zhì)量共享的愿景变勇。
最新版本:6.2
發(fā)布日期:2016年12月14日
官網(wǎng):https://www.sonarqube.org/
GitHub:https://github.com/SonarSource/sonarqube
SourceMeter是一個創(chuàng)新的精確靜態(tài)源代碼分析工具恤左,可用于C/C++贴唇,Java,C#飞袋,Python語言和RPG項目戳气。這個工具使在開發(fā)時僅從源代碼中尋找系統(tǒng)薄弱點成為可能,不需要模擬生存條件巧鸭。
這個工具還集成了最好的免費可用的靜態(tài)檢查器工具(Cppcheck瓶您,PMD,F(xiàn)indBugs纲仍,F(xiàn)xCop呀袱,Pylint),并且以統(tǒng)一的方式呈現(xiàn)它們的結(jié)果郑叠。
使用這些分析結(jié)果夜赵,被分析的源代碼質(zhì)量在短期和長期都可以直接改善和開發(fā)。
功能有限的免費版本可用于所有編程語言乡革。
官網(wǎng):https://www.sourcemeter.com/
Squale(Software QUALity Enhancement)幫助處理軟件的開發(fā)質(zhì)量寇僧,項目主要關(guān)注兩個方面:
開發(fā)增強質(zhì)量模型:
受已存在的標準(ISO-9126)和方法(GQM,McCall)啟發(fā)沸版;
被著名的科研人員驗證和改進嘁傀,他們是Squale團隊的一部分;
處理技術(shù)和節(jié)約兩方面的質(zhì)量推穷。
開發(fā)一個開源應用去幫助評估軟件質(zhì)量并隨著時間提高它:
基于第三方技術(shù)(商業(yè)的或者開源的)產(chǎn)生原始質(zhì)量信息(例如度量標準)心包;
使用質(zhì)量模型將這些原始信息合成為高層級的質(zhì)量因素;
所有這些都面向不同的語言馒铃,包括Java蟹腾,C/C++,.NET区宇,Cobol等娃殖。
最新版本:7.1
發(fā)布日期:20011年5月26日
官網(wǎng):http://www.squale.org/
GitHub:https://github.com/bellingard/squale
Yasca是一個2007年開始開發(fā)的源代碼分析工具。它被稱之為一個美化的正則表達式腳本加上一個其他開源工具集合器议谷。
Yasca可以掃描檢查很多語言的源代碼炉爆、比如Java、C/C++卧晓、HTML芬首、JavaScript、ASP逼裆、ColdFusion郁稍、PHP、COBOL胜宇、.NET和其他一些語言耀怜。Yasca很容易和其他工具集成恢着、包括FindBugs、PMD财破、JLint掰派、JavaScript Lint、PHPLint左痢、CppCheck靡羡、ClamAV、RATS和Pixy抖锥。
Yasca設(shè)計的非常靈活亿眠,并且容易擴展。實際上磅废,編寫一個新的規(guī)則是很容易的纳像,和想出一個正則表達式、它適用的文件擴展名或這個規(guī)則的名字一樣簡單拯勉。將那些信息放在插件目錄下的一個文本文件中就可以運行Yasca了竟趾。
最新版本:2.21
發(fā)布日期:2010年11月1日
官網(wǎng):http://www.scovetta.com/yasca.html