O3c插件,是怎么检查出你那垃圾的代码?

网站建设4年前发布
39 0 0

你会对你用到都技术,好奇吗?,虽然我们都被称为码农,也都是写着代码,但因为所处场景需求的不同,所以各类码农也都做着不一样都事情。,有些人统一规范、有些人开发组件、有些人编写业务、有些人倒腾验证,但越是工作内容简单如CRUD一样的码农,用到别人提供好的东西却是越多。一会安装个插件、一会引入个Jar包、一会调别人个接口,而自己的工作就像是装配工,东拼拼西凑凑,就把产品需求写完了。,坏了,这么干可能几年下来,也不会有什么技术上都突破。因为你对那些使用都技术不好奇,不想知道它们是怎么实现的。就像阿里的P3C插件,是怎么检查代码分析出来我写的拉胯的呢?,P3C 是阿里开源代码库的插件工程名称,它以阿里巴巴Java开发手册为标准,用于监测代码质量的 IDEA/Eclipse 插件。,2023030615422446d6caa44fa0d80612428766726aab6ffc9ce7742,插件安装完成后,就可以按照编程规约,静态分析代码中出现的代码:命名风格、常量定义、集合处理、并发处理、OOP、控制语句、注释、异常等各项潜在风险,同时会给出一些优化操作和实例。,2023030615422774ba58688352193d3eb5092bad976f39c8f956254,在最开始使用这类代码检查都插件的时候,就非常好奇它是怎么发现我的屎山代码的,用了什么样都技术原理呢,如果我能分析下是不是也可以把这样都技术手段用到其他地方。,在分析这样一个代码检查插件前,先思考要从 IDEA 插件都源码查起,看看它是什么个逻辑,之后分析具体是如何使用都。其实这与一些其他的框架性源码学习都是类似的,拿到官网都文档、Git*** 对应的源码,按照步骤进行构建、部署、测试、调试、分析,进而找到核心原理。,P3C 以 IDEA 插件开发为例,主要涉及到插件部分和规约部分,因为是把规约检查的能力与插件技术结合,所以会涉及到一些 IDEA 开发的技术。另外 P3C 插件涉及到都技术语言不只是 Java 还有一部分 kotlin 它是一种在 Java 虚拟机上运行的静态类型编程语言。,当我们再往下翻看阅读的时候,就看到了一个关于 pmd 的东西。PMD 是一款采用 BSD 协议发布的Java 程序静态代码检查工具,当使用PMD规则分析Java源码时,PMD首先利用JavaCC和EBNF文法产生了一个语法分析器,用来分析普通文本形式的Java代码,产生符合特定语法结构的语法,同时又在JavaCC的基础上添加了语义的概念即JJTree,通过JJTree的一次转换,这样就将Java代码转换成了一个AST,AST是Java符号流之上的语义层,PMD把AST处理成一个符号表。然后编写PMD规则,一个PMD规则可以看成是一个Visitor,通过遍历AST找出多个对象之间的一种特定模式,即代码所存在的问题。该软件功能强大,扫描效率高,是 Java 程序员 debug 的好帮手。,那么 p3c-pmd 是什么呢?,2023030615422829af8c116317b2b2bf6501397be1c9ec13e585477,讲道理,说一千道一万,还得是拿出代码跑一下,才知道 PMD 具体是什么个样子。,这是一个类似 p3c-pmd 的测试工程,通过自行扩展重写代码监测规约的方式,来处理自己关于代码的审核标准处理。,问题类示例,单元测试,测试结果,其实有了 PMD 静态代码检查规约,能做都事情就很多,不是只对正在写的代码进行检查,还可以对不同阶段的代码进行分析和风险提醒,比如:准备提测阶段、已经上线完成,都可以做相应的监测处理。,而 Sonar 就是一个这样都工具,它是一个Web系统,可以展现静态代码扫描的结果,结果是可以自定义的,支持多种语言的原理是它的扩展性。https://www.sonarqube.org/,20230307014933724360b280d6b0ee54018796ebd7f7afbc3414201

© 版权声明

相关文章