Hacker News 中文摘要

RSS订阅

将Claude代码转化为最佳设计伙伴 -- Turning Claude Code into My Best Design Partner

文章摘要

作者在使用Claude Code时,最初采用直接描述任务的方式,但随着任务复杂度的增加,这种方法暴露出对话成为唯一信息源、上下文限制等问题。为解决这些问题,作者尝试让Claude Code先编写计划文档,作为任务的核心参考,并在计划完善后清空对话,仅以计划为上下文重新开始,从而提升协作效率。

文章总结

将Claude Code转变为最佳设计伙伴

当我初次使用Claude Code时,我的方法非常简单:直接在提示中描述任务,按下回车,然后祈祷一切顺利。如果AI犯了错误,我会告诉它如何修正。对于小任务来说,这种方法或许足够,但随着任务复杂度的增加,这种方式的弊端逐渐显现。

简单方法无法应对复杂任务

首先,对话成为了任务的唯一信息来源。新的信息可能会覆盖旧的指令,但这种情况并不总是显而易见,容易导致AI犯错。此外,AI的上下文容量有限,随着对话的延长,早期的信息可能会被“遗忘”,尽管Claude Code有“压缩”对话的功能,但问题依然存在。

因此,我开始尝试一种新的方法:让Claude Code先编写一份计划文档。这份文档取代了冗长的对话,成为任务的唯一信息来源。当我认为计划文档足够完善时,我会清空对话,仅以计划文档为上下文重新开始。

制定初始计划

我的第一个提示通常是向Claude Code描述它需要实现的功能(或修复的bug、重构的代码),并尽可能详细地说明我的想法。如果我已有实现思路,我会提供一些现有文件作为参考,但我会尽量避免给出太多实现细节,因为我希望AI能够提出建议并参与设计过程。

例如,我可能会说:“我想实现一个查询构建器。页面将分为两列。左侧列将包含三个框:第一个框用于选择视图(目前只有一个视图:‘Volume Metrics’),第二个框用于选择字段(‘字段1’、‘字段2’、‘字段3’),第三个框用于添加过滤器(暂时不填充)。右侧列将首先显示可读的查询语句,然后显示查询结果的表格。”

我还会参考之前实现功能的计划文档。虽然没有正式的模板,但只要我有其他计划文档作为参考,就不需要模板。

协作设计过程

有时,我对AI提出的实现方案并不满意。这时,我不会直接更新计划文档,而是告诉AI为什么它的方案有问题,并期望它调整方法。例如,我可能会说:“页面应该是/explore的子路由,而不是/review。此外,只有‘admin’角色的用户才能访问。”

经过几次来回交流后,我有时会发现AI最初提出的方案比我自己的想法更好。这个过程比我自己编写代码后才发现问题要高效得多。这就像每次开始新功能时与同事讨论计划,尤其是与一位不太熟悉代码库的初级同事讨论,他们会质疑我的选择。这种动态让我想起了“橡皮鸭调试法”,即通过解释自己的思路来帮助自己思考问题。

动态文档方法

关键的一点是,我不仅让Claude Code编写计划文档,还要求它在实现功能时将其视为动态文档。我明确要求AI在实现过程中更新计划文档,因为实现过程(尤其是类型检查、代码格式化或测试过程)可能会揭示原始计划中的某些部分存在问题。

我养成了每次提交代码时让AI检查计划文档是否最新的习惯,将计划更新视为与运行质量检查同等重要的步骤。

我的审查过程

在实现过程中,我会定期审查代码以确保一切进展顺利。但如果我对进展感到满意,我可以减少审查频率。在审查最终代码时,更新后的计划文档为我提供了有关实现过程中技术选择的有用提示。

从混乱到系统化

这种工作流程系统地解决了我在简单方法中遇到的根本问题:它创建了清晰的信息来源,消除了上下文限制问题,并促使我更好地进行架构思考。动态文档既是规范,也是实现日志,不仅记录了构建了什么,还记录了为什么以及如何构建。

最终,这种开发过程更加深思熟虑、文档化且可靠。AI不仅仅是实现者,它成为了我的协作设计伙伴。

评论总结

主要观点总结:

  1. Prompt工程的重要性

    • 多位用户强调了精心设计Prompt的重要性,认为这是提高Claude Code效率的关键。
    • 引用
      • "I used to joke about prompt engineering. But by jiminy it is a thing now." (ticoombs)
      • "Over the last 2 weeks I've spend a lot of time crafting the 'perfect prompt' for claude code to one shot the project." (hetspookjee)
  2. 成本问题

    • 一些用户对Claude Code的高成本表示担忧,认为其性价比不高。
    • 引用
      • "But I’m negatively surprised with the amount of money CC costs." (Crowberry)
      • "Does any one know 'roughly' how ClaudeCode compares costwise these days to Cursor using OpenAI api?" (ionwake)
  3. 文档化与规划的价值

    • 用户普遍认为,详细的文档和规划能够显著提高Claude Code的输出质量。
    • 引用
      • "The key IMHO is first to give claude as low requirements as possible and let it’s plan mode roam freely." (anemic)
      • "This is the key to getting decent feature work out of Claude Code." (afro88)
  4. 静态类型语言的优势

    • 有用户指出,使用静态类型语言(如Rust)可以减少模型在编码过程中出现的错误。
    • 引用
      • "I came to the conclusion that statically-typed languages get you higher returns with these models for this reason." (virtualritz)
  5. AI工具的局限性

    • 一些用户认为,AI工具虽然强大,但仍需结合人类经验和规划才能发挥最大作用。
    • 引用
      • "The models are not there yet, you need the experience." (virtualritz)
      • "You don’t need AI for proper planning and defining your goals." (zuInnp)
  6. 前端设计的挑战

    • 有用户提到,当前的工作流程在整合前端设计方面存在不足。
    • 引用
      • "Has anyone figured out an elegant way to add front-end design to a process like this?" (sputknick)

总结:

评论中,用户普遍认可Claude Code在编码和规划中的潜力,但也对其高成本和局限性提出了质疑。文档化、规划和使用静态类型语言被认为是提高效率的关键,而前端设计的整合仍是一个待解决的问题。