当前位置: 首页 > article >正文

这个 AI 懂 Vue 吗?

作者:前端俱乐部

写在前面

最近海外的 AI 编辑器 Cursor 好像挺火的,与此同时,字节跳动也推出了豆包MarsCode编程助手,可以直接生成代码和极限编程。

豆包MarsCode AI 支持网页版编辑器,但我个人更喜欢让它和人气爆棚的 VSCode 强强联手,直接在扩展市场搜索即可一键安装,免费使用。

个人觉得 AI 编程助手之所以流行,是因为在极限编程中存在一个概念:Pair Programming(结对编程)。前 AIGC 时代结对编程需要同事或朋友联机编程,而后 GPT 时代则可以让 AI 和我们实时人机互动。

所以,本期我想分享在 VSCode 和 豆包MarsCode AI 结对编程的渐进测评和使用体验,本文代码主要以 Vue 框架为例。

AI 生成 Vue

目前 Vue 最新的主版本是 3.x,部分公司考虑到兼容性也有在用 Vue 2。

但我们不知道豆包MarsCode AI 懂不懂 Vue 3,所以在使用 AI 工具之前,我一般都会通过提问来试探一下其预训练模型的最新数据。

操作上没有任何黑科技,大部分 AI 都支持直接打字或语音提问即可,举个栗子:

可以看到, 豆包MarsCode 的情商还是比较高的,说自己虽然不如“Vue 之父”,但也是一个很懂 Vue 的 AI 助手。

这说明豆包MarsCode 的预训练模型里已经包含了 Vue 的相关数据,然后我们就可以大胆拷问它了。

首先,我让 豆包MarsCode 直接生成一段 Vue 3 的示例代码,这是它给出的答案,大家看看怎么样? 

 

AI 结对编程还是很方便,不管是学习还是开发,确实是一个任劳任怨的辅助。

当年我刚实习刚写 Vue 2 的时候,我的代码可能还不如它,因为 AI 代码语义化方面在大模型的训练后天然有优势,虽然是人工智能,但代码却很人性化。

重构代码屎山

豆包MarsCode 除了可以生成代码,还可以用来重构优化代码。

比如上述示例中,我们其实更推荐组合式 API,那就可以让 AI 自己重构,加班是不可能加班的。

这是我让豆包MarsCode 重构之后的代码示例:
 

 可以看到,基本符合我们的需求。如果我们需要从旧项目迁移到新项目,重构工作直接委托给 AI 似乎就欧了。

此外,在 Vue 3 更新的版本中,我们更偏爱 <script setup> 语法糖,但豆包懂不懂 Vue 语法糖呢?

可以看到, 豆包MarsCode也能够使用新型语法糖来重构代码,前提是我们的需求要明确。
就我个人而言,VSCode 和 豆包MarsCode 插件强强联手的优势在于,AI 除了生成和解释代码,还可以点击右上角的按钮,直接将代码插入或者新建文件,直接解放双手,有点零代码或低代码开发的体验了!

最骚的是,我还测试了一个冷门的 Vue 3 功能,一般我们只会在模板中使用 v-bind 指令,但是 Vue 3.2 之后我们也可以在 <style> 标记中使用 v-bind。

可以看到,虽然 Vue 新语法比较小众,但豆包还是能够顺利实现。

人工智能之不能

AI 不会考虑代码风格或时代潮流,只会严格按照我们的指令来生成代码。

我目前个人体验比较头大的问题有两个,但解决方案也不复杂,一来我们需要熟悉一定的 Prompt 提示语技巧,二来我们可以借助豆包MarsCode AI 来弥补编程助手的不足。

就我目前的测试, 豆包MarsCode AI 目前是使用最新的数据进行训练,所以 Vue 3.5 的新功能也难不倒它。由于豆包MarsCode和编程助手都是字节跳动的产品,我相信最新数据很快应该能得到同步,到时候又直接少了一大痛点,perfect!

高潮总结

本期我们使用了豆包MarsCode编程助手进行结对编程,AI 在代码生成和重构优化方面确实效果拔群,但同时对程序员有一定的 AI 素养要求,需要我们去明确自己的代码需求。

我最满意的一点在于,豆包MarsCode 编程助手是作为 VSCode 插件直接集成的,无缝衔接,在 IDE 里结对编程更容易进入禅模式的心流状态,不会像其他各种网页版 AI 助手切屏那样导致编程时注意力分散。

同时, 豆包MarsCode编程助手不仅可以用于实际开发中,在学习技术的时候,我们也多了一个 AI 的外部视角,可以通过元认知来审查代码,这其实也是结对编程的优势之一。

你可以直接注册和抢先体验豆包MarsCode 编程助手,直接作为 VSCode 扩展插件尝试结对编程,提前尝试 AIGC 时代的低代码编程方式。
 

 


http://www.kler.cn/a/397106.html

相关文章:

  • 容器内的Jenkins使用docker部署服务,服务数据文件挂载问题
  • 每天五分钟机器学习:支持向量机算法数学基础之核函数
  • 向潜在安全信息和事件管理 SIEM 提供商提出的六个问题
  • 记录一下跨域的问题,讲讲跨域
  • 机器学习 决策树
  • 【从零开始的LeetCode-算法】3270. 求出数字答案
  • YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11 推理的 C++ 和 Python 实现
  • g++与gdb简单学习
  • git常用命令+搭vscode使用
  • 【云岚到家】-day10-2-冷热处理及统计
  • mp4文件与dash流传输
  • 5. langgraph中的react agent使用 (从零构建一个react agent)
  • 2个word内容合并
  • Go语言24小时极速学习教程(四)MySQL数据库的增删改查
  • 求矩阵中最小元素及其位置
  • 区块链安全性解析:Web3的去信任化与技术挑战
  • SpringBoot多环境+docker集成企业微信会话存档sdk
  • Android 最新的AndroidStudio引入依赖失败如何解决?如:Failed to resolve:xxxx
  • Arcgis地图实战三:自定义导航功能的实现
  • code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED 证书过期
  • 基于社交关系的电商平台发展与创新:以微店买家版为例兼论开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序
  • uniapp 面试题总结常考
  • 5.4.2-1 编写Java程序在HDFS上创建文件
  • 深度学习--优化器
  • 车载诊断架构 --- 关于DTC的开始检测条件
  • Node.js | npm下载安装及环境配置教程