简介

在这里插入图片描述

Jules 是 Google 推出的一款实验性 AI 编码助手,它能帮助开发者修复错误、添加文档和构建新功能。Jules 最大的特点是异步工作,这意味着当它处理任务时,你可以转而处理其他事情。Jules 与 GitHub 集成,能够理解你的代码库,并根据你的指令进行工作。

用户
创建任务
Jules生成计划
用户确认计划
Jules执行任务
提交更改
用户审查

登录与配置

使用 Jules 的第一步是登录并配置你的账户。

登录步骤

  1. 访问 jules.google.com
  2. 使用你的 Google 账户登录
  3. 首次登录时,接受隐私声明

连接 GitHub

Jules 需要访问你的仓库才能工作。以下是连接 GitHub 的步骤:

  1. 点击 “Connect to GitHub account”(连接到 GitHub 账户)
  2. 完成 GitHub 登录流程
  3. 选择你想要让 Jules 访问的仓库(可以是全部或特定仓库)
  4. 你将被重定向回 Jules。如果没有,请尝试刷新页面

连接成功后,你将看到一个仓库选择器,可以选择你希望 Jules 处理的仓库,以及一个提示输入框。

创建第一个任务

Jules 会在虚拟机中克隆你的代码、安装依赖项并修改文件。以下是创建任务的步骤:

  1. 从仓库选择器中选择一个仓库
  2. 选择你希望 Jules 处理的分支(默认会选择默认分支)
  3. 编写清晰、具体的提示。例如:在 utils.js 中为 parseQueryString 函数添加测试
  4. (可选)添加环境设置脚本
  5. 点击 “Give me a plan”(给我一个计划)

在这里插入图片描述

提交任务后,Jules 会生成一个计划。你可以在进行任何代码更改之前审查并批准该计划。

用户 Jules GitHub 登录并选择仓库 克隆仓库 提交任务请求 分析代码和任务 生成执行计划 审核并批准计划 执行任务 提交代码更改供审查 确认并合并更改 用户 Jules GitHub

任务流程

当你提交任务后,Jules 会遵循以下流程:

  1. 分析任务:Jules 会理解你的请求并分析代码库
  2. 生成计划:它会创建一个执行任务的详细计划
  3. 等待批准:你需要审查并批准计划
  4. 执行任务:Jules 修改代码并运行测试
  5. 提交更改:完成后,Jules 会提供更改内容供你审查

启用通知

你可以在 Jules 运行任务的同时处理其他事情。要及时获取任务进度通知:

  1. 当系统提示时,启用浏览器通知
  2. 随时前往 Settings → notifications 启用或禁用通知

当任务完成或需要你的输入时,系统会通知你。

最佳实践

为了充分利用 Jules,以下是一些最佳实践:

  1. 明确的指令:提供清晰、具体的任务描述
  2. 合适的任务范围:从小型、定义明确的任务开始
  3. 提供上下文:包含相关文件路径和函数名称
  4. 指定测试要求:说明如何验证更改是否正确
  5. 环境设置:如果项目有特殊的设置要求,请在提交任务时提供
好的任务示例
明确的指令
合适的范围
具体的文件路径
测试要求
环境细节

代码示例

以下是一个使用 C# 的代码示例,演示如何创建一个可供 Jules 处理的函数:

using System;
using System.Collections.Generic;
using System.Linq;

/// <summary>
/// 查询字符串解析器
/// </summary>
public class QueryStringParser
{
    /// <summary>
    /// 解析查询字符串并返回键值对字典
    /// </summary>
    /// <param name="queryString">要解析的查询字符串,格式如:"name=value&key=data"</param>
    /// <returns>包含键值对的字典</returns>
    public static Dictionary<string, string> ParseQueryString(string queryString)
    {
        // 创建一个新的字典来存储解析后的键值对
        var result = new Dictionary<string, string>();
        
        // 如果查询字符串为空,则返回空字典
        if (string.IsNullOrWhiteSpace(queryString))
        {
            return result;
        }        
        // 如果查询字符串以问号开头,删除问号
        if (queryString.StartsWith("?"))
        {
            queryString = queryString.Substring(1);
        }
        
        // 按 & 符号分割查询字符串为多个参数
        string[] parameters = queryString.Split('&');
        
        // 遍历每个参数
        foreach (var parameter in parameters)
        {
            // 跳过空参数
            if (string.IsNullOrWhiteSpace(parameter))
            {
                continue;
            }
            
            // 按 = 符号分割每个参数为键和值
            int equalsIndex = parameter.IndexOf('=');
            
            // 处理没有值的参数(如 "param",而不是 "param=value")
            if (equalsIndex < 0)
            {
                // 将没有值的参数键添加到字典中,值设为空字符串
                result[Uri.UnescapeDataString(parameter)] = string.Empty;
            }
            else
            {
                // 提取键和值,并进行 URL 解码
                string key = Uri.UnescapeDataString(parameter.Substring(0, equalsIndex));
                string value = equalsIndex < parameter.Length - 1 
                    ? Uri.UnescapeDataString(parameter.Substring(equalsIndex + 1)) 
                    : string.Empty;
                
                // 将键值对添加到字典中
                result[key] = value;
            }
        }
        
        return result;
    }
}

如果你要向 Jules 提交一个任务来为上述函数编写单元测试,可以这样描述:

为 QueryStringParser 类中的 ParseQueryString 方法编写全面的单元测试。测试应该覆盖以下场景:空查询字符串、带问号的查询字符串、多个参数、URL 编码的参数、没有值的参数。
在这里插入图片描述
编写完成后,可以直接上传至github
在这里插入图片描述
上传完成后可以在github中查看
在这里插入图片描述

常见问题解答

Jules 支持哪些编程语言?

Jules 支持大多数主流编程语言,包括但不限于:JavaScript、TypeScript、Python、Java、C#、Go、Rust 等。

Jules 能否处理私有仓库?

是的,Jules 可以处理你授权访问的私有 GitHub 仓库。

我可以为 Jules 指定特定的 Git 分支吗?

是的,在创建任务时,你可以选择 Jules 应该在哪个分支上工作。

Jules 能否安装项目依赖项?

是的,Jules 会尝试安装项目依赖项。对于复杂的设置,你可以提供额外的环境设置脚本。

如何处理 Jules 生成的不正确代码?

如果 Jules 生成的代码不符合预期,你可以提供反馈并要求它进行修改,或者拒绝其提出的更改。## 学习资源

要深入了解 Jules 的使用,可以参考以下资源:

  1. Jules 官方文档
  2. Jules 任务创建页面

在这里插入图片描述

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