代码质量对于任何软件项目的长期可维护性都非常重要。无论项目的大小如何,这一点都成立。在更大的项目中更为明显。

通常,高代码质量和可读性标准是通过同行代码审查过程来确保的。需要成本。

这就是静态分析工具和 linter 发挥作用的地方。Android Studio 和一般的 IntelliJ 提供了一些基本的格式化/检查功能。但是使用更多的外部工具可以轻松提高项目的代码质量,而不会带来太多麻烦。

重点介绍Detekt和Ktlin,它们是 Kotlin 的一些最受欢迎的工具。

检测

Detekt 是一种静态分析,主要用于检测“代码异常”,负责审查代码:它警告我这可能暂时有效,但以后可能会导致问题。由我们决定是否继续或现在修复它。

设置

如果您使用的是 Android Studio / IntelliJ ,我强烈推荐一个非常方便的IntelliJ 插件。如果没有,它作为Gradle 插件提供,但 IDE 集成将使体验变得更加轻松。

安装后,通过转到Preferences -> Tools -> Detekt并检查适合您需要的所有选项来启用 IntelliJ 插件。

启用插件后,它检测到的任何内容都会像 IDE 中的错误/警告一样突出显示。唯一的缺点是它不支持自动应用修复;您将必须手动解决问题:)

规则集

Detekt 带有大量规则集。这些是该工具将突出显示的内容。它们按类别分组,例如样式、性能等。您可以自定义规则或关闭其中的一些(或某些类别)。

默认情况下,所有这些都已启用。根据我的经验,几乎可以肯定您需要对这些规则进行一些自定义。例如,我倾向于在// TODO未来的工作中使用评论(是的,我经常这样做)。默认情况下,Dekekt 认为这是一种代码味道……我不同意 :)

这是 Detekt 的默认配置。当突出显示您希望自定义的内容时,只需进入默认配置文件并搜索规则 ID(在本例中查找它所属的规则集style)。然后创建你的detekt-config.yml,在 IntelliJ 插件首选项中声明它(见上文),你就完成了(不要忘记选中该Build upon the default configuration选项,以继承默认配置)。

然后关闭或自定义您的规则:

style:ForbiddenComment:active: false

对于规则的禁用之一,您可以使用标准@Suppress注释。

Ktlint

Ktlint 是一个 linter,这意味着它主要集中在查找(和修复)样式错误。

我喜欢该工具的理念是尽可能不进行配置。他们的目标是制定合理的默认规则,根据我的经验,他们做到了这一点。我不必更改默认规则,也没有发现烦人的规则。

设置

有很多方法可以安装该工具。您可以安装命令行工具,或选择与Maven、Gradle或IntelliJ/Android Studio集成。

对于 IntelliJ / Android Studio,您可以更改编码样式,以便内置 IDE 格式化工具生成与 Ktlint 兼容的代码。

ktlint applyToIDEAProject
在根文件夹下运行,更改当前项目的 IntelliJ 编码风格
ktlint applyToIDEA
用于更改所有项目的 IntelliJ 编码风格

用法

使用该工具最方便的方法是要求它检查您的代码并在可能的情况下自动更正问题。由于大多数规则都与样式相关,因此这不会破坏您的代码。

ktlint -F    在您的根文件夹中运行以 lint并自动修复所有 Kotlin 文件

为了不要忘记检查你的代码,有一个 Git 预提交钩子,它在提交代码之前运行并在出现错误时阻止你。

ktlint installGitPreCommitHook
运行安装一个预提交钩子(ktlint之前会git commit自动运行)

最后,为了抑制 lint 检查,只需用这个“神奇”的文本进行评论。

// ktlint-disable- or -/* ktlint-disable */
...
/* ktlint-disable */

可以让我们忽略的地方及时提醒代码,减少我们debug时间,提高工作效率。

Kotlin 的静态代码分析工具相关推荐

  1. 软文推荐:常用 Java 静态代码分析工具的分析与比较

    http://www.uml.org.cn/j2ee/201107114.asp 常用 Java 静态代码分析工具的分析与比较 作者:赵卓 , 发布于2011-07-11 , IBM 简介: 本文首先 ...

  2. PVS-Studio C/C++/C++11 静态代码分析工具

    PVS-Studio C/C++/C++11 静态代码分析工具 静态代码分析仪是一种检测代码缺陷.分析对比 商业代码的工具,它分析源代码和它生成的目标 文件,但并不实际运行源代码.应用于对安全性. 稳 ...

  3. 2021.C/C++静态代码分析工具

    静态代码分析工具 1 cppcheck 静态代码分析工具 1 cppcheck 静态代码分析工具 参考博客 使用cppcheck检测代码警告.错误 ubuntu下安装cppcheck sudo apt ...

  4. OOM分析(1) Android 源,如何分析android的OOM,与java静态代码分析工具

    用MAT分析OOM 很多OOM看似发生在bitmap 分配得时候,但它一般不是rootcause.根本原因都在于本应该自动释放的资源,因为代码的错误,而导致某些对象一直被引用(Reference),例 ...

  5. 如何分析android的OOM,与java静态代码分析工具

    2019独角兽企业重金招聘Python工程师标准>>> 用MAT分析OOM 很多OOM看似发生在bitmap 分配得时候,但它一般不是rootcause.根本原因都在于本应该自动释放 ...

  6. 静态代码分析工具列表分析---代码分析工具列表(30款工具)

    本文是一个静态代码分析工具的清单,共有30个工具.包括4个.NET工具.2个Ada工具.7个C++工具.4个Java工具.2个JavaScript工具.1个Opa工具.2个Packaging工具.3个 ...

  7. 静态代码分析工具清单:开源篇(各语言)

    本文是一个静态代码分析工具的清单,共有26个工具.包括4个.NET工具.2个Ada工具.7个C++工具.4个Java工具.2个JavaScript工具.1个Opa工具.2个Packaging工具.3个 ...

  8. 静态代码分析工具清单:开源篇

    http://hao.jobbole.com/static_code_analysis_tool_list_opensource_lang/?utm_source=blog.jobbole.com&a ...

  9. 静态代码分析工具汇总

    静态代码扫描,借用一段网上的原文解释一下(这里叫静态检查):"静态测试包括代码检查.静态结构分析.代码质量度量等.它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行.代码 ...

  10. 静态代码分析工具列表--常用静态代码分析工具介绍

    代码检测简介 本文是一个静态代码分析工具的清单,但是为公司产品需要付费使用.共有37个公司,有些公司包含多个工具.其中27个公司有多语言 工具,1个公司为PHP工具.2个公司为.NET工具.1个公司为 ...

最新文章

  1. SURF与SIFT比较分析
  2. 一个由跨平台产生的浮点数bug | 有你意想不到的结果
  3. 利用Flume将MySQL表数据准实时抽取到HDFS
  4. 揪出造成失败用户登录的应用主机名、数据库用户信息
  5. identity 1 1 mysql_identity在mysql中怎么用啊以下代码的错误在哪里
  6. NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))...
  7. asp.net MVC初学体会.
  8. 华中科技大学计算机考纲,华中科技大学硕士研究生入学考试824信号与线性系统考研大纲...
  9. 电脑word在哪_焦作市周边商务电脑办公入门培训
  10. 彩影2008 白金版 10.1 build 2010
  11. icinga2监控Netapp存储
  12. 实习笔记—— AOP开发II(AOP中Advice的类型)
  13. 小程序学习笔记--进阶之路
  14. 官方授权正版 Grapher 中文网站 专业 2D、3D 绘图和统计分析软件, 深入了解您的数据软件
  15. SWOT-Analyse, um Ihr Unternehmen profitab
  16. Java资料,海康威视java社招面试
  17. 浅谈搜索引擎工作原理
  18. Go基础编程:HTTP报文浅析
  19. 计算机网络面试——HTTP篇
  20. 使用类或css动画实现时钟

热门文章

  1. python高级用法使用手册(收藏)
  2. 破解绘声绘影x5的方法
  3. 如何查看Spark日志与排查报错问题
  4. VR全景虚拟校园提高学校的知名度和美誉度
  5. fw313r手机登录_迅捷(FAST)fw313r路由器初始密码_登录密码是多少?-192路由网
  6. python讲统计学 书籍_数据分析最需要的12本中文书(从入门到高阶)
  7. ununtu18.0安装搜狗输入法
  8. oracle report builder 6i下载,Report Builder 3.0
  9. Linux中JAVA服务器内存占用高(分析解决方法)
  10. 计算机怎么使用远程桌面工具,win7一键开启远程桌面工具