「豆包Marscode体验官」:云端IDE的进化,重新诠释编程的未来 (小白详细版)

我正在参加「豆包MarsCode初体验」征文活动,活动链接:,豆包MarsCode体验官-{玩转AI}开启智能编程之旅,拿手机大奖 - 掘金 (juejin.cn)

光阴如梭,岁月如歌,哈哈,经典的作文开头哈,先讲起因,,18天前的某一天 在地铁上刷手机的时候看到字节跳动发布的新的编程工具MarsCode:6 月 26 日,字节跳动在北京发布了基于豆包大模型打造的智能开发工具 - 豆包MarsCode ,面向国内开发者免费开放。当时看到我就在想

当时我就在想不会是把豆包套了个壳,然后直接应用在编程领域,直到我细细体验了下,这一体验,就不得了,国产的AI真是越来越牛批了,首先先看官网介绍:

豆包MarsCode(www.MarsCode.cn/home) 是基于字节跳动豆包大模型打造的更智能、更便捷的开发工具,提供 Cloud IDE 及 AI 编程助手两种使用形态。

作为豆包代码模型的具体应用, 豆包MarsCode 支持智能识别当前编码任务相关的上下文信息,同时将代码理解、生成、优化、推荐、补全、审查等多维能力融为一体,无缝嵌入研发流程的各个环节,帮助开发者提升代码开发质量和效率。

豆包 MarsCode 是一个集成了AI功能的编程助手和云端IDE,旨在提高开发效率和质量。它支持多种编程语言和IDE,提供智能代码补全、代码解释、单元测试生成和问题修复等功能,同时具备AI对话视图和开发工具。

一句话解释下,也就是说这是字节专门在编程领域的的大模型应用,豆包:你可以理解为通用的,而看MarsCode,这个关键词名,就知道, MarsCode 是一个很吊编程工具

我们先来看下官网:

一打开网页直接就是一个渐变字体,字体动画从下往上,表示 MarsCode要天天向上的精神,将来会越来越好

小技巧

快速插入

比如你问了MarsCode一个问题,这时候,你想要立刻看到效果,你可以点击这个图标,就会立刻将生成的代码,嵌入到你的编辑文件当中

如果你连文件都没创建的话,你就可以点击这个,MarsCode他就会为你创建一个新的文件,甚至贴心的为你连文件的类型都选择好了

先试试Python

  • Python

在试试Java,不愧是大厂的工具,这种小细节都处理的很好

  • Java

对话代码

我们在 MarsCode选择代码,你懂吧,就是那种右滑的选中,就会出现一个选项,每个选项都表示一个功能

我们点击第一个,对话代码,顾名思义就是把这段代码去请教AI,你可以把MarsCode 当成一个老师,你问他,为什么这么说呢,你甚至可以问它你多大了 ?你结婚没有?

哈哈,18岁就这么吊

如果你不满意,你还可以点击重试的图标

所以不愧是编程助手,这样才不会影响我们,心中无AI,编码自然神!

我们再来看第二个,解释代码

这个和上一个功能的区别就是,你如果有什么不懂的代码,就不用请教学长,或者同事,直接点击解释下,他就会给你解释

左侧就会出现解释对话框,嘎嘎详细

我们再来看下第三个功能,第三个功能嘎嘎吊,有个场景,你是一家新入职的员工,你接手了公司的新代码,但是这些代码,都没有写注释,老板跟你说,现在项目重购了,后面招聘新人你来培训,你最好给公司代码都加上注释,方便后人理解,这时候用到我们MarsCode,点击注释,这里的注释可不是说真的给你注释代码,哪有这么鸡肋

  • 点击MarsCode注释后
  • 完整效果

  • 点击接受,就表示,我们要使用这次生成的注释

  • 接受后

对话的最后一个小点就是单元测试, 这个单元测试含义就是,我们可以为代码,直接生成测试类,想象一个场景: 你们公司的代码之前没有写单测的习惯,在一个阳光明媚的下午,你的leader跟你说,小赵,公司的代码覆盖率有点低,你把代码写下单测,于是你看着几万个类陷入了沉思,**MarsCode 走来了! **

突然你的救星出现了

我们只需要点击单元测试

点击单元测试后, 一次性为你生成了两种单侧,我相信,Java程序员就秒懂了,知道我们两种用的比较多居然两种的生成了,好小子

  • main 函数方法

  • Test 单测方法

拆分代码编辑器

点这个小图标可以进行拆分代码编辑器 ,想象下,你写Vue,一边写template部分,一边写css,、一边写组件

快捷键大全

对比友商

我们来对比下隔壁友商 某 C*DN

提出经典编程问题, 两数之和 ,要求使用Python和Java 同时输出,并进行对比两数之和的效率,计算耗时

  • MarsCode
python 复制代码
import time

def two_sum(nums, target):
    for i in range(len(nums)):
        for j in range(i + 1, len(nums)):
            if nums[i] + nums[j] == target:
                return [i, j]

# 测试数据
nums = [2, 7, 11, 15]
target = 9

# 记录开始时间
start_time = time.time()

# 调用两数之和函数
result = two_sum(nums, target)

# 记录结束时间
end_time = time.time()

# 计算运行时间
running_time = end_time - start_time

# 输出结果
print("两数之和的结果是:", result)
print("运行时间是:", running_time, "秒")
  • java
java 复制代码
public class TwoSum {
    public static int[] twoSum(int[] nums, int target) {
        for (int i = 0; i < nums.length; i++) {
            for (int j = i + 1; j < nums.length; j++) {
                if (nums[i] + nums[j] == target) {
                    return new int[]{i, j};
                }
            }
        }
        return new int[0];
    }

    public static void main(String[] args) {
        int[] nums = {2, 7, 11, 15};
        int target = 9;

        // 记录开始时间
        long start_time = System.nanoTime();

        // 调用两数之和函数
        int[] result = twoSum(nums, target);

        // 记录结束时间
        long end_time = System.nanoTime();

        // 计算运行时间
        long running_time = end_time - start_time;

        // 输出结果
        System.out.println("两数之和的结果是:" + java.util.Arrays.toString(result));
        System.out.println("运行时间是:" + running_time + "纳秒");
    }
}

可以看到不仅仅是输出了,并且还贴心的加上了注释,,代码也非常规范,我们再来看下某C的表现

  • CSDN
java 复制代码
import java.util.HashMap;

public class Solution {
    public int[] twoSum(int[] nums, int target) {
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int complement = target - nums[i];
            if (map.containsKey(complement)) {
                return new int[]{map.get(complement), i};
            }
            map.put(nums[i], i);
        }
        throw new IllegalArgumentException("No solution found");
    }
}
python 复制代码
def two_sum(nums, target):
    num_map = {}
    for i, num in enumerate(nums):
        complement = target - num
        if complement in num_map:
            return [num_map[complement], i]
        num_map[num] = i
    raise ValueError("No solution found")

好好好,某C 你小子,注释不给我就给算了,居然连耗时也给我删除了,不按套路出牌,今天能删示例代码注释,明天就能删业务代码注释,这样我们广大掘友怎么能放心的CV

debug 神器

debug 最强的神器可以说是整个MarsCode 除AI外 最强、也最难开发的功能了,没有之一, 支持各种语言Debug ,目前光本人测试过的就有7种,下面给大家以Python为例,给大家演示一遍

和jetbrains一样的,我们点击 左侧行,记住是单击、不是双击,双击会取消的,

点击左侧的小虫子,Bug的小虫子,点击后,也是单击

点击后关注右侧红色框框的区域

紧接着我们访问这个Web 服务链接,这个这个项目就是一个Python的Web 服务,我们点击这个Url 即可进入断点,下方是进入断点的详情图

这里可以看到每个断点的变量的参数信息,

我们点击快捷键F10,也可以直接点击这个向下的勾勾箭头,进入下一步,

如果你想进入下一个断点可以输入快捷键F5,我们可以看到第一个断点在14行、第二个断点在18行,当你点击第一个图标就会进入下一个断点

如果你想一步一步调试则点击第3个图标,

如果进入了某个函数内部,你想要跳出来,你就点击第4个图标

