AI在线 AI在线

上万点赞!AI辅助神器Cursor助力开发效率翻倍

一、灵魂拷问 - “AI提效200%? 我信你个鬼! ”提到AI辅助开发,很多同学都吐槽过。

一、灵魂拷问 - “AI提效200%?我信你个鬼!”

提到AI辅助开发,很多同学都吐槽过。

“AI写的代码都很垃圾啊,问AI问题很多时候就像对牛弹琴一样,答非所问”。

其实并不见得是AI无法胜任我们的开发需求,关键在于要掌握正确的使用方法,就像学习IDE和Git工具一样。

那为什么很多同学使用AI的效果不好呢?通常有以下三个原因:

1.提示词不够精准

许多人习惯用模糊指令,比如“写个登录代码”,但AI不是人类,它需要明确的任务路径。正确的提问方式应当为:“使用 Spring Boot 框架,搭配 MySQL 数据库,采用 BCrypt 加密算法,编写包含用户名密码验证、登录失败提示、用户会话管理的用户登录功能代码”。

2.使用方式不当

我们不能期待AI完全替代我们来进行思考,正确的AI辅助开发思路应该为:

1:用提示词生成80%框架代码。

2:人工补充核心业务逻辑。

3.工具选择不当

使用通用的大模型AI工具进行代码生成,而不是专业的开发工具。有时候我们会发现,让ChatGPT生成代码,光给AI讲清需求背景以及代码上下文就得反复沟通十多次,有这功夫确实不如我自己动动手了。

二、Cursor的杀手锏 - 不是“问答AI”,是“编码协作者”

Cursor与通用大模型AI的本质区别在于与代码环境深度集成,解决了基于通用AI进行代码生成时,沟通吃力的致命缺陷。

它“看得见”你的代码

Cursor 不仅仅是一个代码补全工具,它实际上是一个完整的 IDE,它的核心是围绕 AI 驱动的编程体验进行设计。基于Cursor进行开发时,再也不需要在聊天框里费力描述代码,省去了复制粘贴的麻烦。你只需要把代码片段、多个文件、甚至整个文件夹选中并拖动到Cursor的Chat界面,Cursor就可以基于上述的代码背景完成开发。

任务自治:从指令到交付的闭环

通用大模型AI往往只会生成代码片段或描述,在此之后你需要手动进行逐行整合。

而Cursor会从创建代码目录开始,到Cursor帮你创建测试类并自动执行测试完毕为止,完整的进行代码交付。中途出现的任何问题,Cursor会给出方案,并让用户选择如何修改。然后重新自动进行测试,直到代码可用为止。

我们以让Cursor生成一个简单的天气爬虫为例: Cursor基于我们的要求生成完成代码后,会自动展开测试

Image textImage text

此时Cursor发现没有爬取到任何天气数据后,给出了两个建议让我们选择。

Image textImage text

我们让Cursor自动修复后,Cursor会重新引导用户执行测试,我们点击右上角“Run”执行脚本,这一次爬虫可以正常运行。

Image textImage text

风险把控:Cursor驱动代码审查

在代码审查方面,Cursor能够基于用户给出的规范更灵活地识别不合理的代码,极大提升代码质量和审查效率。并根据CR的结果自动生成修复方案并应用。下面给出一个CR的提示词案例:

复制
使用下面的git命令, 输出当前分支与远程主分支的差异, 输出到cr.diff 文件中
git diff origin/master  > cr.diff
扫描diff 文件中的差异代码。reviwe 的规则如下

1. 方法体行数应少于100行, 不包括空行,和注释
2. 枚举定义需要有两个以上属性, code, name, 并且需要有通过code获取枚举项的方法
3. 接口返回false , 前端是否有对false进行处理 
4. throw 了异常的位置, 一定要打log日志 
5. 所有的public 公有方法都要打印入参log.info日志 
6. 所有的public 公有方法, 结束都要打印结束日志 
7. 所有调用rpc的方法, 都要打印日志
8. 所有方法都要有方法级别的注释
9. try catch异常后, 如果在catch 中又抛出了新创建的异常时, 需要将原异常赋值给新异常, 案例如下:
    ```java
        try {
            ApiResult<String> result = uploadService.getUploadId(uploadIdDTO);
            log.info("UploadServiceHelper#getUploadId result:{}", JsonUtils.toJsonWithoutNull(result));
            if (result.isSuccess()){
                return result.getData();
            }
        }catch (Exception e){
            log.error("UploadServiceHelper#getUploadId 调用uploadService.getUploadId失败", e);
            throw new MyException("调用uploadService.getUploadId失败", e);
        }

    ```
