Qodana logo

Qodana

The code quality platform for teams

JavaScript Python Releases

Qodana 2022.2 已正式推出:CircleCI Orb 和超过 50 项新检查

Read this post in other languages:

Qodana 2022.2 已正式推出! 我们已将 CircleCI Orb 添加到 Qodana 集成工具包,并为 Java、Kotlin、Android、PHP、JavaScript 和 Python 提供了新的和改进的代码检查。

开始使用 QODANA

更多配合 Qodana 运行的 CI

Qodana 已经具有适用于 Azure PipelinesGitHub Actions 和 TeamCity 的插件。 从 2022.2 开始,我们准备了 CircleCI Qodana orb,它允许您使用 CircleCI 项目快速轻松地设置代码检查。  

另外,在 GitLabJenkins 或支持运行 Docker 镜像的任何其他 CI 中都可以轻松设置 Qodana。

新检查

正则表达式

正则表达式具有复杂和偶尔冗长的特性以及繁琐的语法。 为了改善体验,我们在这方面增加了新的检查。 此前这些检查仅适用于 Java,但现在已适用于所有语言。

简化的正则表达式

[\wa-z\d] 这样的正则表达式可以简化为 \w,因为 \w 已经包含 a-z 和数字。这有助于提高代码的整体可读性。

可疑的反向引用

\1(abc) 这样的正则表达式不能匹配任何东西。 这是因为 \1 引用的是评估 \1 时尚未定义的 abc。 此检查可防止正则表达式中的简单拼写错误并加快编辑速度。 

冗余 \d[:digit:] 或 \D 类元素

正则表达式 [\w+\d] 可以写为 [\w+],因为 \w 已经包含 \d。 这有助于提高代码的整体可读性。

Markdown 支持

列表项编号错误

1. 2. 4. 等有序列表项会被标记为编号不连贯。 在呈现的 Markdown 中,列表仍显示为 1. 2. 3.,但是不连贯将使源代码更难编辑。

Java、Kotlin 和 Android 检查

我们向以下类别添加并重新组织了检查:Javadoc、DevKit、Markdown、Kotlin 语言、样式、架构模式、性能和 JUnit 支持。 以下是 JUnit 集的几个示例。

JUnit:格式错误的声明

报告格式错误且可能无法被 JUnit 测试框架识别的 JUnit 测试成员声明。 此类声明可能产生未执行的测试或生命周期方法。

JUnit:不可构造的测试用例

报告由于构造函数无效而无法构造的 JUnit 测试用例。 此类测试用例不会被 JUnit 测试运行程序拾取,因此不会执行。

您可以在我们的公共 TeamCity 实例上实时看到这些示例。 请使用访客登录。 我们的文档描述了其他检查。

PHP 检查

我们在可能的错误、文档、样式、测试和 Laravel 类别中添加了检查,例如:

可能的错误:数字范围不匹配

在使用 returns int<0,10> 声明的函数中,标记会返回返回超出此范围的数字的语句。 在字段、字段构造函数和函数调用上也是如此。 

文档:不带变量名称的类型标记

PHPDoc 代码段 @param string 冗余,因为它没有说明 what 是字符串。 它应该被移除或替换为 @param string $argument,表示 argument 是字符串。 

Blade:由于字符串文字中的圆括号不成对而导致的解析错误

及早检测字符串文字中的不成对圆括号,后续由模板引擎 Blade 解析。

要从分析中添加或排除特定检查,您可以自定义默认检查配置文件或创建一个全新的配置文件。 您可能还希望执行对您的编码准则或最佳做法至关重要重要的检查。 查看我们的 Qodana 文档获取更多信息。 

如果您对未来的博客主题有建议,或者想详细了解 Qodana 可以如何帮助您和您的业务,请在此处发表评论,在 Twitter 上提及我们,或发送电子邮件至 qodana-support@jetbrains.com 与我们联系。

您的 Qodana 团队

本博文英文原作者:

image description

Discover more