Amazon Q Developer 实战:从新代码生成到遗留代码优化(上)

本文将探索如何在 Visual Studio Code 这个开发者常用的一种集成编程环境(IDE)中,使用 Amazon Q Developer 列出指定区域的 Amazon S3 存储桶的示例代码实现。我们将从在 Amazon Q Developer Agent 的协助下,从生成新代码开始,到将生成的新代码与现有的低效“遗留”旧代码进行性能对比;然后借助 Amazon Q Developer 的指导,来优化这段遗留代码,从而减少代码执行时间和提升代码效率。

原英文博客文章链接如下,供参考:

community.aws/content/2gA…

概览

如您所知,亚马逊云科技最近宣布了 Amazon Q Developer 的正式公开可用,这是一款由生成式 AI 驱动的编程助手,可重塑开发者在整个软件开发生命周期(SDLC: Software Development Lifecycle)的开发体验。

官方博客参考如下:

aws.amazon.com/about-aws/w…

Amazon Q Developer 可帮助开发者更好地理解、构建、扩展和操作 Amazon Web Services 应用程序。您可以询问有关基础设施架构、服务资源、行业最佳实践、参考文档、技术支持等多方面的问题。Amazon Q 还在不断地更新其更广泛的功能,以支持开发者的问题持续获得最新相关且可操作的解答和建议。

在这篇文章中,我们将探讨如何在 Visual Studio Code IDE 环境中使用 Amazon Q Developer 来处理真实世界的编码需求。我们将以编写一段完整有效且高质量的 Python 代码,实现列出某个指定区域中的所有 Amazon S3 存储桶作为演示示例。

在继续阅读之前,建议开发者先参考以下技术文档,了解如何在 Visual Studio Code 中设置 Amazon Q Developer:

docs.aws.amazon.com/amazonq/lat…

生成新代码

首先,让我们使用 Amazon Q Developer Agent 来编写初始代码。您可以参考以下文档,了解 Amazon Q Developer Agent 的详细信息:

docs.aws.amazon.com/amazonq/lat…

在 Amazon Q Developer Agent 的帮助下编写代码其实比较简单,如下截图所示:

image.png

在 Amazon Q Developer 聊天面板中,我使用的提示如下:

css

复制代码/dev Write code to list all the Amazon S3 buckets in the `ap-east-1` region and output their names, along with the total execution time of the script.

翻译成中文,我在提示中对 Amazon Q Developer 的要求是:

“编写代码列出‘ap-east-1’区域中所有的 S3 存储桶的名称,以及计算代码脚本的总执行时间。”

为方便读者参考,我将以上截图中 Amazon Q Developer Agent 生成的代码段复制如下:

python复制代码import time
import boto3

def list_s3_buckets_in_region(region_name):
    """
    Lists all the Amazon S3 buckets in the specified region.

    Args:
        region_name (str): The AWS region name.

    Returns:
        list: A list of bucket names.
    """
    s3_client = boto3.client('s3', region_name=region_name)
    response = s3_client.list_buckets()
    buckets = []

    for bucket in response['Buckets']:
        bucket_region = s3_client.get_bucket_location(Bucket=bucket['Name'])['LocationConstraint']
        if bucket_region == region_name:
            buckets.append(bucket['Name'])

    return buckets

def main():
    start_time = time.time()
    region_name = 'ap-east-1'
    buckets = list_s3_buckets_in_region(region_name)

    print(f"Number of buckets found in {
     region_name}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值