用 AI 核对筛选结果:误收一条和漏掉一条,代价可能不同 让 AI 帮忙筛选资料后,最容易汇报的是“多少条分对了”。但被误收的无关资料会占用复核时间,被漏掉的相关资料可能再也没进入阅读清单。验收之前,需要先说清这两种错误分别意味着什么。 yunqueblog/ AI分享/ 2026-10-01/ 2 阅读
让 AI 拆开总体成功率:每组都更好,合起来为什么反而落后 看见两份操作指引的完成率,一个是百分之六十五,一个是百分之七十五,很容易直接选后者。但如果两份指引面对的任务难度不同,这个排名可能同时包含指引差异与任务构成差异。AI 可以帮助拆开账目,判断比较究竟回答了什么。 yunqueblog/ AI分享/ 2026-10-01/ 3 阅读
Git range-diff 对照两轮提交:变基以后,哪些补丁真的改了 一个分支完成评审后,作者把它变基到新主线,又修改了一条提交。提交编号全部变了,普通的两端 diff 还会混入新主线的文件变化。评审者真正想知道的是:上一轮的每个补丁,在这一轮变成什么,哪些只是换了基础,哪些修改了内容... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
Git rerere 复用冲突解决:文件已改好,为什么仍要检查暂存区 长期维护一个主题分支时,同一处冲突可能在试合并、撤销和再次合并中反复出现。Git rerere 可以记住此前如何把冲突内容改成解决后的内容,在再次遇到匹配冲突时尝试复用。这能省去机械编辑,但历史解法是否符合本次业务要... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
JavaScript 类字段初始化:super 调过子类方法,值为什么又被覆盖 父类构造器调用了一个子类重写的方法,日志也显示赋值成功;可 new 返回后,字段又变回初始值。这个问题通常不是有另一个异步任务在改对象,而是子类实例字段尚未初始化。构造阶段的调用顺序,和阅读类声明时的视觉顺序并不相同... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
JavaScript thenable 同化:普通对象带 then,为什么 await 会调用它 给旧接口加上 async 包装后,原本应该返回一条记录,却突然返回数字;另一个对象只是读取字段就报错。此时不能只检查它是不是 Promise 实例。JavaScript 的异步结果接纳一种协议:如果对象的 then ... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
Python 解析 MIME 邮件:三个 text 部分,为什么只有一个该当正文 按 text 类型全部拼起来,会读到什么解析一封带附件的邮件时,把 walk 遍历到的所有 text/plain 拼成正文,可能把附带的说明文件也读进去;再把 text/html 加上,又会重复一次正文。MIME 邮... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
Python ElementTree 查找 XML:标签看起来叫 item,为什么 find 仍返回空 看到的短名字,不是完整身份从接口拿到一份 XML,肉眼能看到 item,代码 root.find("item") 却返回 None,很容易先怀疑编码或文件没有读完整。如果元素声明了默认命名空间,解析后的标签身份包含命... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
Python mock.patch 补丁位置:函数明明来自这里,为什么替换后仍没有生效 替换了函数,调用方却没有改变给代码写测试时,经常想把读取接口替换成一个可控结果。patch 没有报错,替身也创建成功,业务函数却仍返回原值,问题可能出在名称查找位置。函数从哪个文件定义出来,与执行到调用语句时从哪里取... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
Python reload 重载模块:函数更新了,旧引用为什么仍可能执行旧代码 修改源文件以后,谁真正变了在交互式调试里修改模块,再调用 importlib.reload,往往能继续试验。但重载不是重新启动解释器:模块内的名称会重新绑定,其他地方保存的函数引用未必跟着更新。更容易误判的是,旧函数... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读