java中代码块的概述_Java代码质量工具–概述

java中代码块的概述

最近,我有机会在本地IT社区聚会上介绍了该主题。 这是基本演示:

Java代码质量工具

以及更有意义的思维导图:

但是,我认为我需要更深入地探讨这一主题。 此博客文章应该像是在此方向上进行进一步调查的起点。

1. CodePro Analytix
这是提高软件质量的好工具(Eclipse插件)。 它具有下一个关键功能:代码分析,JUnit测试生成,JUnit测试编辑器,类似代码分析,度量,代码覆盖率和依赖性分析。
2. PMD 它扫描Java源代码并查找潜在的问题:可能的错误,无效代码,次优代码,表达式过于复杂和重复代码。 3. FindBugs 它查找Java程序中的错误。 它可以检测各种常见的编码错误,包括线程同步问题,滥用API方法等。 4.科贝图拉 这是一个免费的Java工具,可计算测试访问的代码百分比。 它可用于识别Java程序的哪些部分缺少测试覆盖范围。 它基于jcoverage。 5.艾玛 它是基于字节码检测的快速Java代码覆盖工具。 它与现有工具的不同之处在于,它可以对大型企业软件项目进行覆盖范围分析,同时强调快速的个人开发。 6. Checkstyle 它是一种开发工具,可帮助程序员编写遵守编码标准的Java代码。 7. JBoss Tattletale JBoss Tattletale是一个工具,可以帮助您大致了解您正在从事的项目或您所依赖的产品。 该工具将递归扫描目录中的JAR文件,并生成链接和格式化HTML报告。 8. UCDetector UCDetector(必需代码检测器)是一个开源eclipse插件工具,用于查找不必要的(死)java代码。 它还尝试使代码最终,受保护或私有。 UCDetector还发现类之间的循环依赖关系。 9.声纳 Sonar是用于Java应用程序的连续质量控制工具。 其生活的基本目的是加入您现有的持续集成工具,以将所有开发项目置于质量控制之下。 10. XRadar XRadar是一个开放的,可扩展的代码报告工具,该工具可以生成有关系统当前状态和一段时间内开发情况HTML / SVG报告。 使用DependencyFinder,JDepend,PMD,PMD-CPD,JavaNCSS,Cobertura,Checkstyle,XSource,JUnit,Java2HTML,ant和maven。 11. QALab QALab合并来自Checkstyle,PMD,FindBugs和Simian的数据,并将其显示在一个合并的视图中。 QALab会跟踪一段时间内的变化,从而使您可以看到一段时间内的趋势。 您可以告诉天气违反次数增加或减少的情况-在每个文件或整个项目中。 它还绘制了该数据的图表。 QALab可以插入Maven或ant。 12. Clirr Clirr是用于检查Java库与旧版本的二进制和源兼容性的工具。 基本上,您给它提供了两组jar文件,Clirr会转储出公共api中的更改列表。 可以将Clirr Ant任务配置为在检测到不兼容的api更改时中断构建。 在连续集成过程中,Clirr可以自动防止意外引入二进制或源兼容性问题。 13. JDiff JDiff是一个Javadoc doclet,当比较两个API时,它会生成所有以任何方式删除,添加或更改的所有包,类,构造函数,方法和字段(包括其文档)HTML报告。 这对于准确描述产品的两个版本之间发生了什么变化非常有用。 仅比较每个版本的API(应用程序编程接口)。 它不比较源代码在执行时的功能。 14.吉林特 它通过执行数据流分析和构建锁图来检查您的Java代码并查找错误,不一致和同步问题。 15. JDepend JDepend遍历Java类文件目录,并为每个Java包生成设计质量指标。 JDepend允许您根据其可扩展性,可重用性和可维护性自动衡量设计的质量,以有效地管理和控制软件包的依赖性。 16. cloc cloc计算许多编程语言中源代码的空行,注释行和物理行。 17. Dependometer Dependometer对软件系统中的物理依赖关系进行静态分析。 Dependometer验证针对将系统构造为类,包,子系统,垂直切片和层的逻辑体系结构的依赖性,并检测这些结构元素之间的循环。 此外,它在不同的抽象层上计算许多质量指标,并报告对已配置阈值的任何违反情况。 18. Hammurapi Hammurapi是一个开放源代码检查工具。 它的发布带有100多个检查员,他们检查代码的不同方面:符合EJB规范,线程问题,编码标准等等。 19. JavaNCSS JavaNCSS是一个简单的命令行实用程序,它测量Java编程语言的两个标准源代码指标。 针对每个类和/或每个功能,全局收集度量。 20. DCD DCD在Java应用程序中找到无效代码。 21.甲级 Classycle的分析器分析Java应用程序或库中的静态类和包依赖性。 这对于查找类或包之间的循环依赖关系特别有用。 Classycle与JDepend相似,后者也进行依赖关系分析,但仅在程序包级别。 22. ckjm 程序ckjm通过处理已编译的Java文件的字节码来计算Chidamber和Kemerer的面向对象的度量。 该程序为每个班级计算Chidamber和Kemerer提出的以下六个指标。 23. Jameleon Jameleon是一个自动测试框架,技术用户和非技术用户都可以轻松使用。 Jameleon背后的主要概念之一是创建一组代表应用程序不同屏幕的关键字或标签。 可以用Java定义自动执行每个特定屏幕所需的所有逻辑,并将其映射到这些关键字。 然后,可以使用不同的数据集来组织关键字以形成测试脚本,而无需深入了解应用程序的工作方式。 然后,将测试脚本用于自动化测试并生成手动测试用例文档。 24. DoctorJ DoctorJ在以下功能区域中分析Java代码:文档验证,统计信息生成和语法分析。 25.麦克尔 Macker是Java开发人员的构建时体系结构规则检查实用程序。 它的目的是为程序员始终梦dream以求的项目构想建模,然后打破-这有助于保持代码的清洁和一致。 您可以定制规则文件以适合特定项目的结构,或者为您的代码编写一些通用的“良好实践”规则。 麦克尔(Macker)不会试图将别人的规矩推到您的喉咙; 它非常灵活,并且编写规则文件是每个唯一项目的开发过程的一部分。 26.鱿鱼 Squale是一个定性平台,可以分析多语言软件应用程序,以清晰,全面地显示其质量:高级经理的高级要素和开发团队的实用指标。 27. SourceMonitor 免费软件SourceMonitor可以让您查看软件源代码的内部,以查明您拥有多少代码并确定模块的相对复杂性。 例如,您可以使用SourceMonitor来识别最有可能包含缺陷并因此需要正式审核的代码。 28. Panopticon Panopticode项目提供了一组开源工具,用于收集,关联和显示代码指标。 29. Eclipse Metrics插件 提供用于Eclipse平台的指标计算和依赖性分析器插件。 用平均值和标准偏差测量各种指标,并检测包装和类型相关性中的周期并对其进行绘图。 30. QJ-Pro QJ-Pro是面向软件开发人员的全面软件检查工具。 开发人员可以在编写程序时自动检查其Java源代码并提高其Java编程技能。 QJ-Pro提供了描述性Java模式,用于解释易于出错的代码构造并提供解决方案。 31.轮回 Byecycle是一个用于Eclipse的自动安排依赖性分析插件。 它的目标是使您在看到错误的代码时感到恶心,并在看到良好的代码时感到高兴。 32.科夸 Coqua测量5种不同的Java代码质量指标,为管理人员提供概述和历史记录,并为开发人员提供详细的代码视图。 可以为每个团队定义指标。 是大中型和/或海上项目的理想选择。 33.依赖查找器 从大多数Java编译器生成的Java类文件中提取依赖关系和OO度量。 34.Jalopy Jalopy是一种易于配置的源代码格式化程序,可以检测和修复Java代码中可能出现的许多代码约定缺陷。 Jalopy更像是代码修复程序,而不是代码检查程序。 Jalopy插件适用于大多数IDE,并且在大多数情况下,它们可以与IDE无缝衔接。 35. JarAnalyzer JarAnalyzer是用于.jar文件的依赖项管理工具。 JarAnalyzer将分析给定目录中的所有.jar,并确定每个之间的依赖关系。 输出格式包括xml(包含用于将其转换为html的样式表)和GraphViz DOT,使您可以生成显示.jar文件之间关系的可视化组件图。 xml输出包括重要的设计指标,例如传入和传出耦合,抽象性,不稳定性和距离。 还有一个可用的Ant任务,允许您将JarAnalyzer包含在构建脚本中。 36.冷凝器 冷凝器是用于查找和删除重复的Java代码的工具。 与仅查找重复代码的工具不同,Condenser的目的是在安全的地方自动删除重复的代码。 37.救济 Relief对Java项目提供了新的外观。 依靠我们通过检查真实对象的形状,大小或在空间中的相对位置来处理真实对象的能力,它对Java包,类型和字段及其关系提供了“物理”视图,从而使它们更易于处理。 让我们快速讨论一下我们如何解释物理属性以及它如何帮助我们掌握项目特征。 38.股份公司 JCSC是一个功能强大的工具,可以根据高度定义的编码标准和潜在的不良代码来检查源代码。 该标准涵盖了类,接口,字段,参数等的命名约定。 还可以定义类型(类/接口)的结构布局。 就像在方法之前或之后以及以什么顺序放置字段一样。 可以通过可见性或按类型(实例,类,常量)定义顺序。 方法同样适用。 这些规则中的每一个都是高度可定制的。 通过定义在代码中何处放置空格以及何时使用花括号来增强可读性。 正确的JavaDoc的存在可以被强制执行,并且可以达到各种级别。 除此之外,它还会发现代码中的弱点-潜在的错误-例如空的catch / finally块,无默认切换,抛出“ Exception”类型,慢速代码。 39.汤匙 Spoon是一个完全支持Java 5的Java程序处理器。它提供了完整且细粒度的Java元模型,可以在其中读取和修改任何程序元素(类,方法,字段,语句,表达式等)。 通过使用纯Java模板引擎,可以将Spoon用于验证目的,以确保您的程序遵守某些编程约定或准则,或者用于程序转换。 40. Lint4j Lint4j(“ Lint for Java”)是静态Java源代码和字节码分析器,它检测锁定和线程问题,性能和可伸缩性问题,并通过执行类型,数据流和锁定图分析来检查复杂的合同,例如Java序列化。 41. Crap4j Crap4j是CRAP(变更风险分析和预测)软件度量标准的Java实现,这是一种轻度冒犯的度量标准名称,有助于保护您免受真正冒犯的代码的侵害。 42.路径查找器 Java PathFinder(JPF)是用于验证可执行Java字节码程序的系统。 它的基本形式是一个Java虚拟机(JVM),用作显式状态软件模型检查器,可系统地探索程序的所有潜在执行路径,以查找违反属性的行为,例如死锁或未处理的异常。 与传统的调试器不同,JPF报告了导致缺陷的整个执行路径。 JPF特别适合在多线程程序中发现难以测试的并发缺陷 43.烟灰 Soot可以用作优化或检查类文件的独立工具,也可以用作在Java字节码上开发优化或转换的框架。 44. ESC / Java2 Java版本2的扩展静态检查器(ESC / Java2)是一种编程工具,它通过对程序代码及其形式注释进行静态分析,尝试在带有JML注释的Java程序中查找常见的运行时错误。 用户可以通过用特殊格式的注释(称为编译指示)注释程序来控制ESC / Java2执行的检查的数量和种类。

