编程语言
首页 > 编程语言> > 使用ChatGPT优化软件开发

使用ChatGPT优化软件开发

作者:互联网

1.不要不假思索地复制一切。

我使用ChatGPT的第一个关键提示是不要盲目接受各种提示中的所有内容。平均而言,我必须纠正ChatGPT大约10次才能获得我想要的结果。

在我看来,在使用这种人工智能时,您也必须很好地了解自己正在做的事情,并能从经验中评估某样东西是否会产生可行的结果。

我总是建议自己查看文档,熟悉特定的技术或库,而不是仅仅依靠提示的结果。ChatGPT可能会编造或参考过时的标准。

然而,当您知道自己在做什么时,ChatGPT可以显著提高您的生产力。您将花更少的时间在像Stack Overflow这样的论坛和网站上搜索答案,在语法层面上可能特别有价值。

2.要求架构和修改

我发现非常有效的是要求一个特定的软件架构,然后对其进行修改。ChatGPT可以非常轻松地处理这个问题。但是,您应该对架构的外观有一个明确的计划,以便您可以评估结果是否符合您的期望。

让我举个例子:

假设我们有一个。返回产品数据的NET API,我们计划遵循一个简单的架构,其中控制器类使用存储库类。我们可以这样对待它:

 
ChatGPT提示说:“你能给我一个控制器和存储库,用于在asp.net核心api中进行产品检索吗?它必须以json的形式退回产品”

当我问这个问题时,它导致控制器类使用存储库的基本内存实现。

// Product.cs
公共类产品
{
    public int Id { get; set; }
    公共字符串名称{ get; set; }
    公共十进制价格 { get; set; }
    // 根据需要添加其他属性
}
// ProductRepository.cs
使用System.Collections.Generic;

公共类产品存储库
{
    // 在本例中,我们使用一个简单的内存列表来存储产品。
    私人列表<产品>_产品;

    公共产品存储库()
{
_产品=新列表<产品>
{
            新产品{Id=1,名称=“产品1”,价格=10.99M},
            新产品{Id = 2,名称=“产品2”,价格=24.99M},
            // 根据需要添加更多产品
};
}

    public IEnumerable<Product> GetAllProducts()
{
        退货_产品;
}

    // 如果需要,实现其他数据访问方法,如GetById、AddProduct等。
}
// ProductsController.cs
使用Microsoft.AspNetCore.Mvc;

[ApiController]
[路线("api/[控制器]")]
公共类产品控制器:ControllerBase
{
    私有只读产品存储库_产品存储库;

    公共产品控制器(产品存储库产品存储库)
{
_productRepository = productRepository;
}

    // HTTP GET:api/products
[HttpGet]
    公共IActionResult GetProducts()
{
        var products = _productRepository.GetAllProducts();
        退货OK(产品);
}
}

让我们更进一步,并要求:

为了保持简单,我将排除所有配置结果。这将导致一个更直接、更有针对性的演示。

// PaginationOptions.cs
公共类分页选项
{
    public int Page { get; set; } = 1;
    public int PageSize { get; set; } = 10;
}
// ProductRepository.cs
使用System.Collections.Generic;
使用System.Linq;

公共类产品存储库
{
    私有只读AppDbContext _dbContext;

    公共产品存储库(AppDbContext dbContext)
{
_dbContext = dbContext;
}

    公共IEnumerable<Product> GetAllProducts(PaginationOptions paginationOptions)
{
        返回_dbContext.Products
。跳过((paginationOptions.Page - 1)* paginationOptions.PageSize)
。获取(分页选项。页面大小)
。ToList();
}

    //使用实体框架添加其他数据访问方法,例如GetById、AddProduct等。
}
// ProductsController.cs
使用Microsoft.AspNetCore.Mvc;
使用System.Collections.Generic;

[ApiController]
[路线("api/[控制器]")]
公共类产品控制器:ControllerBase
{
    私有只读产品存储库_产品存储库;

    公共产品控制器(产品存储库产品存储库)
{
_productRepository = productRepository;
}

    // HTTP GET:api/products
[HttpGet]
    公共IActionResult GetProducts([FromQuery] PaginationOptions paginationOptions)
{
        var products = _productRepository.GetAllProducts(分页选项);
        退货OK(产品);
}
}

