通过Android Studio静态代码分析找到和修复问题的智能方法188博金宝电子体育频道

你知道Android Studio内188博金宝电子体育频道置静态代码分析吗?您可以使用检查代码的对话框.当启动时,你可以指定你想要分析什么;您的整个项目,单个模块,或只是一个目录。

把火点燃,准备点零食和热饮,大概需要几分钟。结果将开始填充和分类在一个“检验结果”窗口。你可能会看到很多群体,我们来关注一下;188博金宝电子体育频道Android, Kotlin, Java, XML。每个组都有组织的规则集,并显示违反这些规则的文件列表。

例如,如果我们的布局使用左/右而不是开始/结束。他们会出现在Android -> Lint ->国际化->部分使用188博金宝电子体育频道左/右而不是开始/结束属性。

当你深入研究每个文件时,你会发现有时候Android Studio能够解决这个问题,并提供了除抑制外的修复选188博金宝电子体育频道项。

这真的很强大!你可能会忍不住开始修复一大堆东西!不过等一下,这并不像你想的那么容易。

不要这么快!

我们需要考虑如何做到这一点,以最小化风险并保持开发人员的理智。我们不想因为一个善意的改变而引入bug或推出修补程序。同样地,我们想要保持我们的更改大小适当,这样我们的同伴在审查了我们提交的任何更改后仍然会是我们的朋友。

适当大小的变化

保持每个pull请求的更改大小适当,将大大减少风险,并保持我们的同行理智。一个好的开始是让它们尽可能小。这允许审查员更详细地检查更改,如果出现任何问题,就有希望捕捉到。如果修改的风险很高,或者是手工完成的,这一点尤其重要。

有些时候,更大的更改是允许的。例如;删除未使用的导入。我们真的不希望这蔓延到许多变更请求。如果它涉及很多文件,并且比正常情况下大,这是可以的,因为它是低风险。我们只是删除了未使用的导入,并且可能依赖于Android Studio来修改文件。188博金宝电子体育频道

团体喜欢一起改变

降低风险的一个很好的简单的方法就是把类似的变化组合在一起。因为所有的更改都应该是相似的,所以它使审查员更容易发现任何问题。

如果更改很小,并且您不想发出单独的更改请求,那么您可以跨提交组织更改。

对其进行测试

我们需要测试我们的更改,确保我们没有破坏应用程序中的任何东西。在这里进行一些尽职调查将有助于将风险降至最低。保持适当的更改大小和分组将有助于在出现问题时更快地识别问题。

有效沟通的变化

总结和解释pull请求中的更改将帮助审查员理解他们正在审查什么以及为什么要审查。如果你特别担心,最好说出来。“这个更改是手工重构的,您介意仔细检查一下吗?”

在发布之后合并变更

我们应该考虑什么时候提交我们的更改。为了降低风险,我们不应该在发行前这么做。理想情况下,我们的目标应该是在我们的产品构建被推进之后很快合并我们的变更。这将给我们更多的时间在下一次发布之前测试我们的更改。

要有耐心

我们请求同事帮我们检查这段代码。他们无疑会有疑问。耐心倾听同事的担忧,并回答他们可能提出的任何问题。您可能必须恢复一些意图良好的更改,或者与您的团队进一步迭代。这是整个过程的一部分,也是预期的。尽你最大的努力,总是试图倾向于最小化风险。

理解风险

理解风险并将其最小化将有助于减少引入错误的机会。我们需要了解我们的更改及其对代码库的影响,以便有效地评估风险。一旦我们知道了这一点,我们就可以应用上述技术来帮助最小化这些风险。

你会破坏事情,准备好修复它们,并承认发现的任何问题。

总结:

  • 更改的大小应该适当
  • 团体喜欢一起改变
  • 对其进行测试
  • 与你的团队进行有效的沟通
  • 在发布之后合并您的更改
  • 要有耐心
  • 了解风险并将其最小化

为什么我喜欢它

这是一个选择你自己的冒险风格的故事,你可以决定你的道路,无论这一天可能是什么。想要简单直接的东西吗?选择一个容易理解的低风险问题。想要一个挑战吗?挖掘需要架构更改的深奥问题。也许,您发现一个实用程序类缺少测试覆盖。为该实用程序添加单元测试也可能是一场冒险!

最终结果将不仅仅是简单地减少lint警告。您的旅程将带您遍寻代码库,到达您意想不到的地方。您可能会发现自己签出了以前从未看过的子系统或文件。您还将了解问题的类型,并在代码审查期间应用这些知识。

通过发现和修复问题,我们成为并帮助别人成为更好的程序员。

需要检查的一些问题

既然我们已经介绍了最小化风险的策略,我想通过提供一些起点让您继续这一旅程。下面是一些可以自动修正的常见问题的小列表。寻找快乐!

1)类成员可以具有私有可见性-当我们可以将实例变量或函数设置为私有时,这种检查就会捕捉到。它们可以在检验报告

>类成员可以有私有可见性

2)可能是“常量”-该检查捕获可以声明为const的顶级val。它们可以在检验报告

Kotlin -> Style Issues -> Might be ' const '

3)删除多余的限定符名称-此检查捕获多余的限定符名称使用。例如,由于静态导入,使用完全限定名引用某些内容可能是不必要的。它们可以在检验报告

Kotlin ->冗余结构->删除冗余限定符名称

我希望你喜欢这篇文章,请随时联系我推特

有兴趣在一个小团队中工作,追求许多这样的伟大的新实践吗?我们招聘!

最初发表在https://tech.188bet金宝搏官网okcupid.com2020年5月18日。

188bet金宝搏官网OkCupid科技博客

阅读来自OkCupid工程团队的故事,每天连188bet金宝搏官网接着数百万人

写的

10多年来,Brian一直对Android应用程序的开发充满热情。188博金宝电子体育频道他喜欢在会议和聚会上谈论Android。188博金宝电子体育频道

188bet金宝搏官网OkCupid科技博客

188bet金宝搏官网OkCupid的工程团队负责每天为数百万人配对。在OkCupid科技博客上阅读他们的故事188bet金宝搏官网

写的

10多年来,Brian一直对Android应用程序的开发充满热情。188博金宝电子体育频道他喜欢在会议和聚会上谈论Android。188博金宝电子体育频道

188bet金宝搏官网OkCupid科技博客

188bet金宝搏官网OkCupid的工程团队负责每天为数百万人配对。在OkCupid科技博客上阅读他们的故事188bet金宝搏官网