10. 不能调用被标记@Deprecated 的属性或方法或类
11. 定义的常量值, 给出清晰的注释说明用途, 避免硬编码
12. 标注了@transactional的方法要明确回滚异常类型, 对于只读操作要标注只读readOnly=true 提高性能
13. 3次以上字符串拼接使用StringBuilder代替字符串拼接
14. 检查是否存在其他破坏兼容性的改动或逻辑上的错误

遍历所有规则, 一个规则一个规则的去检查增量代码的规范性, 每个规则进行Review时, 使用独立的上下文, 最后归纳所有的Review结果.
输出违反规则的文件位置, 并修改对应文件 符合规范
cr 结束后将cr.diff 文件删除

然后Cursor会给出如下的输出:

Image textImage text

Image textImage text

最后,Cursor会基于上述审查结果自动进行代码修改,用户可以手动选择接受。

这些能力的叠加,使得在实际开发中,原本需要一天完成的任务,借助Cursor往往三四个小时就能搞定,真正实现效率翻倍的可能。

三、关键提醒:效率倍增的前提是“善用其长,避其之短”

  • 它不是“魔法”是“神器”:核心价值是处理定义明确、模式化、有上下文的任务,而不是替代你的设计、架构以及核心业务逻辑。
  • 核心原则:Review, Review, Review!生成的代码/修改必须仔细审查!它能帮你写出功能正确、语法规范的代码,但业务逻辑的正确性和最优性最终在你。
  • 清晰指令是关键:描述需求时尽可能清晰、具体。就像给一个聪明的实习生下任务一样。

四、结语:拥抱进化,成为更强大的开发者

拥抱AI的本质,是开发者的一场战略性进化。它绝不意味着能力的退化,而是帮助开发者将精力聚焦于更高级的任务(设计、架构、复杂业务、创新)。就像工匠有了电动工具,大师依然是大师,只是效率更高而已。

关于作者,张晨朝,侠客汇Java开发工程师。

相关资讯

网络安全是Agentic AI成功的关键,我们该怎么做?

根据专家预测,Agentic AI将带来两到三倍于当前大语言模型(LLM)的生产力提升,因此2025年或将成为Agentic AI的元年。 然而,就如任何强大的新技术一样, Agentic AI具有巨大的潜力,但也存在着重大的安全风险。 一旦这些自主系统偏离预期轨道,后果可能是灾难性的。
2/17/2025 1:00:00 AM
安全牛

从DeepSeek MoE专家负载均衡谈起

上周中的时候, 同事给我了一份线上DeepSeek-R1推理的Expert激活的数据用来研究一些专家负载均衡的算法, 当然这些线上数据来自于公司内部的请求, 从中观测出前面10层专家基本上是相对均衡的, 而越到后面不均衡程度差异越大. 当时讨论到这个问题时, 是怀疑内部的一些请求是否专注于电商领域而带来的不平衡特性, 于是做了一些研究. 恰好搜到Intel的一篇论文《Semantic Specialization in MoE Appears with Scale: A Study of DeepSeek-R1 Expert Specialization》[1]有一些基于语义的MoE分析专家的专业性相关的问题, 再加上前几天看到某个公众号采访某院长的一个比较有趣的说法:“Dense模型适合toB业务,MoE模型适合toC业务”.
3/11/2025 12:35:00 AM
zartbot

人工智能催生“零知识”威胁行为者

人工智能是一把 双刃剑。 一方面,人工智能帮助人们更好更快地完成工作;另一方面,它也使心怀恶意的人成为诈骗者、黑客分子和网络罪犯。 零知识威胁行为者的崛起网络犯罪业务利润丰厚;然而,传统上,只有拥有先进技术技能的人才能从事这一行业。
4/7/2025 1:45:00 AM
何威风
  • 1