继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Claude代码审查:与Cursor比拼编程助手效能

拉丁的传说
关注TA
已关注
手记 621
粉丝 126
获赞 791

图片由作者创作。

我一直都很满意使用 Cursor,但当 Claude Code 出现时,我很好奇它的表现。在 Cursor 之前,我一直在用 GitHub Copilot,从 GitHub Copilot 切换到 Cursor 是一个明显的提升。使用 Cursor 后,我明显感觉到生产力提升和代码质量改善。我很好奇 Claude Code 是否也能像 Cursor 一样,给我带来类似的提升。所以我决定自己试试看。

测试

为了进行我的测试,我决定使用我的开源项目,CoWriter。CoWriter 是一个由 AI 驱动的写作助手,通过多种功能如扩展、简化和批判性反馈来帮助你提高写作水平。它还提供文本反馈并允许你与它聊天,提供了一个直观的界面来实现实时写作改进。该项目结合了 React 前端和 Python 后端,并为测试这两部分提供了良好的挑战。项目仓库地址如下: https://github.com/aadityaubhat/co_writer

CoWriter界面 — https://github.com/aadityaubhat/co_writer

测试1:后端改动

对于第一个测试,我想做一个纯粹的后端修改。我让每个工具将 main.py 重构,使其更易于扩展和伸缩。我的 main.py 文件混乱不堪,把模型、中间件和连接管理器都塞在一个 Python 文件里。

main.py 文件

我用了下面这个提示语来整理这个文件。

让我们通过优化 main.py 来提高它的可扩展性。

Claude 代码

克劳德重新组织了文件中的代码。然而,他并没有像我预期的那样将代码拆分成模块化组件,并且还忽略了部分mypy合规规则。克劳德的最后提交:https://github.com/aadityaubhat/co_writer/commit/29743c603d668218e8c0d8529b9c25c6df8bf558

指针

Cursor 采取了更为大胆的方法,将 main.py 分解成专门的模型和服务器文件。虽然在初次重构时遇到了一些与 Python 导入路径相关的小问题,Cursor 一次性解决了这些问题,最终代码通过了代码格式检查和类型验证。Cursor 的最终提交如下:https://github.com/aadityaubhat/co_writer/commit/b458e43856142808d729f1c7a1d866a6b52b44b6

赢家:Cursor

测试 2:前端变化

接下来,我做了一个简单的变化:在“写作选项卡”中添加了一个与“文档”菜单中的标题同步的框。我提供了以下说明(没有附带图片)。

让我们在UI的“写”标签页中添加文档标题框。这个标题应与左边“文档”菜单中的标题保持一致。

在当前界面中添加文档标题

Claude 的代码

Claude Code 在一次迭代中实现了新功能。然而,它没有自动运行代码清理脚本,我需要手动解决一些代码清理的问题。Claude Code 的最终提交记录:https://github.com/aadityaubhat/co_writer/commit/35f24319a3012fddd5360ac97f5697ac2cd0d47c

光标

光标还添加了文档标题框,并执行了代码规范检查脚本,从而生成了干净、可直接投入生产的代码。Cursor的最终提交:https://github.com/aadityaubhat/co_writer/commit/7d9f1a29e4f6d0cecda2b0d4fee61a133dd4ff4a

结果是平手

测试3:前端+后端改动

对于最终测试,我让两个工具实现一个需要前后端协作的功能。目标是在标题旁边增加一个“文档类型”选择器。下拉菜单应该包括定制、博客、文章、领英、X、Threads和Reddit等选项。当点击操作按钮(展开、缩短、批评)时,所选文档类型会在API调用中被包含,并作为提示发送给语言模型。具体的提示如下:

让我们在标题旁边添加文档类型选择器到前端,文档类型选择器应该是一个下拉菜单,选项有自定义、博客、文章、LinkedIn、X、Threads、Reddit。当按下操作按钮(如保存、发送等)时,我们应该在API调用时传入选中的文档类型。在后端,我们需要更新发送给LLM的提示,使其包含所选的文档类型。

Claude 代码段

Claude同时更新了前端和后端文件,但初始实现并没有达到预期的效果。例如,在扩展X动态中的简要要点时,工具返回了一大段冗余的文本,而不是推文友好的片段。在我指出输出应遵守推文的限制后,Claude迅速调整了其实现并解决了问题,从而达到了预期的行为。克劳德的最终提交链接为:https://github.com/aadityaubhat/co_writer/commit/c39f4b993cbc4ff2ae9d52136f161269865855e5

指针

游标还在一次迭代中对前端和后端进行了必要的修改。然而,它的初始尝试遇到了类似的问题:推文扩展要么返回过多的文字,要么经过调整后变得过于简略。经过多次迭代,我最终得到了还算满意的结果。虽然最终实现了预期的效果,但Claude代码做得更好,需要的尝试也更少。游标的最终提交:https://github.com/aadityaubhat/co_writer/commit/e6401d89681a7123c4656a7ac7b940aebcb49251

Winner: 克劳德·科德

最后

在我的三次测试中,Cursor 和 Claude Code 都展示了独特的优势:

  • Cursor 在后端重构上表现出色,通过实现稳健的模块化和自动化代码审查。
  • Claude Code 在前后端集成改进方面表现出色,尤其是在优化提示语后。

总体而言,这两款工具大致持平(各1.5分),这说明最佳选择最终取决于您的工作流程和环境偏好。偏好传统IDE环境且无缝集成终端的开发者可能更倾向于Cursor,而那些喜欢简洁的终端界面的开发者可能会觉得Claude Code更吸引人。此外,如果您刚刚开始学习或是一名非技术人员,正在寻找一个易于使用的编程工具,Cursor用户友好的界面可能更适合您。值得注意的是,Claude Code对三次简单的更改收费4.69美元,这种方式的费用可能会快速累积,这甚至可能比Cursor每月20美元的订阅费用还要贵,后者提供无限修改次数。

最终你的选择可能取决于你更看重传统IDE的使用体验还是终端操作的效率。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP