查看原文
其他

开发者与OpenAI、ChatGPT 一起 “构建”下一个新时代

21CTO 21CTO 2023-06-18

导读:无论开发者对 ChatGPT 感到兴奋还是担心,都需要选择一种方法使用与开发 AI 技术,因为它能真正改变软件开发的构建和发布的方式。

AI 对开发者的影响

在软件开发领域,ChatGPT 技术正在引领构建软件的下一个时代。在主要社交媒体平台正在显示两极分化的观点。

有些人认为引入这种对话式生成 AI 是革命性的和令人兴奋的,彻底改变了他们的日常工作流程。对于一些人来说,它带来了不确定性和风险——有缺陷和未经检查的代码进入生产环境的风险,甚至担心工作被裁掉。

关于是兴奋还是担心的争论可能会在中间的某个地方结束,虽然双方都有强烈的主张。有一种方法可以接近 ChatGPT,它可以真正改变开发人员构建和发布代码的方式。

一方面,ChatGPT 以我们以前从未见过的方式降低了编写软件的复杂性。我不禁想到人们在学习新的软件语言时最常见的途径,以及它是如何转变的。

花费数小时在搜索引擎上寻找示例代码或浏览论坛寻找答案可能是个旧方法可,那是走上 Blockbuster 或拆掉的固定电话的老路。老办法有时会给你答案,希望能给你一个完美解释,但你也可能比开始时询问时更困惑。

在“使用 ChatGPT 构建”时代,有开发者向该 AI 请求一个代码组件,它返回一段示例代码。人们很好奇,想知道这是如何解决这个问题的,并通过询问 ChatGPT 来测试这个想法,“请告诉我如何使用 LaunchDarkly 在 React 中编写功能标志。” 它出人意料地迅速返回了一个在两个带有功能标志的软件组件之间切换的示例。

当开发者进行第二次提问时,“你能用 Python 给我看一个例子吗?” 它很快给出了新的例子。这两个实例还包括分步示例,显示代码的含义和特定于 LaunchDarkly 的实施注意事项,甚至包括指向文档的链接。

但它是“复制粘贴”吗?不完全是。

即使在人工智能方面,学习正确的问题来提出,其本身就是一种艺术形式。

虽然此代码有效,但缺少代码的关键部分。LaunchDarkly 要求在应用程序代码中初始化语言 SDK,由于提示没有要求,因此省略了这一部分。当我扩充查询时,它返回了包括初始化组件在内的新代码。

这是一个很好的例子,即使涉及到人工智能,学习正确的问题也是一种艺术形式。即使最终提出了正确的问题,仍然需要考虑业务逻辑。ChatGPT 可能永远不会理解其他实现的特定不同方面,因为它从中学习的模型可能包含也可能不包含符合您自己需求的示例。

因此,在这个简单的例子中,人们向 ChatGPT 询问了一些代码,并得到了我们要求的结果,以及解释和文档链接,但这还不够,因为它缺少我们没有考虑要求的要求。我们稍微修改了问题,作为回报GPT发给了我们需要的额外细节。但明,ChatGPT 仍然缺乏足够的定义来运行,它要求我们对工具有一定程度的了解才能知道要问的正确问题。在考虑 ChatGPT 与开发人员体验时,很难想象一个世界ChatGPT 完全取代了构建软件的开发人员。

将 ChatGPT 应用于现实的软件开发世界中意味着什么?

 ChatGPT将改进开发人员工作流程。在考虑 ChatGPT 和开发人员体验时,难以想象一个 ChatGPT 完全取代正在构建软件的开发人员的世界。该系统当然擅长回答问题和提供信息,但它还是难以理解给定环境中特定软件实现的复杂性。

在这个新的构建时代,开发人员可能会盲目地将 ChatGPT 生成的代码复制到环境中,并在/如果出现问题时,自己花数小时进行调试。这当然是可行的,但快速代码工具的成就会被系统崩溃之类的后果所抵消。

ChatGPT 最可能的结果,开发人员将其作为一种工具来使用,他们可以使用它来增强现有的开发工作流程,加速开发过程的各个阶段。

诸如快速启动项目或填补知识空白(从语言知识等领域,甚至进入流程知识领域)之类的任务可以让开发人员加快学习和构建软件的速度。

如果软件世界是由千篇一律的代码构成,那么 ChatGPT 完全可能取代开发团队。然而这不是事实,每个企业都会以不同的方式处理其问题空间。

在流程层、业务逻辑、技术债务、设计决策和架构等层面,ChatGPT 则无法根据上下文来做普适型回答。

ChatGPT 是一种先进的语言模型,可提供十分广泛的特性和功能。它可用于很多场景的任务,从语言翻译到文本生成,且可以集成到各种平台中。作为最先进的技术,它还具有随着时间的推移而改进自己的能力,使其成为企业与开发者的宝贵工具。

可以确定的是,ChatGPT以及相关技术是一种可以让开发者更快地构建软件、扩展自己的学习,并从使用中成长的优秀工具。

那些忽视ChatGPT的人最终会落后于学习与成长曲线,但那些完全依赖ChatGPT的人也会遇到更多的中断、Bug以及老旧的代码,以及未名原因的宕机和过时的系统分析和设计文档。

作者:东方春晓


相关阅读:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存