ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用ChatGPT优化软件开发

2023-08-01 16:37:32  阅读:145  来源: 互联网

标签:人工智能 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, 编程
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有