首页 / 最佳实践 / 超强工具推荐 | 拥抱 AI 时代,打造高效智能的开发环境

超强工具推荐 | 拥抱 AI 时代,打造高效智能的开发环境

2024.02.20

本篇文章将为大家介绍两种类型的 AI 工具,它们可以帮助您作为开发人员提高效率并简化工作。

第一类是 AI 代码工具。AI 代码工具正变得无处不在,因为它提供诸多优势,例如更快地学习新语言、重构现有代码以及实现测试等。

第二类是 Atlassian Intelligence。这些 AI 工具内置于 Atlassian 产品中,可以使您更轻松、更有效地使用 Atlassian 工具,例如 Jira 和 Confluence。

第一部分:AI 代码工具

AI 代码工具提供诸多优势。在本节中,我们将重点介绍五项助力:

1.使用不熟悉的编程语言工作时

2.代码解释

3.建议改进

4.重构代码

5.生成测试代码

助力一:使用不熟悉的编程语言工作时

即使您遇到不熟悉的编程语言,AI 代码工具也能发挥作用。它们可以通过提供各种代码结构的语法,帮助您快速上手新语言。例如,您知道如何用 C++ 写一个循环 (for_each loop),但现在需要用 Go 语言开发,AI 代码工具就可以提供帮助。

C++

std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

for(auto i : v) {
  std::cout << i << std::endl;
}

Go

v := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

for _, s := range v {
  fmt.Println(s)
}

助力二:代码解释

AI 代码工具的另一个强大功能是解释代码。您可以询问 AI 工具特定代码片段的作用并建议改进之处。此功能帮助您快速了解需要修改或修复的现有代码库。

void foo(int n)
{
    bool prime[n + 1];
    memset(prime, true, sizeof(prime));
 
    for (int p = 2; p * p <= n; p++) {
 
        if (prime[p] == true) {
            for (int i = p * p; i <= n; i += p)
                prime[i] = false;
        }
    }
 
    for (int p = 2; p <= n; p++)
        if (prime[p])
            cout << p << " ";
}

助力三:建议改进

您可以让 AI 代码工具建议改进代码片段的方法。这些工具通常会提供代码片段示例以及相应的建议。此功能可以提高代码评审质量,并能在开发早期发现实施问题。

#include <iostream>
#include <vector>
#include <bitset>

void foo(int n)
{
  // Use a bitset instead of a boolean array
  std::bitset<1000000> prime;
  prime.set(); // Set all bits to 1 initially

  // Only mark odd numbers as true
  prime[0] = prime[1] = 0;
  for (int p = 3; p * p <= n; p += 2) {
    if (prime[p]) {
      // Start from p * p
      for (int i = p * p; i <= n; i += 2 * p) {
        prime[i] = 0; // Mark multiples of p as false
      }
    }
  }

  // Print prime numbers
  for (int p = 2; p <= n; p++) {
    if (prime[p]) {
      std::cout << p << " ";
    }
  }
}

助力四:重构代码

重构代码耗时且易出错,而 AI 代码工具可以提供帮助。只需提供一个函数及其更改需求的文本描述,AI 代码工具就可以初步尝试进行重构。建议仔细检查建议的更改,并在重构后运行单元测试以检测回归问题。此功能在对函数进行简单更改时可以节省时间。

Prompt

Refactor foo to return a std::vector of the primes instead of printing them
#include <vector>

std::vector<int> foo(int n)
{
  std::vector<int> primes;
  std::vector<bool> is_prime(n + 1, true);

  for (int p = 2; p * p <= n; p++) {
    if (is_prime[p]) {
      for (int i = p * p; i <= n; i += p) {
        is_prime[i] = false;
      }
    }
  }

  for (int p = 2; p <= n; p++) {
    if (is_prime[p]) {
      primes.push_back(p);
    }
  }

  return primes;
}

助力五:生成测试代码

编写测试至关重要,但有时困难且枯燥。AI 代码工具通过生成测试用例并为您奠定基础来实现更复杂的测试逻辑,从而加快了此过程。

Prompt

Generate test code for foo
#include <gtest/gtest.h>

// Include the foo function implementation here

TEST(FooFunctionTest, SmallInput) {
  int n = 10;
  std::vector<int> expected = {2, 3, 5, 7};
  EXPECT_EQ(foo(n), expected);
}

TEST(FooFunctionTest, LargeInput) {
  int n = 20;
  std::vector<int> expected = {2, 3, 5, 7, 11, 13, 17, 19};
  EXPECT_EQ(foo(n), expected);
}

// Add more test cases as needed

int main(int argc, char **argv) {
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

在上面的例子中,AI 代码工具理解了所用语言 (C++) 并无需额外提示就使用了有效的测试框架。虽然建议的代码可能需要一些调整才能完全可用,但 AI 代码工具可以帮助您节省实施基础部分的时间和精力。

AI 代码工具推荐:

- GitHub Copilot

- Codeium

- Tabnine

- Amazon CodeWhisperer

第二部分:Atlassian Intelligence

Atlassian Intelligence 提供了各种由 AI 驱动的功能,旨在加速个人工作并改善整个 Atlassian 产品套件中的团队协作。

本节将重点介绍四项助力:

- Jira 中的自然语言转 JQL 搜索

- Confluence 中定义任何术语或缩写

- Confluence 中总结页面

- Bitbucket 中的 AI 辅助 PR 描述

助力一:Jira 中的自然语言转 JQL 搜索

减少思考量,更快找到您需要的 issue。使用自然语言输入搜索,Atlassian Intelligence 会将其转换为 Jira 查询语言 (JQL)。现在,无需在想要搜索 backlog 中特定 issue 时再记住 JQL 语法;您可以取消收藏那些参考文档,腾出更多时间和精力来构建优秀的软件。

要使用自然语言 JQL 搜索,请启用 Atlassian Intelligence 并前往 Jira 中的 “问题” (Issues) 选项卡。找到 AI 提示并输入自然语言搜索。

screenshot-2024-01-26-at-5.27.58 pm-1536x873.png

Atlassian Intelligence 将把自然语言搜索转换为 JQL 并找到所有匹配的 Jira issue。

screenshot-2024-01-26-at-6.04.50 pm-1536x839.png


自然语言转 JQL 搜索速度快,耗费精力少,可以节省您的时间和精力。

助力二:Confluence 中定义任何术语或缩写

Confluence 是一个团队工作区,您和您的团队可以在此协作设计、文档、项目计划等内容。Atlassian AI 提供了在 Confluence 中任何文档中获取任何术语定义的功能。

遇到未知的缩写词或含义陌生的术语?询问 AI 基于 Confluence 文档提供特定于上下文的定义。

a2f212d5-dec9-46df-9575-d63250973509.png

突出显示一个单词,右键单击,然后单击 “定义” 以根据您组织在 Confluence 中的文档获取特定于上下文的定义。

3311c1c8-3aa6-4339-8683-c0498247753a.png

这可以节省您搜索文档寻找定义的时间,避免更糟糕的情况 - 为获得更多上下文而搜索多个 Confluence 页面。

助力三:Confluence 中总结页面

没有人愿意阅读无关且无价值的大型文档。启用 Atlassian AI 后,Summarize 功能可以帮助您了解文档的内容,而无需花费大量时间或精力。您可以在任何 Confluence 文档顶部找到 “Summarize” 按钮。

screenshot-2024-01-26-at-5.50.28 pm.png

助力四:Bitbucket 中的 AI 辅助 PR 描述

Bitbucket 是 Atlassian 的 SCM 和 CI/CD 产品,可以直接与 Jira 集成。Atlassian Intelligence 可在 Bitbucket 的 Pull Request 选项卡中使用。

你可以使用下方 prompt 语句访问各种辅助编写 PR 描述的选项。

/AI

screenshot-2024-01-26-at-6.10.58 pm.png

Atlassian Intelligence 的功能列表正在迅速增长。请访问 Atlassian Intelligence 页面 https://www.atlassian.com/software/artificial-intelligence 获取最新更新,也可以联系我们,了解更多资讯。

立即登陆 Atlassian 中国官网

手机扫码{{currentOpt}}

点击切换登录
手机号码
验证码
打开微信扫一扫
使用二维码{{currentOpt}},更安全

扫码分享给好友

立即注册 Atlassian 中国官网

* 姓名
* 公司名称
* 职位
* 企业邮箱
* 手机号码
* 短信验证码
* 公司规模
在线咨询 联系我们

在线咨询

您好,欢迎使用 Atlassian 售前咨询,请选择所需咨询的问题类型: