【Dart】Dart代码静态检查

【Dart】Dart代码静态检查,第1张

介绍

代码检查可以有效的提高代码质量,更进一步的说代码检查不仅仅是为了提高代码质量,已深入到代码程序的逻辑检查、内存使用情况的检查甚至更高层面的检查,很大程度上影响了程序的功能和性能。

代码检查分类 动态检查:程序运行时检查,侧重于内存和资源使用情况检查静态检查:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。 代码静态检查带来的好处

帮助程序开发人员自动执行静态代码分析,快速定位代码隐藏错误和缺陷;

帮助代码设计人员更专注于分析和解决代码设计缺陷;

显著减少在代码逐行检查上花费的时间,提高软件可靠性并节省软件开发和测试成本。

Dart如何检查 方法一:使用flutter analyze命令检查

中间略…

方法二:使用AdnroidStudio自带的检查工具检查

上面两种方式默认使用的是Dart的静态代码检查器dartanalyzer, 并使用内置在Flutter Tools内的终端工具进行代码扫描和分析。

检查出来的结果一般有三种等级 info
不会导致分析失败的参考消息。例子:todowarning
警告,例如:analysis_option_deprecatederror
严重错误,导致失败的错误,例如:invalid_assignment 分析脚本 默认的分析脚本

https://github.com/flutter/flutter/blob/2.5.1/packages/flutter_tools/analysis_options.yaml

这里放上Flutter官方在2.5版本默认使用的分析脚本, 可以参考:analysis_options_user.yml

如何配置分析脚本

检查器会根据项目根目录下的分析脚本执行检查, 该文件通常会与pubspec文件处于同一层级.

老版本的分析脚本命名为.analysis_options, 没有yaml后缀, 新版本统一命名为:analysis_options.yaml

检查器会使用#1检查other package和other other package, 使用#2检查my package.

开源脚本

如果嫌一条条配置lint规则麻烦, 可以直接集成Google的开源项目pedantic或者effective dart(二选一).

dev_dependencies:
  pedantic: ^1.0.0
  
dev_dependencies:
  effective_dart: ^1.0.0
include: package:pedantic/analysis_options.yaml
or
include: package:effective_dart/analysis_options.yaml

如此,配置完成,之后使用上述两种方法其一,可以分析代码问题。

也可以自定义分析脚本文件,写法有两种,不可混用

linter:
  rules:
    - annotate_overrides
    - await_only_futures



linter:
  rules:
    avoid_shadowing_type_parameters: false
    await_only_futures: true

Exclude关键字用来排除不需要扫描的文件.

想要忽略某行代码或者某个文件不需要被检查, 可以使用 //ignore 关键字.

另外可以自定义某条lint规则的严重级别, dart支持3种自定义级别:

info: 只提示.warning: 警告级别.error: 错误, 分析不通过.

只有error级别会导致analyze任务失败, 如果你项目中使用了CI, 注意只有此时会阻止任务继续执行.

参考资料

pedantic 1.11.1(已停止维护)

flutter_lints(替代pendantic)

effective_dart 1.3.2

Flutter代码静态检查

Linter for Dart

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/994603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存