在VS code上使用MarsCode AI编程初体验| 豆包MarsCode AI刷题

304 阅读6分钟

1.MarsCdode介绍

豆包MarsCode是豆包旗下的一款AI编程助手,提供以智能代码补全为代表的AI功能,支持多种编程语言及IDE,能在开发过程中提供单行或整个函数的编写建议,同时还支持带啊解释、代码审查、问题修复等一些辅助功能,旨在提升开发效率。

主要功能

  1. 代码补全:这个功能可以阅读并理解当前的代码,然后提供后续代码片段。它还支持通过注释生成代码片段。
  2. 代码补全 Pro:基于上一次的编辑内容及代码情况,预测下一个改动点并提供推荐代码。
  3. 代码生成:理解自然语言并生成所需的代码。
  4. 代码编辑:这个功能允许编辑指定代码,包括重构、优化、修改部分逻辑等。
  5. 代码解释:精准解释项目代码,帮助快速上手开发。
  6. 代码注释生成:能够生成函数级注释或更详细的行间注释。
  7. 单元测试生成:为指定代码片段生成单元测试。
  8. 智能修复:发现代码中的问题并进行修复。
  9. 智能问答:针对研发领域定向优化问答质量,提供更精准的问答结果。

应用场景:

  1. 代码开发与补全

    • 在编写代码时,MarsCode可以提供智能的代码补全功能,帮助开发者快速完成代码编写,减少键入错误,提高编码效率。
    • 对于新手程序员,MarsCode可以作为学习工具,通过提供代码示例和补全建议,帮助他们更快地掌握编程技巧。
  2. 代码审查与优化

    • 在代码审查过程中,MarsCode可以自动检测代码中的潜在错误和可改进点,帮助开发者提升代码质量。
    • 它还可以提供代码优化的建议,使代码更加高效和清晰。
  3. 问题诊断与修复

    • 当代码出现问题时,MarsCode能够帮助定位问题所在,并提供修复建议,减少调试时间。
    • 对于复杂的bug,MarsCode的智能修复功能可以自动识别并修复一些常见问题。
  4. 单元测试

    • MarsCode能够为代码生成单元测试,确保代码的健壮性和可靠性。
    • 这对于遵循测试驱动开发(TDD)的开发者来说尤其有用。
  5. 学习与提升

    • 对于希望学习新编程语言或框架的开发者,MarsCode可以通过提供代码示例和解释,帮助他们更快地掌握新技能。
  6. 协作开发

    • 在团队协作开发中,MarsCode可以作为一个辅助工具,帮助团队成员理解彼此的代码,提高协作效率。
  7. 快速原型开发

    • 对于需要快速构建原型或进行迭代开发的场景,MarsCode的代码生成和补全功能可以大大缩短开发周期。
  8. 跨语言和框架开发

    • MarsCode支持多种编程语言和框架,使得在不同技术栈之间切换的开发者能够保持高效的工作状态。

2.简单编程案例

使用贪心算法解决找零问题,目标是使用最少数量的硬币来凑出给定的金额。假设有无限的1元、5角和1角硬币。

补全代码: 1.png

在编程过程中,MarsCode自动识别算法并进行代码补全,使用电脑键盘上的tab键即可接收代码补全。

import java.util.ArrayList;
import java.util.List;

public class GreedyAlgorithmExample {
    public static void main(String[] args) {
        int[] coins = {10, 5, 1}; // 硬币的面值,分别为 1 元(10 角)、5 角和 1 角
        int amount = 28; // 要凑出的金额,单位为角
        List<Integer> change = makeChange(coins, amount);
        System.out.println("找零的硬币组合: " + change);
    }

    public static List<Integer> makeChange(int[] coins, int amount) {
        List<Integer> result = new ArrayList<>();
        for (int coin : coins) {
            while (amount >= coin) {
                result.add(coin);
                amount -= coin;
            }
        }
        return result;
    }
}

image.png 根据以上代码点击生成单测:

  @Test
    public void testMakeChangeWithZeroAmount() {
        int[] coins = {10, 5, 1};
        int amount = 0;

        List<Integer> expectedChange = List.of();

        List<Integer> actualChange = MakeChange.makeChange(coins, amount);

        assertEquals(expectedChange, actualChange);
    }

3.功能体验及感悟

豆包MarsCode的云端IDE提供了便利。配置本地开发环境是一个复杂且容易出错的过程,云端IDE的预设环境让我在使用过程中可以专注编程学习而不是环境搭建。并且云端资源可以根据需求进行扩展,可以轻松应对不同规模的项目,更加方便的与同学教师进行共享代码,进行实时交流和写作。

云端编辑器降低了学习编程的门槛,因为无需购买昂贵的硬件或软件即可开始编程,它为所有学生提供了平等的编程学习机会,无论我们身处何地,都能访问到相同的资源和工具,教师可以使用云端编辑器实时监控学生的进度,并提供即时的反馈和指导。学生可以在不同的操作系统和设备上协作,这对于团队项目和跨学科合作至关重要。

云端编辑器确保所有用户都在相同的环境中工作,这减少了由于环境差异导致的问题,使得学习体验更加一致;云端服务提供商负责维护和升级编辑器,用户无需担心软件更新和兼容性问题;使用者可以在任何有网络连接的地方访问他们的代码和项目,这对于远程学习和在家工作模式尤其重要;还可以根据用户的需求动态调整资源,这意味着我可以轻松处理大型项目或运行资源密集型的应用程序;云端编辑器通常提供数据备份和安全保护措施,减少了数据丢失和泄露的风险;云端编辑器可以模拟不同的运行环境,这对于学习如何部署应用程序和了解系统如何在生产环境中运行非常有帮助。

AI编程助手功能如代码补全和代码注释,不仅节省了重复工作的时间,还帮助我更好地理解代码,培养了良好的编程习惯。

在字节跳动青训营中,我通过使用豆包MarsCode的AI刷题功能,以更高效的方式掌握了编程思维。AI刷题功能提供的即时反馈和分步讲解,帮助我从多个角度思考问题,形成了更系统的解题框架,增强了对贪心算法、动态规划算法等算法的多场景应用。