
我使用 Claude 代码已经一个多月了。我年纪大了,经历过不少风雨,也维护过一些运行了十年的生产代码库,所以对人工智能一直持怀疑态度。我用人工智能写代码也有一年多了,但大多是些临时性的东西,比如演示、开关之类的小程序。
和大多数人一样,我最初对这些工具感到惊叹,但很快就意识到它们的局限性。在遇到克劳德之前,我一直认为人工智能编码工具只是节省了一些时间,并不能让我完全信任它们来帮我编写代码。我必须检查和审查所有内容,这往往会消耗掉我节省的大部分时间。我还尝试过 Cursor 和 Codex,但即使在相对较低的复杂度下,它们也最终表现不佳。
然后我遇到了最新版本的克劳德。和以前一样,第一印象是无比惊艳。感觉人工智能编码工具能够处理的复杂度有了质的飞跃。
但用了一段时间后,问题就开始出现了。上下文管理成了个大问题。上下文会被压缩,你原本默契十足的编码伙伴突然就像被做了脑叶切除手术一样——它忘记了过去一个小时里学到的一半内容。更糟糕的是,工具甚至会导致 VSCode 崩溃,你彻底丢失上下文。哎。
克劳德兴高采烈地、几乎是欣喜若狂地对你的代码库进行了大胆而彻底的修改。起初你会惊叹:哇,它居然能做到这样?但一个小时后,你却发现它悄无声息地破坏了一切,而修复它需要花费数小时。
但有些人发现这些问题是可以解决的,而且该工具甚至还提供了一些辅助功能。你可以在 Claude.md 文件中留下上下文线索。你可以定期让 Claude 将其学习成果保存到设计文档中。你还可以让它将行之有效的架构方法记录到 Markdown 文档中,并在 Claude.md 文件中引用。
你可能会发现,那些能把 Claude 的性能发挥到极致的人都在使用 TDD。还记得 TDD 吗?就是你在大学里学过但一直避之不及的那玩意儿?真是烦人。
红绿测试驱动开发要求你必须先编写一个会失败的测试,然后再编写功能代码并验证测试是否通过。我估计,只有不到 1% 的开发者会采用这种方式。这既难又烦人。
但要充分利用 Claude 的作用至关重要。TDD 会为你的代码库创建一个棘轮机制,一个不断向上移动的底线,随着代码的迭代而不断提升。这正是防止那些你可能要等到四次修改之后才会发现的细微缺陷的关键保障。
我确信,TDD 对 Claude 的作用与对人类的作用相同。先编写测试迫使 Claude 放慢速度,仔细思考问题,从而编写出更好的代码。
几周前我就做到这一步了。我意识到,只要精心引导并提供足够的结构,就能让 Claude 在非常复杂的任务上表现出色。我让 Claude 创建了大量的文档和架构设计。我在 Claude.md 中添加了 TDD 提示,而且大部分功能都运行良好。甚至可以一次性提交无人值守的、相对复杂的 PR。当它正常工作时,效果简直令人惊叹。
但这并非总是奏效。就在今天,我与 Claude 进行交互式交互时问了它一个问题。它却轻描淡写地提到有四个测试失败了。它不仅没有使用 TDD,而且在多次更改后根本没有运行任何测试。
结果发现,Claude 也觉得 TDD 很烦人,一旦它觉得你没在认真听讲,就会立刻放弃这种做法。它建议我在 Claude.md 文件里添加一些关于 TDD 的特别强调的说明,还要用感叹号标明,并且定期提醒它。明白了吗?我需要定期提醒它。而我也确实这么做了。在互动环节中,我会不断提醒它关于 TDD 的事情,以帮助它保持正确的方向。
但总的来说,这完全可行,而且值得付出努力。一旦成功,效果惊艳。只需几句话就能生成大量新功能,而这些功能如果用手动编码则需要数天甚至数周的时间。所有功能都经过全面测试并有文档记录。
但这样做有两个问题。首先,普通开发者根本不可能做到这一切。这种控制 Claude 的方法并不直观,而且 Claude 本身也帮不上忙。它太想讨好用户了,你会感觉自己一直在和它最糟糕的习惯作斗争。
然而,最大的问题是成本。预付费订阅计划根本无法实现这些功能。几个小时就能达到每周的限额。实际上,Claude 本质上是一个笨手笨脚的中级开发人员,总是犯一些愚蠢的错误。我创建的这套架构虽然能够应对这些问题,但代码的迭代速度非常快。它会做出一个愚蠢的改动,导致所有测试都失败,然后回滚,再做另一个改动,导致一半的测试失败,修复大部分测试后,它又会找到更好的方法,然后从头开始。
值得庆幸的是,这个过程可以自动进行,只需几分钟,而由笨手笨脚的中级开发人员完成则需要几天甚至几个小时。
但这个过程消耗代币的速度简直惊人。我使用的是按流量计费的 API,如果我每天和 Claude 一起用这种模式写代码四个小时,一个月下来可能要花掉 1000 美元以上。
这比人工开发更便宜、效率更高,但我现在明白为什么人工智能对企业平均编码效率的影响微乎其微了。大多数企业或许是出于愚蠢,不愿投入这么多资金,而且他们也缺乏管理 Claude 并使其发挥卓越成效所需的技能。
与 Claude 合作一个月后,我终于看到了一个美好的未来:我可以几乎完全依靠人工智能管理庞大而复杂的代码库,无需亲自动手编写任何代码。而对于那些拥有相关技能和充足资金的人来说,这个未来已经到来。
记住,一定要用大写字母提醒Claude。TDD!!