1. 序言
最近朋友安利了一款新的 AI 编辑器 cursor
,本来我是不置可否的。毕竟已经有了 通译灵码
豆包
等等的一系列 AI代码提示
的编辑器插件。
为了这个直接自己定制一个编辑器感觉好像没有太大的必要。但是学习了 cursor
之后,我觉得 cursor
可能是未来 AI编辑器 的新方向吧。
2. 编辑器亮点
2.1 本地自定义文档
在 cursor
中点开设置中,里面的 Features
中可以看到有一个 Add new doc
的按钮,这里可以将和代码相关的 框架、库、规范 等等相关的网址依赖添加进来并进行索引。
然后就可以在生成代码时引用这些库,生成更加符合项目的代码
2.2 引用文件
在和
cursor
中可以通过 @ 引入所需要的文件,并且根据该文件来生成定制化的代码。
2.3 Composer 批量代码生成功能
这个可以说是我用过的最爽的一次性代码生成功能了。
准确的来说有了这个,那么你甚至不用再自己创建文件,询问 AI
然后再填充代码。
cursor
的 Composer 功能直接为你全部搞定,生成你所要实现功能的文件,修改你项目中已有的文件。
你只需要在 AI
为你做完所有功能之后,修改一些细节,点击同意就完成了所有功能开发。
在编辑器中按 ctrl + shift + i 启动 Composer 界面后。
这里我要求同时修改 api
的命名 并修改 service
中的命名。
cursor
便会将我的要求进行分步,同时对 ActApi
和 ActService
做了修改。
这种方式可以极大的节省创建文件然后再询问AI生成的时间,并且让 AI 有一次性为我们完成所有工作的可能
3. 将 cursor 代码生成器的实践
我马上想到利用 cursor
替我做代码生成,不是比目前的机械的代码生成器生成的代码可用度是否更高一些。也就是我可以通过描述来定制文件生成的过程。
毕竟目前市面上大量代码生成器生成的代码是死的,不够灵活,配置起来也很麻烦,而且有些还需要自己慢慢拷贝生成好的文件到目录中。
这样效率虽然比不用代码生成器快很多,但是总的来说还是有一个体力劳动和心智负担在。就是不是特别爽。
这里我利用 cursor
的 Composer 来直接为我生成所需要的 后端
代码。首先将我们的一个要生成的模板加入到 Composer 当中。后续
Composer
将会根据添加进来的文件进行代码生成。
CREATE TABLE `book` ( `book_id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '书籍ID', `book_name` varchar(255) NULL COMMENT '书籍名称', `auth_name` varchar(255) NULL COMMENT '作者名称', `cover` varchar(255) NULL COMMENT '书籍封面', `is_top` tinyint NULL COMMENT '是否置顶', `create_time` datetime NULL COMMENT '创建时间', `update_time` datetime NULL COMMENT '更新时间', PRIMARY KEY (`book_id`) );
请根据 book 表为我生成 api、service、mapper、form 相关代码,代码和规范参考 RepoChina 的代码。
请为代码增加良好和必要的注释,注释不要太多
请使用 @QueryTool.java 和 @QueryCondition.java 做查询
需要为 book_name 添加模糊查询
这里我将所需要的 建表 语句复制进来,并告诉 AI
根据上面我引入的 RepoChina
相关的类做代码生成。
然后添加一些定制化的要求,比如需要根据哪些字段做模糊查询。和一些特殊的工具类。
最后看看生成的效果,可以说基本完全符合要求了。 可以看看生成的代码的一些细节部分
如果有些不满意也可以在对话框中,对已生成的代码进行修改。
可以说 cursor
基本可以完全替代目前市面上一众代码生成器。并且有些方面可以比它们做的更好。
可以想象对于 CURD
这种工作来说,在可以预见的未来是完全不再需要程序员自己去写一行代码了。
只需要告诉 AI
需求,从建表到页面一条龙服务全部都能搞定。
4. cursor 的不足
介绍完 cursor
强大的代码生成能力,接着说说用的不爽的一些地方吧。
- Componse 没有 clone 功能,每次生成完之后,假如想复用之前的一些配置,只能自己新开窗口进行配置。
- 生成的代码不能直接进行编辑,需要先同意创建该文件之后才能编辑。
- 生成的过程中容易有一些省略代码不生成的情况。
- 生成的文件名称不能够修改,这方面没有联动起来
- 编辑器本身还不够完善,加上我确实不太喜欢这种轻量级编辑器,感觉很不方便
大概就这么多吧,另外就是生成的代码还是受限于目前的 GPT AI
水平, 它可以生成更加符合你标准的代码。但是不会超过目前 AI
的代码水平。
哈哈,所以也不要对这个抱有太高的期望。期望越大,失望越大
5. 结语
还是有比较深的危机感吧,每一次变革最先淘汰的就是这个行业的最底层,刚好我也是能写写 CURD
的程序员。
太难的脑子不够用学不会啊,只能干点简单的不用太费脑子的活。
不过对这个未来还是很期待啊,赛博女友、脑机接口、虚拟现实等等。感觉未来的人不要太爽好不好。就是可惜没有晚生几百年,能看到更加绚丽的世界。
哈哈,照目前的速度看,感觉还是很难活到这些高科技出现的那一天了。赛博女友未来几十年内可能还是有点希望。但是那时候我们都老了