每个工具都有其优点,但其中有一些因它的知名度、多功能性和有效性从众多选项中脱颖而出。 以下这8个工具,从代码构建到错误挤压,覆盖Java开发的全域。...例如,如果你的程序有一个类叫做MathClass,具有乘法和除法的方法,你可以创建JUnit测试来检 查不符合预期的值。输入数字2和5到乘法方法,你希望得到的结果为10。...当输入0作为除法方法的第二个参数时,你会期望给出一个数字计算异常的警告因为除 数不能为0: @Test标注规定,MathClass方法是一个测试用例。...FindBugs是一个匹配编译代码模式,而非使用bug数据库的工具。...当提供源代码时,FindBugs还可高亮显示检测出bug的代码行。 在它的3.0.1版本中,FindBugs继续保持着数以百计的bug描述。
有助于保持你的代码健康,并保持代码质量。 在Android上,最流行的代码分析工具是: Lint PMD Findbugs 我通常将静态代码分析脚本和相关文件保存在单独的文件夹中。...注意:还有其他方法可以压制lint警告。有关lint的更多信息,请访问官方网站。 Findbugs 静态代码分析工具,用于分析Java字节码并检测各种各样的问题。...测试 为了测试,我们将创建以下方法。 ? 重新构建你的项目,然后运行findbugs ./gradlew findbugs命令。如果它发现一些问题,你会看到类似下面的输出。 ?...注意:还有其他方法去压制findbugs警告。有关findbugs的更多信息,请访问官方网站。 PMD PMD是一个源代码分析器。...当你打开pmd.html报告文件,你将看到问题列表与说明和如何解决它们的建议。 ? 如果你想忽略此问题,请将以下规则添加到rules-pmd.xml文件中。 ? 注意:还有其他方法压制pmd警告。
FindBugs简介: FindBugs是一个开源的eclipse 代码检查工具,是一种白盒静态自动化测试工具; 它可以简单高效全面地帮助我们发现程序代码中存在的bug,bad smell,以及潜在隐患...再由我们自己重构代码,可以培养我们的编码意识及水平,形成好的习惯提高开发编码能力。 .../,如果我们使用的是JDK 1.6的话,可能会遇到以下问题。...如果eclipse的版本比较高,FindBugs的版本低于2.0.2话,运行findbugs命令时会出现以下的错误: An internal error occurred during: "Finding...:黑色的臭虫标志是分类红色的臭虫表示严重bug发现后必须修改代码橘黄色的臭虫表示潜在警告性bug 尽量修改每次使用Find Bugs(文件,文件夹上右键--> Find Bugs-->Find Bugs
通常我在那里放一些自定义的gradle脚本文件,proguard和静态代码分析工具的规则,如pmd,findbugs,lint。 在模板项目中查看 tools文件夹。...proguard Android proguard用来做三件事: 压缩未使用的代码 — 帮助你不超出64k限制 优化代码和apk 混淆代码 — 使你的APK难以做逆向工程 问题是混淆和代码优化显着增加了编译时间...用于调试构建的Proguard规则必须具有以下行以强制proguard忽略警告,跳过代码混淆和优化: ? 对于发布版本,设置proguard规则将会更加困难,因为几乎每个库都有自己的特定规则。...幸运的是,有一个开源代码库 — android-proguard-snippets,它包含所有主要库的proguard规则。 ?...strict mode Android StrictMode可帮助您检测不同类型的问题: 可关闭对象没关闭 在主线程中读写文件或者访问网络 uri 暴露 … 每当检测到这样的问题,它可以显示适当的日志或应用程序崩溃
SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。...(1) 不遵循代码标准 SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。...(2) 潜在的缺陷 SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。...(4) 重复 显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展示 源码中重复严重的地方。...通过以下介绍如何基于Jenkins和SonarQube完成代码质量持续检测。
以下是几种常用的Java代码静态分析工具: 1、FindBugs:FindBugs可以检测出潜在的bug和编码错误,例如空指针引用、资源未关闭等。...它通过静态分析字节码来进行检测,输出结果包括警告和错误信息。 2、PMD:PMD可以检测出代码中的不良实践和潜在的问题,例如过长的方法、未使用的变量等。...它通过静态分析源代码来进行检测,输出结果包括警告和错误信息。 3、Checkstyle:Checkstyle可以检查代码是否符合一定的编码规范。...可以通过配置pom.xml文件来执行代码规范检查。 代码规范检查工具可以帮助开发人员在编写代码时自动检测代码是否符合规范,并给出相应的警告和错误信息,以及修复建议。...以下是几种常用的Java代码重构技术: 1、提取方法(Extract Method):将一段代码提取成一个独立的方法,以提高代码的可读性和复用性。
先按产品切分,每个产品下面有很多工程,每个工程的部署流水线一般会分二方包,单独拿出来发布到私服。另外是应用程序包,会把代码生成部署包,这中间我们会加单测和 findbugs 检查。...2.3 CD.jenkins 实战 Jenkins 实际使用我们分为以下五点: JOB-DSL Nested View Pipeline Slaves Groovy JOB-DSL ,单项目构建好模型后...警告的时发邮件给相关人) 。...3.2.1 Gitlab 这是 Jenkins-GitLab 集成: 3.2.2 Dashboard 现在说 Dashboard ,比如pmd的警告可能会放在上面,下面会显示一些总共有多少个,高级别的什么样的...前年去做 findbugs 清理的时候,发现 findbugs 是非常管用的东西。
推荐插件: 类别 插件名称 用途 部署 JRebel for IntelliJ 商业热部署插件,需要许可证 日志 Grep Console 自定义设置控制台输出颜色,这样控制台就能比较明显的看到警告或者错误的信息...辅助 Save Actions 可以定义保存源码的时候做的额外事情,比如编译,格式化,优化代码的细节。...代码质量 SonarLint 代码质量插件,包括代码规范,代码复杂度等多项 代码质量 CheckStyle-IDEA 代码规范检查 代码质量 FindBugs-IDEA 著名的findbugs插件 代码质量...辅助 Save Actions 可以定义保存源码的时候做的额外事情,比如编译,格式化,优化代码的细节。...代码质量 FindBugs-IDEA 著名的findbugs插件 代码质量 MetricsReloaded 代码复杂度检查,用法:Help | Find
image 4.2 检查 java 代码质量 - FindBugs 与 CheckStyle 工具不同的是,FindBugs 不注重样式或者格式,而是试图寻找出真正的缺陷或者现在的性能问题。...image 上述代码执行结束之后,并没有什么意义,变量 a 的值也不会变成 dddbbbccc。因此,上述代码很可能是程序猿的 bug。为此 FindBugs 能找出这种问题 2....除了和 FindBugs 重复的纯 java 代码检查之外,Lint 能检查很多其他工具无法检查的内容,也更贴合 Android: ?...image A:配置 Profile,方便不同项目或者不同情况下使用不同的 Profile 进行检查 B:Lint 检查点 Group C:Lint 检查点具体描述 D:Lint 检查点警告级别设置 E...如果都不是的话,则报告错误 J:报出问题的方法:该方法中指定参数有: 需要报错的 Issue 发生问题的代码在语法树上的节点 发生问题的代码位置 警告的信息 4.3.3.5 生成 jar 包 完成上述步骤
阻止对内部网络的不安全请求 此次拟议的“专用网络访问保护”功能在初期阶段可能会误将一些合法的连接判定为恶意行为并加以阻拦,在Chrome 123中处于“仅警告”模式,在公共网站指导浏览器访问用户专用网络中的另一个站点之前进行检查...检查的内容包括验证请求是否来自安全环境,同时发送初步请求,通过称为 CORS 预检请求的特定请求,查看网站 B(例如环回地址上运行的 HTTP 服务器或路由器的网络面板)是否允许从公共网站访问。...server1=123.123.123.123"> (右滑查看更多) 当浏览器检测到公共网站试图连接到内部设备时,浏览器将首先向该设备发送预检请求。如果没有回应,连接将被阻止。...这样向内部网络设备发出的请求就会被自动阻止,除非该设备明确允许从公共网站进行连接。 在警告阶段,即使检查失败,该功能也不会阻止请求。...开发人员会在 DevTools 控制台中看到一个警告,让他们有时间在更严格的执行开始之前进行调整。
SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。...sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具来检测你的代码,帮助你发现代码的漏洞,Bug,异味等信息。...Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。...不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。...潜在的缺陷 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
SonarLint(Sonar) 代码质量管理 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括java、C#、C/C++、PL/SQL、Cobol、JavaScrip...、Groovy等等二十几种编程语言的代码质量管理与检测 Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题 1、不遵循代码标准 sonar可以通过PMD,CheckStyle...,Findbugs等等代码规则检测工具规范代码编写 2、潜在的缺陷 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的缺陷 3、糟糕的复杂度分布 文件、类、...图片 如果需要同步自定义的规则时,可以绑定到SonarQube ? 图片 ? 图片 ? 图片 查看检测的结果 ? 图片 对于代码中的警告我们不能视而不见 ?...图片 有了代码质量检测工具以后,在一定程度上可以保证代码的质量 对于每一个问题,SonarLint都给出了示例,还有相应的解决方案,教我们怎么修改,极大的方便了我们的开发 比如,对于日期类型尽量用LocalDate
一个例子是 FindBugs。 FindBugs通过 @Nullable和 @NonNull注解帮助管理null约定。我们可以在任何方法,字段,局部变量或参数上使用这些注释。...如果客户端代码在不检查 null参数的情况下调用此方法 ,则 FindBugs将在编译时生成警告。 4.2.使用静态代码分析 开发人员通常依靠IDE来编写Java代码。...使用代码自动补全和有用警告等功能,例如可能没有声明变量,在很大程度上对编码有帮助。一些IDE还允许开发人员管理API约定(API Contracts),从而消除对静态代码分析工具的需求。...要在IntelliJ中添加对这些注释的支持,我们必须添加以下Maven依赖项: org.jetbrains annotations...在以下部分中,我们将讨论处理null检查的其他方法 六.通过编码实践避免NULL检查 ---- 6.1.前提条件 编写早期失败的代码通常是一种很好的做法。
考虑以下几个原因,需要对该插件的源码进行重构。...FindBugs会完成对class文件的自动建模,在此模型的基础上对代码进行分析。按照在实际编写检测代码过程中的总结,把检测的实现方式分成四种方式,下面分别进行介绍。...OpcodeStackDetector类,是FindBugs中的一个抽象类,封装了对于获取代码特定参数的方法调用。...对于其代码分析,不能使用FindBugs模型进行分析,而是使用最原始的class代码进行分析,原始class代码的形式通过javap命令进行查看,下图展示示例代码。 ?...首先需要获取代码总行数的大小,获取的方式便是解析FindBugs建模后的第一行代码,找到关键词code-length后面的数值,即为代码的行数,解析代码如下所示: public int get_Code_Length
当你检测到 null 值时,可以选择抛出更具针对性的异常类型,如 IllegalArgumentException,并添加消息内容。...很多第三方库提供了类似的注解,且得到了不同工具的支持,其中使用较多的有: javax.annotation.Nonnull:由 JSR 305 提出,其参考实现为 com.google.code.findbugs.jsr305...SpotBugs 与 @NonNull、@CheckForNull SpotBugs 是 FindBugs 的后继者。...System.out.println(obj.toString()); } Checker Framework 默认会将 @NonNull 应用到所有的函数参数和返回值上,因此,即使不添加这个注解,以下程序也是无法编译通过的...Checker Framework 检测到了: // 这是 spring-core 中定义的类和方法 public abstract class StringUtils { // str 参数继承了全局的
, 移除无用指令 ; 混淆 Obfuscate : 混淆 Java 层代码 , 使用无意义的标识符替代 Java 中的类名 , 变量名 , 方法名 等名称 ; 预检 Preveirfy :...预检 Java 平台上预处理的代码 ; 开启 ProGuard 配置 : 在 build.gradle 构建脚本中的 " android / buildTypes " 层级中 , 配置 debug...: 引用的第三方库及服务 , 一般不进行混淆 , 去相应的开源页面 , 查找混淆配置 ; 遇到某个包或类编译遇到警告退出 , -dontwarn 配置该包不要爆出警告 ; 遇到没有找到的类 , 使用...-keep 不要混淆该类 ; 常用的混淆配置 : " -dontwarn " : 不要报出警告信息 , 如果出现警告 , 编译打包会被终止 ; # com 包名下不要爆出警告 -dontwarn com...kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.3.2' // 矢量图支持库 , 支持 5.0 以下版本手机使用矢量图
,但在确定目标的过程中,无法有效利用物体的内部的特征,即无法感知物体内部的信息,从而导致该类方法产生了很多误检 (错误目标框)。...CenterNet利用关键点三元组即中心点、左上角点和右下角点三个关键点而不是两个点来确定一个目标,使网络花费了很小的代价便具备了感知物体内部信息的能力,从而能有效抑制误检。...我们方法的名字叫 CenterNet,是一种 one-stage 的方法。 其抑制误检的原理基于以下推论:如果目标框是准确的,那么在其中心区域能够检测到目标中心点的概率就会很高,反之亦然。...因此,首先利用左上和右下两个角点生成初始目标框,对每个预测框定义一个中心区域,然后判断每个目标框的中心区域是否含有中心点,若有则保留该目标框,若无则删除该目标框,其原理如下图所示: 代码连接:https...下面一张图概括且很好的展示了deepsort的算法: Centernet+deepsort代码 https://github.com/kimyoon-young/centerNet-deep-sort
简单请求的 CORS 流程 除了上面图中的头信息,一般会有以下三个相关头信息: Access-Control-Allow-Origin 该字段是必须的。...当预检请求拒绝以后,在预检响应头中,不会返回 Access-Control-Allow- 开头的信息,并在控制台输出错误信息。 三、CSRF 1....概念 跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。...如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分)。 X-XSS-Protection: 1; mode=block 启用XSS过滤。...如果检测到跨站脚本攻击,浏览器将清除页面并使用CSP report-uri指令的功能发送违规报告。
领取专属 10元无门槛券
手把手带您无忧上云