参考
https://www.marscode.cn/events/s/_6sZTWDVN4A/
https://www.marscode.cn/practice/plqo93n4qy39ko
关于MarsCode 编程助手
智能代码助手简介
代码助手可以快速的帮我们补充代码,修改代码,添加注释,翻译中英文,起变量函数名字等操作,十分的友好,这类代码助手现阶段有较多的产品,比如:
MarsCode编程助手
Baidu Comate智能代码助手
GitHub Copilot
通义灵码
Bito
本文主要基于MarsCode编程助手进行高效代码编程体验,let’s go!!!
https://www.marscode.cn/events/s/_6sZTWDVN4A/
MarsCode编程助手简介
豆包 MarsCode 隶属于北京引力弹弓科技有限公司(2024 年 03 月 26 日成立),豆包 MarsCode 为你提供了编程助手和 IDE 来协助你完成编程任务。
豆包 MarsCode 编程助手
是豆包旗下的 AI 编程助手,提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE,在开发过程中提供单行代码或整个函数的编写建议。此外,它还支持代码解释、单测生成和问题修复等功能,提高了开发效率和质量。 更多信息,请参考豆包 MarsCode 编程助手的文档。
本地 IDE 中快速安装及使用
在 Visual Studio Code 中安装
快速安装:
-
单击如下连接
MarsCode编程助手 -
登录,建议先创建一个稀土掘金的账号(类似csdn),
-
选择获取编程助手
-
根据情况选择编辑器,然后单击立即安装
手动安装:
打开 Visual Studio Code 插件市场下载 MarsCode
并安装。安装后请重启 IDE并登录,即可体验 AI 助力编码
在 JetBrains IDEs 中安装
开发一个贝叶斯算法的案例
输入如下问题
写一个基于sklearn的贝叶斯算法的案例,适合计算机专业大三同学学习的,要求包括导入依赖,数据集加载,拆分数据集,数据集探索,数据集处理,实例化三种贝叶斯算法,并分别基于三种贝叶斯算法完成模型训练,模型验证,模型评估,模型预测,模型保存,模型加载。
新建文件,运行,提示如下警告
D:\ProgramData\Anaconda3\envs\py312\Lib\site-packages\sklearn\metrics_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use
zero_division
parameter to control this behavior.
_warn_prf(average, modifier, f"{metric.capitalize()} is", len(result))
修复问题
/fix
按照要求,把经过给入对话框
D:\ProgramData\Anaconda3\envs\py312\Lib\site-packages\sklearn\metrics_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use
zero_division
parameter to control this behavior.
_warn_prf(average, modifier, f"{metric.capitalize()} is", len(result))
MarsCode编程助手提供的功能
多种大模型与代码补全
依据官方,提供的功能如下:
多模型切换和代码补全
目前的支持三种大模型
代码补全,可以通过写注释的方式,自动代码片段
场景一:在对应代码处,敲击回车键换行。豆包 MarsCode 编程助手会阅读并理解当前代码,然后自动补全后续代码。
场景二:在对应位置添加注释,然后敲击回车键换行。豆包 MarsCode 编程助手会阅读并理解代码注释,然后直接生成代码。
将鼠标悬浮至自动补全的代码区域,然后按需进行一下后续操作:
点击 接受 按钮或按下 Tab 键,添加自动补全的所有代码。
点击 接收 Word 按钮或使用 Ctrl + → 快捷键,逐字添加自动补全的代码。
代码补全 Pro (Beta)
豆包 MarsCode 编程助手支持基于上一次的编辑内容及代码情况,预测下一个改动点并给出代码推荐。
光标停在期望触发的位置时,可以通过快捷键
Ctrl+Shift+Enter
主动触发推荐,并通过Tab 采纳
。
当采纳了某个推荐内容后,会触发预测下一个改动点的推荐,点击 Tab 跳转到相应预测行,再点击 Tab 采纳推荐内容。该功能目前仅支持 Visual Studio Code。
代码如下
a =[]
for i in range(10):
a[i] = i+1
print(a)
代码解释
理解项目仓库,帮助用户准确解释代码从而快速上手开发。
选中代码片段后,你可以向豆包 MarsCode 编程助手发送代码解释指令。编程助手将解释选中的代码片段。发送指令方式如下:
在侧边对话视图的输入框中输入自然语言描述
,例如:解释选中的代码片段;
在侧边对话视图的输入框中输入 /explain 指令
;
选中代码片段后右键
,然后在快捷菜单中选择MarsCode > Explain Code
;
点击代码顶部(Visual Studio Code)
或左侧 Logo 中(JetBrains)的 Explain 按钮
。
代码生成
豆包 MarsCode 编程助手可以根据你的自然语言描述生成对应的代码片段。
在输入框中用自然语言描述你的需求。
点击 发送 按钮或敲击回车键。
豆包 MarsCode 编程助手将生成所需代码片段。
代码编辑
豆包 MarsCode 编程助手可以编辑指定代码,包括重构、优化、修改部分逻辑等。
你可以通过自然语言描述代码编辑需求。
选中代码片段,然后在对话框中输入自然语言描述,例如 “优化选中的代码片段”。
点击 发送 按钮或敲击回车键。
代码注释生成
选中代码片段后,向豆包 MarsCode 编程助手发送代码注释生成指令。编程将为选中的代码片段生成代码注释。
豆包 MarsCode 编程助手默认生成函数级注释,你可以通过自然语言指定生成更详细的行间注释。
发送指令的方式如下:
在侧边对话视图的输入框中
输入自然语言描述
,例如:为所选代码片段生成注释;
在侧边对话视图的输入框中输入 /doc 指令
;
点击代码顶部(Visual Studio Code)或左侧 Logo 中(JetBrains)的 Doc 按钮
。
生成代码注释后,你可以按需进行以下操作:
单元测试生成
选中代码片段后,向豆包 MarsCode 编程助手发送单元测试生成指令。编程助手将为选中的代码片段生成单元测试。发送指令的方式如下:
在侧边对话视图的输入框中
输入自然语言描述
,例如:为所选代码片段生成单元测试;
在侧边对话视图的输入框中输入 /test 指令
;
选中代码片段后右键,然后在快捷菜单中选择 MarsCode > Generate Test
;
点击代码顶部(Visual Studio Code)或左侧 Logo 中(JetBrains)的 Test 按钮
。
智能修复
当代码中存在错误时,窗口中的代码文件名称会高亮,名称右侧会提示错误数量。
选中有问题代码片段后,在对话框中输入自然语言描述(例如:修复选中的代码片段)或 /fix 指令,
然后点击右侧的 发送 按钮或敲击键盘上的回车键。豆包 MarsCode 编程助手将为选中的代码片段进行智能修复。
生成智能修复过的代码片段后,你可以按需进行以下操作:
智能问答
唤起对话框后,你可以在输入框中输入你的问题,然后点击 发送 按钮或敲击回车键,豆包 MarsCode 编程助手将回答你的问题。你可以进行多轮问答,不断补充细节,从而使插件的回答更加准确。
切换对话语言
智能问答中,你可以设置编程助手的回复语言。点击问答对话框右上角的设置按钮,选择你想切换的语言。
VSCode快捷键管理
快捷键列表
管理快捷键
你可以在 IDE 中管理豆包 MarsCode 编程助手的快捷键。
Visual Studio Code
打开 Visual Studio Code。
点击左下角的 管理 按钮,然后在快捷菜单中选择 键盘快捷方式。
在 键盘快捷方式 窗口的输入框中,输入 “MarsCode” 关键词,筛选出豆包 MarsCode 编程助手的快捷键。
按需修改组合键。
plantUML插件安装
准备工作
>安装 Java: 确保你的电脑上安装了 Java(PlantUML 需要 Java 环境)。
你可以从 Oracle 或 OpenJDK 下载并安装。
安装完成后,运行 java -version 确认安装成功。
>下载 Graphviz: PlantUML 需要 Graphviz 来生成某些图表。
下载地址:Graphviz 官网
安装完成后,将 dot 命令添加到环境变量路径中。
cmd黑窗口下输入:dot -version
确保 java 和 dot 命令可以在终端运行。
如果没有安装 Java 或 Graphviz,参考前面的准备工作。
VS Code 安装 PlantUML 扩展:
打开扩展市场(快捷键 Ctrl+Shift+X)。
搜索 PlantUML,点击 Install。
配置 PlantUML 运行环境:
在 VS Code 中创建 .puml 文件或.uml。
按快捷键 Alt+D 打开预览窗口。
也可以通过如下方式实现预览
新建a.puml文件,内容如下
@startuml
actor User
participant "Client" as client
participant "Server" as server
participant "Database" as db
User -> client: 发起请求
client -> server: HTTP 请求
server -> db: 查询数据
db --> server: 返回数据
server --> client: 返回响应
client --> User: 显示结果
@enduml
可以在右侧实现实时预览
MarsCode编程生成plantUML案例
用MarsCode了解plantUML
介绍下plantUML能生成哪些图
输出:
PlantUML 是一个开源工具,通过简单的文本描述就能生成多种类型的 UML 图和其他图表。以下是它支持生成的主要图表类型:
- 结构类图
类图:展示系统中的类、类的属性、方法以及类之间的关系,如继承、关联、聚合等。常用于面向对象设计中,描述系统的静态结构。
@startuml
class Animal {
+ name: String
+ eat(): void
}
class Dog extends Animal {
+ bark(): void
}
@enduml
组件图:描述系统的物理组件以及它们之间的依赖关系,有助于理解系统的架构和模块划分。
@startuml
[Web Server] as web
[Database] as db
[Client] as client
client --> web : HTTP Request
web --> db : SQL Query
@enduml
部署图:展示系统中软件和硬件的物理部署关系,如服务器、网络设备和软件组件之间的连接。
@startuml
node "Web Server" {
component "Web App"
}
node "Database Server" {
database "MySQL DB"
}
"Web App" --> "MySQL DB" : Connects
@enduml
- 行为类图
时序图:描述对象之间消息传递的时间顺序,展示系统中对象如何交互以完成特定功能。
@startuml
actor User
participant "Client" as client
participant "Server" as server
participant "Database" as db
User -> client: 发起请求
client -> server: HTTP 请求
server -> db: 查询数据
db --> server: 返回数据
server --> client: 返回响应
client --> User: 显示结果
@enduml
用例图:展示系统的功能需求,描述参与者与用例之间的关系,帮助理解系统的边界和功能范围。
@startuml
actor User
usecase "登录" as login
usecase "查看信息" as view
usecase "修改信息" as modify
User --> login
User --> view
User --> modify
login --> view : 前置条件
login --> modify : 前置条件
@enduml
活动图:类似于流程图,描述业务流程或算法的执行步骤,展示活动之间的控制流。
@startuml
start
:用户登录;
if (登录成功?) then (是)
:跳转到主页;
if (需要修改信息?) then (是)
:进入修改页面;
:保存修改;
else (否)
:浏览信息;
endif
else (否)
:显示错误信息;
endif
stop
@enduml
- 其他图表
状态图:描述对象在其生命周期内的状态变化以及触发这些变化的事件,常用于分析对象的行为。
@startuml
[*] --> Off
Off --> On : 开机
On --> Off : 关机
On --> Sleep : 休眠
Sleep --> On : 唤醒
@enduml
思维导图:以树形结构展示信息之间的层次关系,方便整理思路和总结信息。
@startmindmap
* 动物
** 哺乳动物
*** 猫
*** 狗
** 鸟类
*** 麻雀
*** 老鹰
@endmindmap
甘特图:用于项目管理,展示项目任务的开始时间、结束时间和持续时间,以及任务之间的依赖关系。
@startgantt
title 项目计划
[需求分析] lasts 14 days
[设计阶段] after [需求分析] lasts 10 days
[开发阶段] after [设计阶段] lasts 21 days
[测试阶段] after [开发阶段] lasts 7 days
@endgantt