近年来随着人工智能(AI)大模型的迅猛发展,大模型在自然语言处理、计算机视觉、语音识别等领域的表现逐渐达到甚至超越人类的水平。在大模型的应用场景之下,如智能客服、阅读写作、图像生成等也随之进入生活提高工作效率。在编程领域中,也不断涌现出各类基于大模型的编程工具和开发平台,为开发者提升工作效率——豆包Marscode就是其一。
在本文中,我将带领各位小伙伴了解豆包Marscode编程助手的基本使用以及豆包MarscodeIDE的操作体验。之后在博客系统开发中,将分为博客系统的后端API服务、前端CMS、前端Web三大部分叙述,并且全程使用豆包MarscodeIDE完成项目开发。拭目以待一下,如何利用豆包Marscode助力全栈式地从0到1开发个人博客系统吧!
豆包MarsCode具备编程助手和云端集成开发环境CloudIDE两种形态。当然无论是编程助手还是CloudIDE,它们都提供以下能力:
可见豆包MarsCode提供的能力是十分多样的,足够应对我们开发中的大部分场景了。在后面的个人博客开发中也会逐一对这些功能进行应用、演示和讲解,感受豆包MarsCode强大的AI能力。
在正式开始豆包Marscode的使用之前,还需要先拥有一个账号。如果没有则跟随以下步骤注册吧。
豆包MarsCode编程助手需要在本地IDE中安装后才能使用,支持多种编程语言,目前可以在VisualStudioCode和JetBrainsIDE的插件市场中搜索到并安装使用。豆包MarsCodeIDE则无需安装,它是在云端的集成开发环境。下面分别介绍在这两大集成开发环境应用中如何安装豆包MarsCode编程助手。
Note:支持VisualStudioCode1.67.0及以上版本。
Note:支持JetBrains产品如IntelliJIDEA221.5080.210及以上版本。
这里我们演示在VisualStudioCode中配置豆包Marscode编程助手(IntelliJIDEA的则大同小异)。
在我的项目起步之初,我就直接决定选择豆包MarscodeIDE进行云端开发,而不是用本地IDE配合编程助手。在这里可以谈谈为什么使用豆包MarscodeIDE,它优势是什么,相比于本地IDE在开发体验上的有什么更为出彩的。
豆包MarscodeIDE原生内置了AI编程助手,在这一点上我们不需要单独安装编程助手就可以使用。其具备的功能同样包括代码自动补全与生成、问题修复、代码优化等能力,可以帮助你更高效地完成开发任务。
既然实现了云端开发环境,那么我们就不再需要担心本地开发设备的配置是否足够,对项目开发的算力是否足以支撑——豆包MarsCode弹性的云端资源可以满足任何项目的需要。
了解完豆包MarsCodeIDE的核心优势后,我相信小伙伴们都已经跃跃欲试了,下面来讲解如何开始使用豆包MarsCodeIDE。
创建好项目后就进入到豆包MarsCodeIDE工作空间,在这里我们就可以开始正式编码了。不过我们也可以先概览一下界面布局,先有个大致印象。
在使用豆包MarscodeIDE开发过程中,难免因为刚接触新工具而操作生涩,又或者面对莫名其妙的报错感到困惑始终排查不到原因,因此我在深度体验之后总结出了一些进阶的使用技巧及注意事项。在使用豆包MarscodeIDE开发的过程中如果有任何不解的地方都可以随时回顾本节。
即使豆包MarscodeIDE不受本地资源的限制就可以进行开发,但是在云端平台的资源也会有所限制。
BlogService作为个人博客系统的API服务,将为博客内容和网页提供数据访问和操作支持。根据整体工程规划,首先从这部分的API服务的搭建开始。
BlogService的技术选型如下:
好了,从这里开始我们正式的豆包MarscodeAI助手体验。在Mac上通过快捷键+U或者点击右侧的“AI”按钮调出AI助手对话框。在对话框中我们可以用自然语言向AI提问,并且可以进行多轮问答,不断补充细节,从而使AI助手的回答更加准确。
我们先让AI尝试“生成一个MD5Util”,它就会给出一个代码片段并且解释其主要用法。此时还可以留意到在生成的代码区块的右上角分别有三个图标选项,能够便捷地对生成内容执行操作:
Prompt:请根据我的数据表base_article.sql生成一个javaentity类
Prompt:使用lombok注解
Prompt:添加mybatis-plus的注解
Prompt:请继续补全,并注意数据库字段是蛇形命名法,例如@TableField("create_time")
Prompt:请根据我的BaseArticle实体类生成MyBatis的mapper文件
Prompt:请根据BaseAritcle类和BaseArticleMapper生成service代码
Prompt:请根据我BaseArticleService继续补充BaseArticleController代码
Prompt:请根据我的BaseUserService生成controller代码
在进行业务开发的过程中,也会随时对框架的核心代码进行补充。这里我会摘取部分内容的生成过程以供参考。
Prompt:生成一个UserContextHolder,用户处理UserContext,UserContextd的字段有id,username,session
Prompt:请帮在SessionInterceptor中完成拦截器代码,每次请求进来后校验cookie中的session
前面我已经让AI助手帮忙完成了基本的增删改查的业务代码,所以重新跟进业务进度,梳理一下目前主要欠缺、需要修改的功能。
Action:在编写代码时,光标处会自动提示预测代码,此时按下Tab键即可应用。
当完成一个接口业发或方法的代码逻辑后,别忘了加上注释方便API文档查阅和后续维护,这时就可以利用豆包MarscodeAI的代码注释生成这一功能。
Action:选中代码片段,然后在弹出的选项中点击“Doc”按钮,或在“Chat”中输入指令/doc
最后,在完成了接口开发后,通常都要先自行测试一遍,这是每个优秀程序员的自我修养!所以接下来借助豆包MarscodeAI的单元测试生成能力完成这部分的编写。
Action:选中代码片段,然后在弹出的选项中点击“UnitTest”按钮,或在“Chat”中输入指令/test
BlogCMS作为个人博客系统的内容管理系统,将为博客内容进行发布和管理。根据整体工程规划,在完成了BlogService的搭建后,进入这部分的开发,为后续的博客页面提供内容支撑。
BlogCMS的技术选型如下:
pnpmivue-routerpnpmipinia之后调整项目结构,主要有:
看一下页面效果,感觉挺不错的,HTML结构和CSS样式完全不需要修改直接就可以用。
Prompt:在我的AppLogin.vue中我需要用axios发起请求,成功后跳转到AppHome.vue
这里AI助手生成了一个大概的逻辑流程,只需要稍微修改一下就可以了。
接着先写好首页的路由配置,然后让AI生成首页。
Prompt:在修改和删除按钮中间再加上一个‘上线’或‘下线’按钮
Prompt:我要在进入AppHomeArticle时发起请求
Prompt:请帮我生成axois请求
Prompt:在ArticleList.vue跳转到ArticleDetail.vue时,分为创建、编辑、详情三种类型
豆包Marscode的代码生成不仅可以生成代码片段,也可以生成shell指令。我在提问如何引入bytemd时,AI的生成结果中有一段shellscript,此时可以点击在这个区块右上角的“Run”快速执行指令。当然这里的生成结果不够准确,正确的安装命令是:pnpmi@bytemd/vue-nextbytemd。
Prompt:请在我的ArticleCreate.vue中引入bytemd并使用
Prompt:请使用vue3的bytemd
BlogWeb作为个人博客系统的博客网页页面,用于呈现对外发布的博客内容。根据整体工程规划,在完成了BlogService和BlogCMS的开发,进入最后的这一部分开发。
要进行博客的页面开发,光靠想象还是很难有个具体的规划,虽然能够一点一点呈现,但结果也难免与自己设想的有出入,此刻如果有设计稿那将是一件锦上添花的事,也对过程结果更有把控。恰巧我正好有几张博客页面的设计稿(我自己设计的),如果没有参考别人或者我的也行(^^)。
豆包Marscode的代码解释能够理解整个项目工程,或者解释代码片段。如果要让AI理解整个工程可以在侧边栏AI对话框中进行提问,而要解释代码片段可以复制代码片段后在侧边栏AI对话框询问。当然还有一个更便捷的操作就是选中代码片段然后通过快捷键+I唤起内嵌AI助手,然后通过自然语言描述解释代码或发送指令/explain。在代码解释这项能力上AI还可以进一步地体现代码定位功能。比如我的页面header写好之后想重新调整菜单项的间距,由于样式太多我就直接尝试唤起内嵌AI助手提问。
Prompt:菜单项之间的间距样式在哪里
在编写代码的过程中总会遇到报错,无论是代码编辑区的还是终端的,豆包MarscodeAI都能完成错误修复。在有明显的报红错误处,指针移动到此会自动显示“AIFix”,点击就可以让AI进行修复错误;又或者选择代码片段让AI检查并修复潜在的警告。
Action:指针移动到报红报错处,在显示的选项中点击“AIFix”
Action:选择代码片段,在“Chat”中发送指令/fix
footer是我整个BlogWeb项目的最后一块开发内容,也是整个博客系统的收尾。因为比较简单所以直接用AI生成了代码,之后再稍加修改。
Prompt:请根据我的项目生成页脚
激动人心的时刻就是终于可以将我的个人博客上线了。这里主要讲解BlogWeb的部署,因为BlogService的部署方式是通过Serverless运行的,BlogCMS则可以随时在豆包MarscodeIDE需要时运行所以就不部署了(当然也可以参照BlogWeb的部署方式)。以下是各个项目可供参考的部署形式:
使用以下命令配置Git的用户信息,包括用户姓名和电子邮件地址。
gitconfig--globaluser.name"yourusername"gitconfig--globaluser.email"youremail"7.1.2生成SSH密钥在终端中运行以下命令生成SSH密钥,生成的公钥默认位于/home/cloudide/.ssh/id_rsa.pub。
cat/home/cloudide/.ssh/id_rsa.pub在Github中进入Settings-SSHandGPGkeys,点击“NewSSHKey”并添加公钥。
运行ssh-Tgit@github.com命令,如果出现以下信息只需确认ECDSAkeyfingerprint是否与Github提供的一致,一致则输入“yes”,即可成功通过SSH连接到GitHub。
首先需要在Github创建新的代码仓库,然后执行以下命令。
配置项目,基本上不用更改,直接点击“Deploy”(部署)即可。
拥有一个个人博客对个人来说无疑是会带来诸多效益的:
博客除了能为个人发展带来效益外,还能在一些场景中商业化:
豆包Marscode的优点是显而易见的:
当然了豆包Marscode的缺点也是有的,毕竟AI也不是尽善尽美的,当中存在一些不足。比如:
优点缺点都说了,那么这里给开发者一些使用豆包Marscode的建议: