发布于 2026-01-06 9 阅读
0

亲身体验这款搅乱爱荷华州党团会议的应用程序

亲身体验这款搅乱爱荷华州党团会议的应用程序

想必你已经听说过爱荷华州党团会议应用程序的惨败了。那款在党团会议中使用却失败的应用程序(IowaReporterApp)现在已经公开发布了。我决定亲自体验一下。我下载了APK文件,并像其他人一样进行了反编译,然后仔细查看了一番。

就运行而言,没有登录权限我几乎无能为力。虽然有人可以设置一个新的 Auth0 端点,然后重新路由出站调用来获取访问权限,但这超出了我的能力范围。

首先声明,我不是 React 或 Android 开发方面的专家,但是通过查看代码,我能发现一些问题。

我们对这款应用的了解

以下是我们目前对该应用程序的一些了解:

  • 这是一个 React Native 应用。
  • 它使用 Auth0
  • 它连接到 Firebase 后端。

步骤似乎是:

  • 一名志愿者(选区主席)使用其选区编号登录应用程序。
  • 然后他们使用 Auth0 进行身份验证
  • 请输入与会总人数
  • 请输入党团会议第一轮和第二轮的投票总数。
  • 计算每位候选人获得的代表人数。
  • 将其上传到 Firebase。

已报告的部分问题:

  • 部分志愿者无法登录。
  • 与用于验证数据的服务存在接口问题(这个问题正在争论中)。

这些问题很可能是人为造成的。许多人表示登录问题是用户输入错误凭证导致的。这当然是一种可能性。我不想一味指责,只是想分享一下我的看法。

查看源头。

爱荷华州应用程序源代码

于是我打开了一些源代码,并注意到了一些事情。

  • 这里似乎有很多样板代码。
  • 有些错误,比如拼写错误,本应被发现。
  • 有迹象表明,这并没有经过任何自动化或 CI/CD 测试。

样板代码本身并不会立刻成为他们的致命缺陷。开发者不应该重复造轮子,也不应该在没有充分理由的情况下编写函数。这似乎是一个最简单的 CRUD 应用,只需要将一些数据导入 Firebase 即可。根本不需要编写大量复杂的代码。

令人担忧的是,我们不知道使用该样板代码的人员的技能水平,也不知道他们在测试组装后的代码时投入了多少精力。

错别字

爱荷华州应用程序源代码

我确实在文本中发现了一些拼写错误。这倒不是什么大问题,只是通常情况下,如果人们连拼写错误都发现不了,那还有什么其他问题他们也发现不了呢?拼写错误和错别字是需要通过全面测试首先修复的问题。

还有这个:

爱荷华州应用程序源代码

虽然这不算什么大问题,但总感觉哪里不对劲。这个应用是在个人电脑上构建和部署的,而不是通过 CI/CD 流程生成的。

生产环境应用程序的源代码中绝对不应该包含本地路径。

虽然我在这里找到了一些测试和 CI 代码,但都是样板代码,所以无法判断它们是否运行过。

爱荷华州应用程序源代码

结论

我还没仔细检查过所有代码,也不是专家,但确实发现了一些问题。虽然这次事件令人遗憾,但我们可以从中吸取很多教训。接下来几天的分析结果将会很有意思。

想亲自体验一下吗?

文章来源:https://dev.to/pluralsight/hands-on-with-the-app-that-broke-the-iowa-caucus-4l8o