此列表包括开源和免费工具。 我故意排除了商业工具。 我确定还有更多工具。 如果您知道其中一些未在此处列出的信息,请在此帖子中添加评论。

别忘了分享!

参考: Java代码质量工具-我们的JCG合作伙伴 Orest Ivasiv的概述 ,摘自Knowledge Is Everything博客。


翻译自: https://www.javacodegeeks.com/2012/10/java-code-quality-tools-overview.html

java中代码块的概述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js原型、原型链、作用链、闭包全解

https://www.2cto.com/kf/201711/698876.html 【对象、变量】 一个对象就是一个类,可以理解为一个物体的标准化定义。它不是一个具体的实物,只是一个标准。而通过对象实例化得到的变量就是一个独立的实物。比如通过一个对象定义了“人”,通过…

Mysql 简介

一 简介:MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。MySQL AB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。 1.MySQL是一种数…

python高阶函数闭包装饰器_5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器...

一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能。 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式。 高阶函数+函数嵌套+闭包 &#xff…

Matlab 画图字体,字号的设定,图片大小和比例

figure_FontSize12; set(get(gca,XLabel),FontSize,figure_FontSize,Vertical,top); set(get(gca,YLabel),FontSize,figure_FontSize,Vertical,middle); set(findobj(FontSize,12),FontSize,figure_FontSize); %这4句是将字体大小改为8号字,在小图里很清晰 %set(gcf…

使用Speedment和Spring创建REST API

随着Spring Boot的第4版发布,为Web开发企业应用程序变得非常容易。 代表开发人员仍然需要大量时间的事情是,例如在Hibernate中对现有数据库进行建模,以获取数据的面向对象的视图。 在本教程中,我们将探索如何与开源一起使用开源工…

Phpstorm界面不停的indexing,不停的闪烁

选择 File->Invalidate Caches / Restart...->Invalidate and Restart,就行了!转载于:https://www.cnblogs.com/php-no-2/p/9848606.html

Matlab 集群计算平台搭建

家庭云服务器高阶应用:通过Matlab分布式计算来演示所谓的“家庭云计算”(非云储存)(转)Matlab是强大的计算软件,这不需要过多介绍了,大到航天航空领域,小到计算方程式,Matlab无处不在。 像是这种…

c打印无符号整数_C语言基础知识:printf的输出格式,C/C++语言编程讲解

C语言基础知识:printf的输出格式printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为转换…

CGI简介

原始的HTML語言是設計用來展現靜態的資料,它讓人使用一種簡單的語法展現出豐富的多媒體資料,就像廣告看板一樣。 由於WWW具有相當大的商業用途,因此推出後大受歡迎。可是單純的靜態展示好像缺少了什麼? 如果使用者需要的資料具有時效性&…

数据分析——pyecharts

导入类库 1 from pyecharts import Pie, Bar, Gauge, EffectScatter, WordCloud, Map, Grid, Line, Timeline 2 import random make_point:标注,类似于matplotlib的text is_stack:堆叠,将同一图表中的不同图像堆叠显示 is_label_s…

第三方软件要使用QQ邮箱进行发邮件相关设置

1、要在QQ邮箱的设置界面进行相关设置。 开启相应的服务器,然后获得相应的授权密码即可。 相关参考: http://service.mail.qq.com/cgi-bin/help?subtype1&&id28&&no1001256 2、对相应的服务器和接口进行设置 相关参考:…

CGI相关介绍

一、CGI 简介CGI 是 Common Gateway Interface 的 简 称 。 其 主 要 的 功 能 是 在WWW 环 境 下 , 藉 由 从 客 户 端 传 递 一 些 讯 息 给 WWW Server , 再由 WWW Server 去 启 动 所 指 定 的 程 式 码 来 完 成 特 定 的 工 作 。所 以 更 明 确 的…

mapreduce 聚合_MapReduce:处理数据密集型文本处理–局部聚合第二部分

mapreduce 聚合这篇文章继续进行有关使用MapReduce进行数据密集型处理的书中实现算法的系列文章。 第一部分可以在这里找到。 在上一篇文章中,我们讨论了使用本地聚合技术来减少通过网络进行混洗和传输的数据量的方法。 减少传输的数据量是提高MapReduce作业效率的主…

最常出现的字符串 Most Common Word

2018-10-26 00:32:05 问题描述: 问题求解: 方法一、Trie 最长出现的字符串,最容易想到的解法就是Trie树了,于是首先使用Trie树进行了实现,代码量有点大,当然了是可以A掉的,只是对于这种Easy的题…

docker启动odoo提示module没有安装_Ubuntu20.04通过docker安装微信

到目前为止,在ubuntu20.04上使用wechat最简单的方式不是wine,而是用docker。今天就传授大家一个一定可以使用的docker安装的wine版本。首先,安装一下docker:sudo apt install docker.io sudo systemctl enable --now dockersudo s…

mysql如何在一个表中插入数据的同时,更新另一个表的数据?

三种方案,你看看哪个比较适合你1,适用于学生: 写两个方法,一个新增一个更新,在新增完了以后马上去查询一下,按主键倒叙排列,取到最新插入的id,前提主键是自增的且不是uuid,然后把查到的主键返回出去作为形参让更新方法接收到,然后更新即可.2,适用于ssh框架: 写两个事务,事务的传…

Python Web初学解惑之 WSGI、flup、fastcgi、web.py的关系

首先声明这篇文章 是我从 豆瓣 上面看到的。 原文地址 http://www.douban.com/note/13508388/?start0&postok#last 看我之后 豁然开朗,对Web的理解有加深了一层,在此再感谢一下文章的作者。写这篇文章 :一 写下 自己的理解&#xff1…

继承Javadoc方法注释

尽管用于javadoc工具的JDK工具和实用程序页面通过实现和继承方法来描述Javadoc方法注释重用的规则,但是当实际上不需要使用{inheritDoc}时,很容易不必要地显式描述注释继承,因为会使用相同的注释隐式继承。 Java 8 javadoc工具页面在“ 方法公…

C++之手写strlen函数

代码: int strlen(const char *str){ assert(str!NULL); intlen0; while((*str)!\0) len;return len; } 这个函数实现起来较为简单,注意字符指针的有效性检查。 可参考:strlen、strcpy、strcat等字符串处理函数的实现 转载于:https://www.cnb…

mysql or优化_MySQL 语句优化

官方文档放这里,有什么代码先到官方文档查询:MySQL 8.0 Reference Manual :: 8 Optimization​dev.mysql.com优化涉及多个级别的配置,调整和测量性能。 根据工作角色(开发人员,DBA或两者的组合)&#xff0c…