自从GPT带动全球AI热潮,AI席卷着各行各业。而在编程界也发生了巨大的变化,最出名的莫过于OpenAI与GitHub联合开发的Github Copilot。Github Copilot带动了一大堆AI编程工具的出现。
当然除了Github Copilot之外还有很多优秀的AI编程插件
基本AI编程工具的功能都差不多:
- 代码补全:根据当前代码上下文自动补全代码。
- 根据注释生成代码:根据注释描述生成相应的代码。
- 方法和函数生成:根据方法名或函数名自动生成该方法或函数的代码。
- 生成测试代码:生成测试代码。
- ....
这里选择豆包MarsCode来展示AI编程插件的功能:
MarsCode 是豆包旗下的智能编程助手,提供以智能代码补全为代表的核心能力,支持主流编程语言及 IDE,能在编码过程中提供单行或整个函数的建议,同时支持在用户编码过程中提供代码解释、单测生成、问题修复、技术问答等辅助功能,提升编码效率与质量。
安装方式
JetBrains与 Visual Studio Code都可以安装,比如下面就是Visual Studio Code中编程助手的安装,在市场搜索后进行安装。
安装好后就可以看到AI功能界面
代码生成
豆包 MarsCode 编程助手可以根据我们的要求描述生成对应的代码片段。
在输入框中用自然语言描述我们的需求,一般安装好MarsCode在IDE会出现MarsCode的图标,点开后会出现MarsCode窗体,如果没有也可以通过Ctrl+U快捷键调出MarsCode窗体。
如:直接在会话窗口中输入:用python生成一个简单的扫雷游戏
MarsCode会生成相应的代码,也会对代码大概的原理说明:
以下代码创建了一个基于tktiner的窗口,生成10x10的网格,随机设置10个地雷,并计算每个单元格周围的地雷数量。通过点击单元格来揭示它是否包含地雷,若获胜则显示消息,点到地雷则游戏失败重启。
生成后可以看到这里有一些工具栏,比如选择以新文件插入,就会在项目中保存为一个新文件。
编号 | 说明 |
---|---|
1 | 点击 复制 按钮,复制代码框中的代码片段。 |
2 | 点击 插入 按钮,将代码片段插入至对应的位置。 |
3 | 点击 添加文件 按钮,将代码片段生成为一个单独的文件。 |
然后就是直接运行,可以看到运行后的扫雷游戏界面
这只是一个简单的程序,要是生成复杂的程序可能会运行出错。这时可以使用MarsCode的另一个功能就是智能修复功能(后面会详细介绍)。
代码补全
豆包 MarsCode 编程助手可以帮助你自动补全后续代码。
在对应位置添加注释,然后敲击回车键换行。豆包 MarsCode 编程助手会阅读并理解代码注释,然后直接生成代码。
比如需要实例化一个类对象,我新建一个Java Bean后,直接//就会自动生成注释,就连注释都不用写。
然后按Tab键就可以自动补全补全化Java Bean不用自己一个个的敲
代码解释
选中代码片段后,你可以向豆包 MarsCode 编程助手发送代码解释指令。
编程助手将解释选中的代码片段。
你也可以使用以下的方式来让它解释代码:
- 在侧边对话视图的输入框中输入,解释选中的代码片段;
- 在侧边对话视图的输入框中输入 /explain 指令;
- 选中代码片段后右键,然后在快捷菜单中选择 MarsCode > Explain Code;
代码注释生成
选中代码片段后,向豆包 MarsCode 编程助手发送代码注释生成指令。选中代码后会出现如下图的功能菜单
也可以在输入对话框里输入 / 调出命令指令
然后编程助手将为选中的代码片段,生成代码注释。
这是最后生成的效果,非常的详细
智能修复
当代码中存在编译型错误时,窗口中的代码会有相应的效果提示
鼠标放上去后就会出现AI修复的窗体,点击AI修复,会出现相应的解决方法
如果代码出现运行时错误,在IDE控制台就会出现AI修复的按钮
或者选中有问题代码片段后,在对话框中输入自然语言描述(例如:修复选中的代码片段)或 /fix 指令,然后点击右侧的 发送 按钮或敲击键盘上的回车键。豆包 MarsCode 编程助手将为选中的代码片段进行智能修复。
单元测试生成
相信大多数做过开发的人都会有这样的感觉?
- 团队成员没有写测试的习惯,没有意识到写测试的重要性,不想写。
- 代码难于测试,不会写。
- 赶进度,没有时间写。
有了AI编程助手后,这些问题都可以解决了,一键给我们直接生成
测试用例还是非常丰富的,覆盖而比较广。
插入后,执行
不同语言代码转换
对于程序员来说一般公司项目组都是同一种编程语言,如果公司大了,或者是原项目的升级改造就会出现从一种开发语言转换成另一种开发语言。
这种情况对程序员要求比较高,大多数程序员主要是掌握某一种开发语言。这时MarsCode的代码翻译功能就非常实用了
不过目前MarsCode暂时还不支持代码转换,这里用deepseek编程助手来转换的
转换成Java代码后的运行效果