Qodana
The code quality platform for teams
Qodana 2022.2 已正式推出:CircleCI Orb 和超过 50 项新检查
Qodana 2022.2 已正式推出! 我们已将 CircleCI Orb 添加到 Qodana 集成工具包,并为 Java、Kotlin、Android、PHP、JavaScript 和 Python 提供了新的和改进的代码检查。
更多配合 Qodana 运行的 CI
Qodana 已经具有适用于 Azure Pipelines、GitHub Actions 和 TeamCity 的插件。 从 2022.2 开始,我们准备了 CircleCI Qodana orb,它允许您使用 CircleCI 项目快速轻松地设置代码检查。
另外,在 GitLab、Jenkins 或支持运行 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 团队
本博文英文原作者: