一次意外右手骨折,Claude工程师的工作竟被AI挽救了。近两个月的时间,他们一起结对编程,甚至在一周内肝出3000行代码。他疯狂暗示,未来1-3年,就是「AI工程师」的天下。
事情是这样的,几个月前,Claude工程师Erik Schluntz骑车上班的路上,意外摔断右手,打上了石膏。
即便如此,Schluntz依旧在Anthropic旧金山的办公室里,一周狂肝了3000行代码。
他通过结合语音转文字技术,与Claude AI结队,整整写了2个月的代码。不过,必须承认的是,其中有许多是「样板代码」。
文章中,他表示,「通过这件事,体验到了人类几乎不再需要自己编写代码的未来」。
另一位Anthropic工程师表示,通过从这件事,我们可以获得软件工程未来几年的关键一瞥。
那么,Erik Schluntz如何在受伤期间,能够让AI为他高效编码呢?
首先,文章开篇他最先介绍了,自己如何对AI进行设置,最终决定使用了Claude AI。
Schluntz在摔断手之前,也曾使用类似Copilot等AI代码生成工具,但主要还是「手写」。
此外,他也使用过「语音转文字」,但也主要在手机上发短信,并未在电脑中尝试过这一功能。
唯一不足的是,在听写任何与代码相关的内容时,Siri表现得很糟糕。毕竟,一些符号和词汇,大大超出其识别范围。
但由于Schluntz对AI代码生成非常感兴趣,于是决定尝试,用自家AI去完成这项艰巨的任务。
这里没有使用Copilot,是因为其自动补全功能,对作者来说异常慢,需要开发者先写出半行代码,才能实现。
这时,只需将大块代码库内容一键复制粘贴到Claude AI中,然后通过语音命令进行转换。
举个栗子,Schluntz会说「重构ABC函数以接受输入XYZ」或「为这些新函数ABC编写单元测试,并查看XYZ的示例测试」。
虽然Claude并不总是能在第一次尝试时成功,但它能很好地接受后续指令和调整——
「被迫」这样写代码后,Schluntz很快就弄清楚了,什么样提示会生成有效代码,什么会是无效。
他不得不在IDE和Claude之间频繁地复制粘贴,并手动拼接被Claude输出长度限制截断的代码片段。
甚至,有几次他对Claude「提高了嗓门」,只因AI「忘记了」Schluntz之前的指令。
如果你只给出一个基本请求,LLM可能会给出一个中规中矩的通用答案,可能并不适用于你的特定代码库。
Schluntz发现,将指令放在输入的开头和结尾效果最好,可以确保AI不会「遗忘」重要的上下文。
最好是,能够提供代码库示例,供AI参考。特别是,在编写单元测试、处理样板代码时,AI表现特别好。
Schluntz会手动迁移一个实例,然后用它作为示例让Claude转换其余的输入。
大多数人把LLM当作StackOverflow的替代品:他们虽是在询问方向,但仍然自己在驾驶。
「如果你能够给Claude正确的基础构建模块,它往往可以一次性完成整个任务」。
在周末的机器人项目中,Schluntz和朋友Survy给Claude提供了一段控制单个电机和读取蓝牙游戏手柄的代码。
通过这些构建模块,Claude能够一气呵成地编写出所有远程控制机器人的代码,节省了大量时间和繁琐的数据处理!
尤其是,在Schluntz不熟悉的领域,Claude往往在任务分解方面表现得尤为出色。
过于具体的请求也能奏效,但有时会导致失去整体视角,类似于在没有整体背景的情况下,给出狭隘的建议。
但Schluntz和Survy将其上传到Claude,然后提问,迅速解决了其中一个问题。
渐渐地,Schluntz开始建立起一种非常好的直觉,Claude能正确处理哪些事情,以及哪些事情仍需要人类做。
- 「我正在使用一个名为pygame的Python库……」 简化为 「在pygame中……」
- 「当我运行你的代码时,我收到了这个错误信息……你认为我现在应该怎么做」 简化为直接复制堆栈追踪(stack trace)。
他甚至还学会了,转换或重构大块代码可以带来显著效果。例。