掘金 人工智能 前天 19:48
上万点赞!AI辅助神器Cursor助力开发效率翻倍
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章探讨了如何利用AI工具提升开发效率,并以Cursor为例,介绍了其作为“编码协作者”的优势,以及通过代码审查、任务自治等功能实现效率提升200%的可能。文章强调了正确使用AI的关键,包括精准的提示词、合理的工具选择,以及对生成代码的仔细审查。作者认为,拥抱AI是开发者的一场战略性进化,能够帮助开发者将精力聚焦于更高级的任务。

💡 提示词是关键: 许多人使用AI效果不佳,是因为提示词不够精准。需要像给实习生下达任务一样,使用清晰、具体的指令,才能让AI更好地理解需求。

💻 选择合适的工具: 通用大模型AI在代码生成方面存在沟通成本高的问题。Cursor与代码环境深度集成,解决了这一问题,能够基于代码背景完成开发,并提供任务自治功能。

✅ 代码审查不可或缺: Cursor能够基于用户给出的规范进行代码审查,自动生成修复方案并应用。生成的代码/修改必须仔细审查,确保业务逻辑的正确性。

🚀 效率提升的秘诀: Cursor能够处理定义明确、模式化、有上下文的任务,通过代码补全、自动测试、代码审查等功能,将原本需要一天完成的任务缩短至三四个小时。

1. 灵魂拷问 - “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讲清需求背景以及代码上下文就得反复沟通十多次,有这功夫确实不如我自己动动手了。

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

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

它“看得见”你的代码

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

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

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

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

我们以让Cursor生成一个简单的天气爬虫为例:Cursor基于我们的要求生成完成代码后,会自动展开测试此时Cursor发现没有爬取到任何天气数据后,给出了两个建议让我们选择。我们让Cursor自动修复后,Cursor会重新引导用户执行测试,我们点击右上角“Run”执行脚本,这一次爬虫可以正常运行。

风险把控: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会给出如下的输出:

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

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

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

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

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

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

想了解更多转转公司的业务实践,欢迎点击关注下方公众号

转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI辅助开发 Cursor 代码审查 开发效率
相关文章