重新开始和关闭的话,就点击第5、6个吧

如果是想要随时看到代码效果,不想去其他窗口就去点击这个小眼睛,嘎嘎清洗

  • 调试配置

大家还记得我们在VsCode中有一个 json文件叫

json 复制代码
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试一",         // 可自定义
            "type": "debugpy",
            "request": "launch",
            "program": "运行脚本的程序",  // 使用.py 脚本路径(相对路径)、which torchrun、which deepspeed等命令查看位置
            "console": "integratedTerminal",
            "justMyCode": false,       // 调试允许进入他人的代码
            "env": {
                "PYTHONPATH": "${workspaceRoot}" // 设置vscode家路径为项目根路径, 搜索包时优先从该目录进行,防止发生import包错误
            },
            "args": [               // 参数,每个参数的参数值无论是否是数字都需用引号
                "--参数1","值1",  
                "--model_name_or_path","facebook/opt-350m",
                "--per_device_train_batch_size", "4",
                "--per_device_eval_batch_size", "4"
            ]
        }
    ]
}

命令行 python 进行执行脚本,构建launch.json 思路

kotlin 复制代码
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试",
            "type": "debugpy",
            "request": "launch",
            "program": "self_instruct/bootstrap_instructions.py",  // .py脚本文件相对路径位置
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "PYTHONPATH": "${workspaceRoot}" // 设置vscode项目根路径,搜索包时优先从该目录进行,防止发生import包错误
            },
            "args": [
                "--batch_dir","data/gpt3_generations_ceshi",// TODO 修改官方线上数据集为自己的路径
                "--num_instructions_to_generate","5"    
            ]
        }
    ]
}

安装插件

没有插件就没有灵魂,marscode,提供了很多插件,如: Vue、 React、Html、css

是不是看着就很吊,妈妈再也不用担心我没有插件了,光Vue的插件就有1000多个、React 也是几千个

结语

在我们深入探讨了「豆包Marscode」这一创新的云端IDE后,不禁为科技的飞速进步和人工智能在编程领域的深远影响感到惊叹。从最初的代码编辑器到如今高度智能化的编程工具,技术的每一步革新都在重新定义编程的未来。

「豆包Marscode」集成了众多功能,涵盖了从代码调试、解释到优化等各个方面,堪称国产最强AI工具。它不仅提升了开发效率,还简化了编程过程,使得编程不再局限于少数专业人员。通过AI技术,程序员们能够更加专注于创新和创造,而不必为繁琐的细节所困扰。

我们希望在不久的将来,「豆包Marscode」能够成为各个培训机构的首选工具,让更多人有机会体验到这一国产AI IDE的强大功能。愿各个国家的程序员都能感受到「豆包Marscode」带来的便捷和高效,共同推动编程技术的不断进步。

光阴如梭,岁月如歌。在技术不断演进的时代,我们期待着「豆包Marscode」不断突破,续写更辉煌的篇章。让我们共同见证科技如何改变编程的未来,携手迈向更加智能、高效的开发新时代。

相关推荐
ZSYP-S几秒前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
Yuan_o_41 分钟前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
程序员一诺1 小时前
【Python使用】嘿马python高级进阶全体系教程第10篇:静态Web服务器-返回固定页面数据,1. 开发自己的静态Web服务器【附代码文档】
后端·python
顾平安1 小时前
Promise/A+ 规范 - 中文版本
前端
聚名网1 小时前
域名和服务器是什么?域名和服务器是什么关系?
服务器·前端
桃园码工1 小时前
4-Gin HTML 模板渲染 --[Gin 框架入门精讲与实战案例]
前端·html·gin·模板渲染
沈剑心1 小时前
如何在鸿蒙系统上实现「沉浸式」页面?
前端·harmonyos
一棵开花的树,枝芽无限靠近你2 小时前
【PPTist】组件结构设计、主题切换
前端·笔记·学习·编辑器
DT辰白2 小时前
如何解决基于 Redis 的网关鉴权导致的 RESTful API 拦截问题?
后端·微服务·架构
m0_748237052 小时前
Chrome 关闭自动添加https
前端·chrome