如您所见,我提出了其他问题,并以最初的实施为基础。通过在同一会话中继续进行添加,您可以轻松地对架构进行更改。当然,这是一个简单的例子,关于为什么你可能不想这样做,有很多事情需要考虑,但原则是明确的。

当然,您也可以自己解决这个问题,但以这种方式进行快速更改,当您的设置事先明确时,可以产生快速的结果。

3.询问来源

我的另一个提示是询问信息背后的来源。通过这种方式,您可以验证数据是否是最新的,以及它是否来自可靠的来源。然而,ChatGPT可能并不总是立即披露来源。尽管如此,通过一些额外的问题,你经常可以发现它。

询问来源的一个很好的例子可能是当您请求最新的密码安全建议时。这可以确保您的用户的密码与当前的安全标准保持一致。然而,在处理此类问题时,必须仔细核实信息确实是最新的。

当然,我们知道2021年的知情截止日期,但让我们看看他从哪里想出来的。

让我们来试试这个:

 

当我问这个问题时,回答包括:

截至我2021年9月的最后一次知识更新,推荐的密码强度指南如下:

长度:使用至少12个字符的密码。更长的密码通常更好。

所以现在我问:

尽管它表明它不知道训练数据的来源,但它会出现以下URL:

NIST数字身份指南-NIST特别出版物800-63B:https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-63b.pdf

网络安全和基础设施安全局(CISA)——创建强密码的提示:https://www.cisa.gov/tips-creating-strong-passwords

谷歌帐户帮助—创建强密码和更安全的帐户:https://support.google.com/accounts/answer/32040

通过检查来源,我们可以验证数据是否仍然准确和最新使用。在这种情况下,并非所有URL都工作。

我还建议始终在人工智能之外搜索此类问题,以获得最准确的信息。

然而,我们可以从上述提示中获得关于潜在良好咨询来源的想法,例如美国的网络防御机构(CISA)。

因此,总而言之,建议是询问来源来验证数据,并继续在线搜索,以更好地了解最近的变化。

4.架构随规模而变化;ChatGPT不知道。

另一个需要考虑的点是您的应用程序的规模。在这方面,ChatGPT可能并不总是提供正确的结果。例如,与与大量用户打交道的大型企业解决方案相比,MVP(最低可行产品)的设置具有完全不同的约束。

尽管人工智能可以提供有关此事的信息,但必须与专业人士讨论这个问题,并根据您的软件产品的性质进行定制。

这就是为什么在现阶段,人工智能不能取代开发人员设计和设计的体验和解决方案。

当然,人工智能可以为您提供想法,就像搜索引擎一样。因此,请毫不犹豫地提出问题并寻求指导。

5.考虑到知识的截止

这个很明显,但你应该考虑知识截止。2021年9月之后推出的技术可能不包括在内。

因此,各种提示将不包含使用这些新技术或其相关语法的响应。这就是为什么与ChatGPT一起咨询其他最新来源仍然至关重要,以随时了解新发展。

6.如果ChatGPT说它不存在,那就谷歌一下。

当ChatGPT表明某些东西不存在时,必须不要立即假设它是正确的。ChatGPT的知识被限制到2021年9月,结果可能因使用的提示而异。有时,它可能表明这个东西确实存在一些例子,而其他时候,它可能会继续否认你的建议的存在。

你可以尝试指出它是错误的,它确实存在,所以它可以提出新的提示。如果这不起作用,我仍然建议您在谷歌或您首选的搜索引擎上继续搜索。

7.不要害怕它

与许多人所说的相反,我建议不要害怕人工智能的崛起。软件开发是一个快速发展的领域,今天新的东西明天可能会过时。

因此,软件开发人员已经习惯了该领域的变化。人工智能是必须考虑的此类变化之一。为什么我们不应该利用它?

此外,对于某人来说,拥有从此类工具中提取真正相关信息的知识至关重要。缺乏这种技能的人会漂泊不定,以后可能会落入不可预见的陷阱。

我们应该明白,人工智能可以处理我们领域的许多简单任务。因此,继续学习并对新技术保持兴趣至关重要。如果你这样做并保持好奇心,我相信我们的生产力会随着时间的推移而持续增长。

标签:人工智能,ChatGPT, 编程
来源: