Skip to Content
生成式AI在软件开发中的应用
book

生成式AI在软件开发中的应用

by Sergio Pereira
July 2025
Beginner to intermediate
170 pages
2h 6m
Chinese
O'Reilly Media, Inc.
Book available
Content preview from 生成式AI在软件开发中的应用

第 1 章 代码生成和自动完成 代码生成和自动完成

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

人工智能可以大大提高代码生成和自动完成的生产力和创造力。本章将探讨人工智能驱动的工具如何重新定义编码体验,将耗时的手动过程转变为互动、高效和减少错误的工作。

人工智能在代码生成中的应用不仅是为了加快开发人员的键入速度,更是为了了解他们的工作环境,推荐相关的代码片段,甚至只需最少的输入就能生成复杂的代码块。这些工具由复杂的机器学习算法驱动,能够从公共和私人数据库中的大量代码库中学习,从而不断改进其建议和准确性。

我将探讨软件工程师如何从完成特定软件开发任务的 100% 工作转变为人工智能工具贡献的审核员。这就需要确保正确输入你对这些工具的要求,并对输出结果进行彻底修改,以确保交付成果满足要求。

这些人工智能工具功能强大,令人印象深刻,但我们很容易掉入这样一个陷阱:在没有采取适当预防措施的情况下使用这些工具的输出结果--例如,在没有验证代码如何工作以及为何工作的情况下,就打开拉取请求或将代码推送到生产环境。这种粗心大意的做法会带来两个重要风险:

过时的代码

大多数人工智能工具都是在数据的基础上进行训练的,而这些数据已不再是最新的,这意味着它们可能会提出过时的框架或功能。

错误答案

大型语言模型 (LLMs)是所有这些工具的基础技术,有时会产生通常所说的 "幻觉"。这意味着它们的输出可能包括错误语句、错误或不存在的代码功能或 API 端点。

软件工程师和开发人员必须使用人工智能工具来帮助他们更好、更快地工作,但不能用它来取代自己的判断,就像我们使用自动完成功能一样,这种功能在大多数集成开发环境(IDE)。当然,只需按下制表符键而不用输入每个字符会有很大帮助,但自动完成建议的范围从完全相关到毫无用处不等。至于是使用还是放弃,就看你的判断了。

我在本章中介绍的人工智能工具也需要不断进行评估。很多时候,这些工具生成的代码可以完美地满足任务要求。而在其他情况下,代码可能只是部分完成,或者包含错误、性能问题或其他一些必须修改的缺陷。你的工作就是使用、丢弃或修改这些代码。

代码生成工具的类型

本章讨论的人工智能工具主要分为两大类,在软件开发中的用途略有不同:

基于浏览器的工具

使用这些工具(如ChatGPT),您可以登录并在浏览器中与模型进行交互。本地计算机上没有任何活动,只是通过互联网与网站进行交互。这些工具使用方便,能很好地适应更多的用例,但最大的缺点是上下文窗口有限。每次交互时,你都必须手动键入或复制/粘贴上下文到提示中,这在处理大型代码库或文档时很受限制。

基于集成开发环境的工具

这些工具,如 GitHub Copilot,可以作为插件安装在本地计算机上用来编写代码的集成开发环境中。一旦安装,它们就会嵌入到你的软件开发体验中,嵌入到你编写代码的实际环境中。这些工具最大的优点是具有大型上下文窗口:它们可以将整个代码库作为每次交互的上下文。

使用案例

数百万软件工程师正在采用人工智能工具来支持他们的日常工作。这些工具对开发产生影响的五个最突出的用例是

生成代码片段

你无需输入代码库中的每一个单词和函数,而是向人工智能工具提供代码应满足的具体要求。它能以任何一种最流行的编程语言(如 Java、Python、PHP 或 JavaScript)输出即用代码。这可以加快原型设计和开发过程。本章介绍的工具可以为各种应用生成代码,包括网络开发、数据分析、自动化脚本或移动应用。一般来说,在这种使用案例中,人工智能有助于弥合概念化与实施之间的差距,并使技术开发更方便、更高效。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

手把手教会你linux

手把手教会你linux

桑德.范.乌格特

Publisher Resources

ISBN: 9798341664302Supplemental Content