我最初鼓吹 Claude Code 的时候,就特别说明了新手就不要去用了,因为你可能打开也不知道该干嘛!但是对于铁锤这样的老手来说,只是没切换思维模式,逼着自己用一段时间就会适应,并且习惯了就再也离不开了。 程序员熟手要用好 Claude Code,最大的转变来源于思维的转变和开发习惯的转变。 这个转变就是先设计再写提示词,然后用提示词生成代码。 “先设计再写代码”这话其实老生常谈,但是说和做是不一样的,虽然我们软件开发都号称是先设计再开发,那通常是针对整体的系统设计,但是到具体实现的时候,很少有人会这么做,因为编程的细节,它不是一下子就清晰的,就算你是个老手,在没实现过的模块,在没有写完的时候是没有完全想清楚的,只有去动手写,一边写一边想,写完一部分在调整甚至推翻重写,这样反反复复写完才算是把它搞明白了。 如果再让你把写过的模块重新实现一遍,那就简单直接多了,能很快写完,因为整个设计已经了然于胸,只剩下代码实现了。 写代码有些像写文章,你写作的速度是跟不上你脑子思考的速度的,所以你脑子构思好的东西,还要花很长时间的输出才能成文,类似的你思考好的架构要花时间才能写成代码并且编译运行。 但写代码又不完全像写文章,因为文字是有艺术性的,你的风格、用词、结构没有特定的套路,要反复斟酌,很费时间,AI 生成的文字很难满足这些方面的要求(有 AI 味),但代码无所谓,相对结构比较固定,而且能稳定运行的话,代码写的差一点也不是不可以接受。 所以写文章像我们这样天天写字的人,反而不太爱用 AI 写,因为它写出来的东西有一种奇怪的 AI 味,自己都不爱看更不要说你的读者了。 但是写代码不一样,你想清楚了设计,把设计写成提 Prompt,让 AI 去生成代码,以现在 Claude 4 的能力,并不会与你期望的有太大出入,如果有出入,要么就是小问题,再补加要求就能解决,甚至手动调整;如果有大的出入,那一定是你设计的问题,是你提示词没有写清楚,那么就回退一步,回滚代码,调整设计,重写提示词,那么就能重新生成正确。 这样设计到提示词,提示词再到代码的好处就是重构起来也特别容易,你不需要去大量手动修改代码,只要把重构的要求写成提示词,Claude Code 这样的 Agent 会很快帮你改好。 当然这样做的一个前提:就是每一次不要修改太多,不要生成太多代码,不然就可能会失控。 另一个改变就是:Review 代码和测试。 很多人没有 Review 代码的习惯,更没有测试自己代码的习惯,每次让 AI 生成代码,我都会仔细看一遍生成的结果,看代码和我期望的是不是一样的——如果我自己写,会怎么样写,它的方案是更好还是更早,更好我可以学习,也欣然接受,凑合那就这样了,不够好我就回滚调整提示词,或者追加一下要求。 测试也很重要,单元测试这种用例是要自己设计自己review的,手工测试也必不可少,尽可能让测试成本降低,比如通过命令行去测试、测试代码去测试,这样每次生成完都可以马上测试马上验证,有问题就回滚或者修复。 这样刚开始做是很不习惯的,但是当你适应后,你会喜欢这样的开发方式,结果也会更好。 顺便说一下,Swift 代码没问题的,我也用 Claude Code 写过的,质量很不错。