热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

静态代码分析工具清单:开源篇(多语言)

http:hao.jobbole.comstatic_code_analysis_tool_list_opensource?utm_sourcehao.jobbole.com&ut

http://hao.jobbole.com/static_code_analysis_tool_list_opensource/?utm_source=hao.jobbole.com&utm_medium=relatedResources

静态代码分析工具清单:开源篇(多语言)

本资源由 
伯乐在线 – 
Juliesand 整理,您也想贡献一份力量?欢迎
加入我们 »

本文是一个静态代码分析工具的清单。共有8个工具,其中7个是开源工具,1个有免费使用的版本,都可以用于多种语言。

Codacy

Codacy几乎包含所有你需要的功能。比如免安装版本、支持多种语言、只关注提交版本中的新问题、企业级安全保障、发现新问题时可以收到通知、安全和性能检查、配置文件适用于所有项目、提供云或者预置版本、代码覆盖率、上千条规则、分析不同分支、灵活定制、代码重复率、搅拌器/复杂性、忽视不相关的问题保持分析结果简洁、估计修复问题的时间、项目统计、在GH/BB/GL上自动注释PR、文档记载每个问题、管理用户角色和权限、设置目标帮助修复技术债务。

通常Codacy官方支持语言版本都支持静态分析、代码重复率、代码复杂性和测试覆盖率。现在支持如下语言:Scala、Java、Javascript、Python、Ruby、PHP。

社区支持的语言是那些被用户加入Codacy的语言。当支持这些语言的版本可以完美的工作时,它可能只限于静态分析功能。包括CoffeeScript、CSS、C/C++、Dockerfile、SASS、Shell Scrip、Swift和TypeScript。

《静态代码分析工具清单:开源篇(多语言)》

  • 官网:https://www.codacy.com/
  • GitHub:https://github.com/codacy

 

Moose

Moose属于BSD/MIT,是一个基于Pharo环境的软件和数据分析开源平台。它提供多种服务,范围从导入和分析数据到模型化,再到测量、查询、挖掘和构建交互式可视化分析工具。目前支持的语言是C,C++,Java,Smalltalk,.NET,也许以后会添加更多。

《静态代码分析工具清单:开源篇(多语言)》

  • 最新版本:6.1
  • 官网:http://www.moosetechnology.org/
  • GitHub:https://github.com/moose/Moose
  • Humane assessment:http://humane-assessment.com/
  • Agile visualization:http://agilevisualization.com/

 

Copy/Paste Detector(CPD)

PMD是一个源代码分析器。它寻找常见的编程缺陷,例如未使用的变量、空的catch块、多余的对象创建等等。支持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
  • 发布日期:2016年11月5日
  • 官网:https://pmd.github.io/
  • GitHub:https://github.com/pmd

 

Pretty Diff

Pretty Diff联合多个语言解析器为当前流行的网络语言比较工具创造了一个能够识别语言差异的工具。它可以立刻比较简化的代码和它对应的开发环境。

因为这个工具包含多个语言解析器执行美化操作,所以有大量的可用功能和更多的可能。

《静态代码分析工具清单:开源篇(多语言)》

  • 最新版本:2.1.15
  • 发布日期:2016年12月4日
  • 官网:http://prettydiff.com/
  • GitHub:https://github.com/prettydiff/prettydiff

 

SonarQube

主要功能:

1. 编写干净的代码:SonarQube提供一份关于源代码整体健康情况的概述。更重要的是,它将在新代码中发现的问题高亮显示。使用项目中的质量门设置,你将可以轻易的修复漏洞,机械的改善代码。

2. 检测错误:代码分析器配备强大的路径敏感数据流引擎,可以严格检测错误。比如空指针引用、逻辑错误、资源泄漏等等。

3. 多语言:超过20个代码分析器可以使用,SonarQube为每个主流编程语言提供一个代码分析器:C/C++、Javascript、C#、Java、COBOL、PL/SQL、PHP、ABAP、VB.NET、Python、RPG、Flex、Objective-C、Swift、Web等等。每个分析器提供大量的规则以便定位普遍的和特定语言的质量问题。应用程序经常一次使用几种编程语言,例如[C#,C++和Javascript]或者[Java,Javascript和HTML]。SonarQube自动检测这些语言,调用对应的分析器。

4. 开发运营一体化:SonarQube希望成为开发运营生态系统的一部分,因此使用网勾或广泛的数据接口将它集成入CI引擎、提升渠道等。

5. 集中控制质量:为开发者、技术领导、管理者和负责几个或者几千个项目的决策层提供一个代码质量共享的愿景。

 

《静态代码分析工具清单:开源篇(多语言)》

  • 最新版本:6.2
  • 发布日期:2016年12月14日
  • 官网:https://www.sonarqube.org/
  • GitHub:https://github.com/SonarSource/sonarqube

 

SourceMeter

SourceMeter是一个创新的精确静态源代码分析工具,可用于C/C++,Java,C#,Python语言和RPG项目。这个工具使在开发时仅从源代码中寻找系统薄弱点成为可能,不需要模拟生存条件。

这个工具还集成了最好的免费可用的静态检查器工具(Cppcheck,PMD,FindBugs,FxCop,Pylint),并且以统一的方式呈现它们的结果。

使用这些分析结果,被分析的源代码质量在短期和长期都可以直接改善和开发。

功能有限的免费版本可用于所有编程语言。

《静态代码分析工具清单:开源篇(多语言)》

  • 官网:https://www.sourcemeter.com/

 

Squale多语言

Squale(Software QUALity Enhancement)帮助处理软件的开发质量,项目主要关注两个方面:

开发增强质量模型:

  • 受已存在的标准(ISO-9126)和方法(GQM,McCall)启发;
  • 被著名的科研人员验证和改进,他们是Squale团队的一部分;
  • 处理技术和节约两方面的质量。

开发一个开源应用去帮助评估软件质量并随着时间提高它:

  • 基于第三方技术(商业的或者开源的)产生原始质量信息(例如度量标准);
  • 使用质量模型将这些原始信息合成为高层级的质量因素;
  • 所有这些都面向不同的语言,包括Java,C/C++,.NET,Cobol等。

《静态代码分析工具清单:开源篇(多语言)》

  • 最新版本:7.1
  • 发布日期:20011年5月26日
  • 官网:http://www.squale.org/
  • GitHub:https://github.com/bellingard/squale

 

Yasca

Yasca是一个2007年开始开发的源代码分析工具。它被称之为一个美化的正则表达式脚本加上一个其他开源工具集合器。

Yasca可以扫描检查很多语言的源代码、比如Java、C/C++、HTML、Javascript、ASP、ColdFusion、PHP、COBOL、.NET和其他一些语言。Yasca很容易和其他工具集成、包括FindBugs、PMD、JLint、Javascript Lint、PHPLint、CppCheck、ClamAV、RATS和Pixy。

Yasca设计的非常灵活,并且容易扩展。实际上,编写一个新的规则是很容易的,和想出一个正则表达式、它适用的文件扩展名或这个规则的名字一样简单。将那些信息放在插件目录下的一个文本文件中就可以运行Yasca了。

《静态代码分析工具清单:开源篇(多语言)》

  • 最新版本:2.21
  • 发布日期:2010年11月1日
  • 官网:http://www.scovetta.com/yasca.html
  • GitHub:https://github.com/scovetta/yasca

推荐阅读
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 这是一个愚蠢的问题,但我只是对此感到好奇.假设我在Pythonshell,我有一些我查询的数据库对象.我做:db.query(的queryString)该查询在0xffdf842c ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
author-avatar
手机用户2502898521
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有