开发者与 AI 协作修复 Bug:展现 AI 优缺点,凸显人工参与重要性 发布时间:2026/7/1 19:20:20 与人工智能协同工作一个具体示例总体而言对人工智能持矛盾态度。过去一年里它成为开发领域强大工具但也带来诸多危险包括对个人思维能力的影响以及集体层面的环境问题、个人计算成本增加等。在《代码更便宜》一文中曾对“魔法师的学徒”问题发出警告即开发者过度依赖人工智能无法解决系统中出现的问题。本文将讲述维护 hyperscript 时与人工智能的一次具体交互展示其优缺点并说明“魔法师的学徒”问题。Hyperscript 解析器hyperscript 是用于 Web 的替代解释型脚本语言完全用 JavaScript 编写。编写时故意打破许多解析规则进行实验例如解析逻辑与解析元素放在一起、解析器可插拔且语法动态定义、支持多种属性访问语法。虽不建议大多数编程语言采用此方法但在该项目中效果不错证明软件开发解决问题有多种途径。一个 bug 报告一位用户报告升级到 0.9.91 版本时出现回归问题表达式“fetch {% url trade:get_symbol_data %}?symbol${symbol} as JSON”无法正确解析。具体是“as JSON”绑定过紧应获取给定 URL 并将结果视为 JSON而非提前转换。这是解析过程的经典问题因 hyperscript 是 xTalk 风格语言继承英语歧义问题更严重。调查原因调查回归问题出现的原因时借助了人工智能 Claude。它找出根本原因0.9.91 版本重构 go 命令与 fetch 命令共享逻辑时过于激进提取通用方法 parseURLOrExpression() 时不小心将 fetch 命令后的语法扩展到包含通用的 expression 表达式。“as”关键字在表达式中有类型转换含义也是 fetch 命令的修饰符。重构中让解析器在 fetch 关键字后解析表达式使“as”被当作表达式解析而非 fetch 的修饰符。Claude 帮助下几分钟内就找出问题比自己摸索快得多。修复问题人工智能在找出问题原因上有帮助但解决问题表现不佳。提议的修复方案 1临时修补第一个建议是先解析“类字符串”叶子节点再尝试完整表达式可解决用户直接问题但过于针对报告的 bug无法解决一般情况如使用变量作为 fetch 的目标因此被拒绝。提议的修复方案 2更好但不必要的复杂性第二个提议是在解析器上添加 noConversions 标志解析 URL 时设置让 AsExpression.parse 在标志设置时退出这会使 hyperscript 解析器变得上下文相关。但 hyperscript 解析器本来就是上下文相关的研究后发现已有所需的上下文相关基础设施无需引入新标志Claude 未发现这点。Hyperscript 解析器中的 “跟随” 概念hyperscript 解析器中有“跟随”概念即由“上级”解析元素声明为跟随标记的标记。它是递归下降解析器允许解析元素声明关键字使表达式不与这些关键字匹配。例如 when 特性使用 or 作为分隔符。可将“as”作为跟随标记推入、解析表达式后弹出防止 AsExpression 解析同时允许通用表达式正常工作。提议的修复方案 3接近但未成功向 Claude 指出这点后它用此技术修复 bug在 parseURLOrExpression() 中添加正确代码从根本上解决问题。最终的半自然修复方案审查更改时发现新修复方案过于宽泛fetch 和 go 共享方法但只有 fetch 使用“as”表示修饰符现有方案阻止了 go 命令中有效的“as”类型转换表达式使用。因此自己在 FetchCommand#parse() 中实现最终修复方案将特殊情况限制在 fetch 命令上使 go 命令解析不受影响。测试整个过程中让 Claude 为各种情况生成测试用例。hyperscript 有现有测试套件Claude 出色创建了小型、有针对性的测试展示问题及修复方案是否正常工作这是人工智能表现良好的领域。故事的启示这个 bug 修复故事显示人工智能在调查和测试用例创建方面表现出色但在提出简洁解决方案方面表现不佳。若不熟悉 hyperscript 解析器及其基础设施修复过程易积累技术债务因此让了解底层基础设施的人与人工智能协作在控制复杂性方面比人工智能独自工作更有效。此例中了解情况的人与人工智能协作一定程度上控制了复杂性避免像“魔法师的学徒”那样盲目接受解决方案而是要求适合现有代码库架构的正确解决方案。希望这与“氛围编码”形成对比“氛围编码”中开发者似乎以不理解实际发生的事情为荣。题外话人工智能与年长的开发者作为 50 岁的年长开发者随着年龄增长会“失去速度优势”记忆力不如以前不能长时间工作。人工智能解决了这两个问题在记忆力方面通过提示可快速理解事物提高在开源和工作项目间切换的效率在长时间工作方面人工智能能持续工作使项目拥有更广泛的测试套件。但担心人工智能会导致整体智力普遍下降依赖它的时间过长会感到羞愧这是仍在探索的领域。结论记录这一系列交互体现了人工智能在编码辅助方面的优缺点展示了有能力的开发者与人工智能协作的价值也揭示了盲目接受人工智能解决方案的危险希望对思考与人工智能协作策略有帮助。俳句JavaScript 疲惫渴望超文本已然在手
液冷板年产能50万片:激光产线3条搞定的事,钎焊为什么需要10台炉子 2026/7/1 19:20:20 深圳一家液冷板代工厂的总经理上个月做了个实验。他把一张年产50万片液冷板的设备配置表发给了三个不同的方案商,让他们各自出方案报价。结果很有意思。两家做钎焊的方案商,给出的设备清单惊人地一致:8到10台真空钎焊炉、配套真空泵和冷却水系…
基于PHP、asp.net、java、Springboot、SSM、vue3的高校线上考试系统的设计与实现-计算机专业毕业设计选题题目 2026/7/1 19:20:20 目录 可选框架 可选语言 内容 可选框架 J2EE、MVC、vue3、spring、springmvc、mybatis、SSH、SpringBoot、SSM、django 可选语言 java、web、PHP、asp.net、javaweb、C#、python、 HTML5、jsp、ajax、vue3高校线上考试系统的设计与实现 内容 随着计算机网络技术和高校考…
暗黑3自动化宏工具终极指南:告别手动操作,解放你的双手 2026/7/1 20:30:28 暗黑3自动化宏工具终极指南:告别手动操作,解放你的双手 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为暗黑破坏神3中繁…
托珠单抗静注不便,巴瑞替尼口服便利能否取而代之 2026/7/1 20:30:28 托珠单抗作为IL-6受体抑制剂,是类风湿关节炎治疗领域的经典生物制剂,其强效抗炎的疗效早已被临床广泛验证,但每2-4周一次的静脉输注给药模式,给大量长期用药的患者带来了诸多不便。巴瑞替尼作为口服JAK抑制剂,凭借每日…
Unity游戏汉化神器:XUnity Auto Translator让你无障碍畅玩外语游戏 2026/7/1 20:30:28 Unity游戏汉化神器:XUnity Auto Translator让你无障碍畅玩外语游戏 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言障碍而错过精彩的Unity游戏?面对日语、英语或…
阿昔替尼一线治疗晚期肾癌,高VEGFR选择性带来的长期生存优势 2026/7/1 20:30:28 阿昔替尼作为第二代高选择性VEGFR酪氨酸激酶抑制剂,自获批用于晚期肾细胞癌治疗以来,其临床应用场景早已从传统二线治疗拓展至一线联合甚至单药治疗领域,针对中国肾癌人群的真实世界数据,正在不断验证这款药物高靶点选择性带来的独…
XUnity Auto Translator:彻底解决Unity游戏语言障碍的终极方案 2026/7/1 20:30:28 XUnity Auto Translator:彻底解决Unity游戏语言障碍的终极方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语Unity游戏而烦恼吗?是否曾经因为语言不通而错过精彩剧情&…
G-Helper:华硕笔记本的轻量级控制革命,告别臃肿拥抱高效 2026/7/1 20:20:27 G-Helper:华硕笔记本的轻量级控制革命,告别臃肿拥抱高效 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook…
别再手动拼矩阵了!用MATLAB的triu和tril函数,5分钟搞定随机对称矩阵生成 2026/7/1 0:08:31 别再手动拼矩阵了!用MATLAB的triu和tril函数,5分钟搞定随机对称矩阵生成在数值计算和算法测试中,随机对称矩阵的生成是一个常见需求。无论是机器学习中的协方差矩阵模拟,还是结构力学中的刚度矩阵构建,对称矩阵都扮演着…
数据分析师必学MySQL:从零构建电商销售分析实战 2026/7/1 0:08:31 你是不是也遇到过这样的困惑:想学数据分析,看了很多Python、R语言的教程,结果发现第一步就被卡住了——数据从哪里来?怎么存?怎么查?怎么保证数据准确?很多数据分析教程都默认你已经有了一个干净…
HS2-HF Patch:3步实现HoneySelect2完美汉化与MOD整合 2026/7/1 0:08:31 HS2-HF Patch:3步实现HoneySelect2完美汉化与MOD整合 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是专为HoneySelect2玩家设计的一站…
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告 2026/7/1 17:49:26 6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉? 2026/7/1 1:19:19 引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
别再手动拼矩阵了!用MATLAB的triu和tril函数,5分钟搞定随机对称矩阵生成 2026/7/1 0:08:31 别再手动拼矩阵了!用MATLAB的triu和tril函数,5分钟搞定随机对称矩阵生成在数值计算和算法测试中,随机对称矩阵的生成是一个常见需求。无论是机器学习中的协方差矩阵模拟,还是结构力学中的刚度矩阵构建,对称矩阵都扮演着…
数据分析师必学MySQL:从零构建电商销售分析实战 2026/7/1 0:08:31 你是不是也遇到过这样的困惑:想学数据分析,看了很多Python、R语言的教程,结果发现第一步就被卡住了——数据从哪里来?怎么存?怎么查?怎么保证数据准确?很多数据分析教程都默认你已经有了一个干净…
HS2-HF Patch:3步实现HoneySelect2完美汉化与MOD整合 2026/7/1 0:08:31 HS2-HF Patch:3步实现HoneySelect2完美汉化与MOD整合 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是专为HoneySelect2玩家设计的一站…