6月1的小米6不发货 发货了么

开发环境IDE(4)
这里列出了很多Java静态分析工具,每一种工具关注一个特定的能发挥自己特长的领域,我们可以列举一下:
检查.class
基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug
主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等
检查源文件
检查Java源文件中的潜在问题
主要包括:
空try/catch/finally/switch语句块
未使用的局部变量、参数和private方法
空if/while语句
过于复杂的表达式,如不必要的if语句等
CheckStyle
检查源文件
主要关注格式
检查Java源文件是否与代码规范相符
主要包括:
Javadoc注释
多余没用的Imports
Size度量,如过长的方法
缺少必要的空格Whitespace
现在有很多查看这些工具的处理结果的方式:
代码质量工具的一个问题是,它们有时候会给开发者提示很多不是错误的错误-也叫做假阳性(false positives)。当这种情况发生的时候,开发者可以学着忽略工具的输出信息,或者是把这些输出全部抛弃掉。
为了更好的利用这些工具的输出结果,给开发者一个更有用的视图,最好是有一种只关注我们想要的东西的方式。本文中,我们将找出其他有趣的方式来更好的利用所有这些有名的Java静态分析工具的输出结果,然后可以像查询数据库那样查询这些结果。
JArchitect和CQLinq
JArchitect是另一个静态分析工具,它弥补了其他工具(的不足),它是使用一种基于Linq(CQLinq)的代码查询语言像查询数据库那样来查询代码。
JArchitect3的以前版本,只能查询从JArchitect提取出来的分析数据,但是从JArchitect4开始,可以把许多其他静态分析工具的输出结果包含进来,然后使用CQLinq做查询。
让我们以PDT核心(的Php插件)的源码为例来说明如何在JArchitect中利用好这些静态工具的分析结果。
在查询分析结果以前,要遵守以下几个步骤:
用PMD,CPD,FindBugs和CheckStyle分析项目工程,生成包含分析结果的XML文件。
用JArchitect分析项目工程。
在JArchitect点击菜单“插件(Plugins)”-&“导入插件结果文件(Import Plugins Result Files)”把所有的XML文件导入到JArchitect中。
JArchitect默认给这些工具提供了许多有用的查询,并且这些查询都是可以很简单的进行定制的。
让我们来看一些CQLinq的查询:
获取的所有的问题(issue):
获取所有问题的请求很简单,但是没什么用处,因为如何利用23272个问题的分析结果确实是一个很大的挑战。
为了更好的利用这些工具的分析结果,我们可以用CQLinq来做过滤,然后只关注那些我们想要关注的东西。
根据所使用的检查工具发请求
我们可以修改第一个请求,然后添加一个查询工具的criteria。
据规则集发请求
我们也可以根据问题的规则集做过滤:
根据优先级发请求
也可以根据优先级做过滤:
出现次数最多的问题
知道哪些问题是被这些工具报告次数最多的是很有用的。
出现问题最多的类
知道哪些类包含了最多的问题是很有用的。
上图可以看出来,CheckStyle报告的上千个问题中有很多是可以忽略的。
前面的查询很有用,但是,它并没有给我们一个精确的类质量的信息,因为要考虑的另一个有用的维度就是代码行数(NBLinesOfCode)。一般来说代码行数多的类会包含更多的问题,基于这个考虑,我们可以修改之前的请求来计算出问题数目和代码行数(NBLinesOfCode)的比率。
上面的查询结果看上去很奇怪,前8个类的问题数和代码行数比率超过了200,也就是说一行代码有超过200个问题。
为了解释这种行为,我们看下CompilerAstParser的一些代码:
代码行数(NBLinesOfCode)指的是语句的数目而不是代码的物理行数,CompilerAstParser这个类声明了很多数组,每一个都包含了几千个物理行,但是,每一个数组都被认为是一个语句。
就像前面展示的出现次数最多的问题那样,每一个数组都把”+应该在一个新行上”这个规则违反了上千次。或许最好是应该把这样的规则从CheckStyle的配置文件中删掉。
出问题最多的方法
当静态警察工具报告了问题以后,定位解决问题的优先级是很有用的,尤其是当包含bug的时候。
bug可能存在于某一个特定的方法中,但是,知道还有多少方法也受这个bug的影响是非常有用的。知道了出问题最多的这个方法做好事尽快把它解决掉。
使用CQLinq,我们可以把这些工具的结果和JArchitect的结果结合起来创建出更复杂的查询,然后把这些检查规则添加到构建过程中去。
问题的趋势
工程中有问题并不是异常情况,我们甚至可以说是正常的,但是,我们要检查工程的质量趋势。如果随着工程的更新和演化问题数目增加了,将会是一个很坏的指标。
JArchitect提供了趋势监控特性来创建趋势图。趋势图是根据分析时间记录的特定维度上的值创建出来的。默认有50多个趋势维度,也可以很简单定制趋势维度。
下面给Pmd问题创建一个趋势维度:
然后,你就可以很简单的创建趋势图在趋势维度上做监控,然后把它添加到JArchitect的操作面板中。
有了这个趋势图,我们就可以监视Pmd问题的进化,然后发现这个维度的问题随版本进化的原因。
定制JArchitect报表
JArchitect可以在列出了CQLinq查询的HTML报表中追加额外的报表区。
在CQLinq查询浏览面板中,一个特定的CQLinq组是用橙色的的边框包围的。
也可以把Pmd趋势图添加到报表中:
在HTML报表中,这些被添加进来的区域可以通过菜单访问:
这是被添加进Pmd查询报表中的页面:
JArchitect 4 对其他的静态分析工具是开放的,你也可以很简单的像本文说的那样把你自己的工具做成它的插件。这样你就可以使用JArchitect的所有的功能来更好的利用那些有名的java静态分析工具的分析结果。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
(1)(2)(9)(4)(3)(2)(1)(6)checkstyle的安装及使用
1.下载eclipse插件
下载后,把里面的两个文件夹plugins和 features下面的文件分别拷贝到eclipse目录下面对应的plugins和features目录
2.如果你就这样直接启动eclipse 可能会出现ClassNotFoundExceptions 等错误,所以必须在启动eclipse的时候加上一个参数 -clean. 这样eclipse就可以更新它当前安装的许多插件信息
比如你得eclipse在d盘 那么就是 d:\eclipse\eclipse.exe -clean&
checkStyle 使用
选中工程,右键选择checkstyle-&check code with checkstyle,检查错误即可
2.PMD的安装及使用
解压文件中的压缩文件,将里面的两个文件夹plugins和&features下面的文件分别拷贝到eclipse目录下面对应的plugins和features目录,重启eclipse。
1、启动Eclipse IDE,打开工程,选择&"Windows"-&"Preferences"下的PMD项,其中Rules Configuration 项目可以配置PMD的检查规则,自定义检查规则也可以在此通过Import的方式导入到PMD中
2、配置好后,鼠标右键点击工程中需要检查的JavaSource,选择"PMD"-&"Check Code With PMD" ,之后PMD就会通过规则检查你的JavaSource了并且将信息显示在PMD自己的视图上。
3.findbugs的安装与应用
作为Eclipse的一个插件,可以将Findbugs集成到Eclipse中使用。
第一种是在线安装:在Eclipse的插件安装地址中输入并一路&next&就可安装成功。
第二种方式是下载Findbugs插件,将它放入Eclipse下的plusin文件夹,然后重启Eclipse即可。
阅读(...) 评论() &如何更好地利用Pmd、Findbugs和CheckStyle分析结果 plugins6 – ImportNew
关于作者:
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。(新浪微博:)
可能感兴趣的文章
可以的, 转载请保留出处和原文链接
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:@
广告与商务合作QQ:
– 好的话题、有启发的回复、值得信赖的圈子
– 写了文章?看干货?去头条!
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 活跃 & 专业的翻译小组
– 国内外的精选博客文章
– UI,网页,交互和用户体验
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
& 2017 ImportNew如何更好地利用Pmd、Findbugs和CheckStyle分析结果 plugins10 – ImportNew
关于作者:
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。(新浪微博:)
可能感兴趣的文章
可以的, 转载请保留出处和原文链接
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:@
广告与商务合作QQ:
– 好的话题、有启发的回复、值得信赖的圈子
– 写了文章?看干货?去头条!
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 活跃 & 专业的翻译小组
– 国内外的精选博客文章
– UI,网页,交互和用户体验
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
& 2017 ImportNew

我要回帖

更多关于 小米6发货时间 的文章

 

随机推荐