[Flutter翻译]我们在Flutter代码评估中寻找的五大事项

183 阅读5分钟

image.png

本文由 简悦SimpRead 转码,原文地址 verygood.ventures

我们解释了在评估Flutter代码库时我们首先寻找的五件事。

我们的客户入职流程的一个典型部分是进行代码评估。根据客户的需求,代码评估可以是相当彻底的,或者只是提供一个我们作为一个团队应该关注的主要特征的概述。在每次评估中,我们都会按照优先级的顺序提供修复我们发现的任何问题的建议,这有助于我们计划一起开始的最佳方式。

挖掘代码也有助于我们熟悉应用程序的结构,这样我们就可以立即开始提供价值--无论是建立一个新的功能,还是重构代码库的某个部分以解决一个痛点。我们还可以了解到代码质量的概况,以及是否有任何需要修复的地方,以确保代码库的可扩展性。

作为顾问,我们看到并工作在很多代码库中。我们有一个构建可扩展代码库的成熟方法,所以我们可以迅速确定哪些代码库是可靠的,哪些可能需要一些工作来使其达到我们的标准。

以下是我们在评估Flutter代码库时寻找的前五件事,以及它们为什么重要。

测试 ✅

我们寻找的第一件事是测试。按照优先顺序,我们寻找单元测试,然后是部件测试,最后是集成测试。如果没有测试,这就是一个巨大的红旗。没有测试意味着代码可能无法正常运行,添加新功能或执行重构可能会破坏现有的代码,bug可能难以追踪,而且可能有其他不愉快的副作用。Flutter有一个内置于SDK的测试套件,所以真的没有借口放弃编写测试。

我们在所有的项目中都力求达到100%的代码覆盖率,但在评估代码库时,有一些测试总比没有好。逐步提高代码覆盖率的门槛比从头开始写测试要容易得多。很多时候,没有测试的代码是无法测试的。全面的测试是一个结构良好、健康的代码库的重要标志。

最新版本的Flutter和依赖性 ✅

这可能看起来很明显,但使用最新的Flutter稳定版本是至关重要的。这是一个简单的方法来确保你充分利用最新的Flutter功能和错误修复。在新版本发布时花时间升级也是非常重要的,以避免远远落后和积累技术债务。

相比之下,使用旧版本的Flutter会有一些不希望看到的结果。依赖关系可能会变得过时,而且你可能会错过Flutter和Dart最新版本的性能改进或新功能。我们建议尽可能使用Flutter的最新稳定版本,并保持所有依赖关系的更新。

井然有序的项目结构 ✅

一个组织良好的代码库可以成为代码质量的良好指标。它还可以帮助将业务逻辑与用户界面分开,这也是我们在建立可扩展的代码库时推荐的。

🛑 一个不那么好的代码库可能看起来像这样:

  • 一个包含整个应用程序的单一文件。
  • 在代码库中存在一个 "公共 "或 "共享 "文件夹,其中包含大量的杂项代码。 *代码库按组件而不是按功能组织(例如,名为 "屏幕 "的文件夹包含所有的应用程序屏幕)。

一个非常好的代码库可以是这样的:

  • 每个功能有一个文件夹,每个文件夹只包含该功能的代码。你应该能够看到项目结构,并清楚地知道在哪里可以找到应用程序的每个部分。关于这种结构的代码库的例子,请查看GitHub repo for I/O Photo Booth
  • 分层结构和可重复使用的代码被分割成内部包。

CI/CD解决方案 ✅

在一个代码库中不使用CI/CD解决方案是一个红旗。这意味着,像测试、代码格式化和提示等关键事项没有通过CI/CD自动执行。也可能没有编码标准,因为你是依靠人工的PR审查来执行标准,这不是一个可扩展的解决方案。

把这些任务卸载到CI/CD解决方案中要有效得多,这样你就可以确保测试、lint规则和其他你想执行的东西在每个拉动请求中自动完成。好消息是,有多种CI/CD解决方案可用于Flutter--我们最喜欢的是GitHub ActionsCodemagic*。我们更喜欢在代码库中维护我们的CI/CD配置(而不是在外部工具中),以便像其他代码一样跟踪和审查变化。

分析选项 ✅

提示规则是在整个代码库中执行最佳实践的一个好方法。Mike Rydstrom对pub.dev中最流行的Flutter提示规则包进行了很好的比较(在very_good_analysis中查看了我们首选的提示规则)。最重要的是,你要选择对你的项目最有意义的lint规则,这样你才能在你的代码库中执行一致性。

如果你目前没有在你的项目中使用lint规则,添加它们并处理输出的建议可以为改善你的代码库提供一个有用的路线图。

总结

维护一个可扩展的代码库可能是你能为你的应用程序做的最重要的一件事。实施上述特征将在很大程度上确保你的代码质量保持高水准。

*当我们把客户推荐给Codemagic时,我们会得到一部分销售收入。


www.deepl.com 翻译