图书前言

读者感受

一本为现代软件工程师打造的卓越、实用指南。

——Colin Kirk

本书见解深刻,示例设计精巧且实用,行文流畅,阅读体验极佳。运用书中所学,我的工作效率得到了极大提升。

一本引领你借助生成式AI革新软件开发的指南。

——Madhuri Lokesh

刚读完《大模型辅助编程》,本书彻底改变了我对软件开发的认知。作者将复杂的 AI 概念拆解得通俗易懂,让ChatGPT、GitHub Copilot、CodeWhisperer等工具真正落地、可上手。

最打动我的是书中紧贴实战的讲解:从设计到编码,每一步都有 AI 辅助的实例,我立刻就能搬进自己的项目。其中第4章介绍的用 GitHub Copilot 做领域建模、理解设计模式,让我大开眼界。

读完后,我更深刻地体会到将AI引入开发流程时,测试与安全的重要性。书中关于最佳实践的讨论,不仅教我“怎么用”,更教我“怎么负责任地用”。

强烈推荐给所有想在软件开发中借力 AI 的同行——生成式 AI 正在重塑传统开发方式,而本书就是最好的路线图。

总之,它彻底刷新了我对“AI+编码”的思考,带来了启发,我会在工作中继续深挖。

解锁AI工具在软件开发中的强大潜力。

——Nilay

《大模型辅助编程》是一本极具实用价值的入门指南,全面介绍了如何将ChatGPT、GitHub Copilot和CodeWhisperer等AI工具应用于软件开发。本书以通俗易懂的方式解析复杂概念,即使你是AI增强开发领域的新手也能轻松掌握。

书中对提示工程的讲解令我尤为赞赏。详细介绍的“优化模式”帮助调整提示词,获取更佳结果,特别有趣的“角色模式”演示如何使AI输出保持一致性。书中对不同工具的适用场景对比十分精辟:ChatGPT擅长原型设计,而Copilot能在明确需求后极大提升编码效率。

总之,若你希望在编码项目中借助AI提升生产力,本书提供的清晰实用的指导和即学即用的示例将为你提供立即可操作的解决方案。

开发者使用ChatGPT的绝佳入门指南。

——Rami

本书为开发者介绍了ChatGPT在实际工作中的多种应用场景,内容通俗易懂,编排合理,是学习AI辅助开发的优质选择。

谨以此书纪念Catherine L. Crocker,

她的力量和爱一直指引着我。

虽然她已不在我们身边,但她的精神和智慧永远与我们同在。

我写的每一个字都蕴含了她的思想。

她虽然离开了这个世界,却永远留在我们心中。

译 者 序

大模型时代催生了以自然语言交互的编程范式。从最早的汇编语言到其后的低级编程语言,再到高级编程语言,需要程序员根据业务需求和拟解决问题动手编写代码、调试代码并运行代码。此外,不同的场景催生不同的高级编程语言。例如,如果是开发操作系统、数据库和嵌入式系统,C++、Rust是最佳的编程语言;如果是做Web开发,Java、Go和C#是最佳的编程语言;如果是数据科学和算法建模,MATLAB、Python和R是最佳的选择。这使得程序员需要掌握2~3门编程语言,学习门槛比较高。

大模型的出现彻底改变了这一局面。针对编程需求,目前已经出现了一批基于大模型形成的辅助编程工具,与IDE高度集成或者开发出AI IDE。例如Cursor IDE、Windsurf AI IDE、GitHub Copilot和Google AI Studio等,这些都具备上下文引擎、多文件编辑、AI集成和自然语言交互等方面的能力。这些工具不仅改变了传统的编程方式,还为开发效率、代码质量以及创新能力带来了新的可能性。

以大模型(ChatGPT、DeepSeek、Claude等)作为编程引擎的AI辅助编程工具彻底改变了编程范式,由以前的程序员编程,到与AI工具结对编程,再到未来的AI Agentic编程(GitHub Copilot Workspace),编程人员通过自然语言人机交互,从头脑风暴、规划、构建、测试和运行代码,很短时间内就可以实现自己的产品。

本书为程序员转型提供了指南。本书的出版正值这一领域发展的关键时期。本书深入探讨了如何将AI编程工具集成到软件开发过程中,提供了切实可行的建议和最佳实践案例。这不仅对资深开发者有所帮助,也为编程初学者提供了利用AI加速学习的机会。

本书结构清晰,内容丰富,从基础知识到高级应用,从理论介绍到实践案例,涵盖了GitHub Copilot和ChatGPT编程的方方面面。无论你是希望提高生产力的资深开发者,还是刚刚踏入编程世界的学习者,本书都能为你提供有益的指导。愿本书成为你的AI开发旅程中的一盏明灯!

对于开发者而言,合理选择工具至关重要。例如,GitHub Copilot适合需要进行高效开发的团队和个人,而Tabnine更适合注重隐私保护的企业用户。同时,国内开发者应关注国产工具的发展,特别是在满足中文场景需求和合规性要求方面,充分利用华为MindSpore Studio和百度文心Code的功能。

本书附赠“Trae AI编程工具入门与实例精讲”文档(可扫下面的二维码下载),供读者参考和学习。

在本书翻译过程中,西南交通大学外国语学院王艺锦参与本书的审校工作,感谢她为本书所作的一切努力。最后,感谢清华大学出版社的编辑,他们做了大量的编辑与校对工作,保证了本书的质量,使得本书符合出版要求,在此深表谢意。

由于本书涉及的内容广且深,加上译者翻译水平有限,在翻译过程中难免有不足之处,欢迎批评指正。

作 者 简 介

Nathan B. Crocker是Checker的联合创始人兼CEO,Checker以API为主提供解决方案,将传统资本市场基础设施与区块链生态系统连接起来。凭借其在构建数字资产基础设施方面的专业知识,Nathan目前负责Checker的技术愿景和开发工作,构建其核心基础设施,从而在区块链上运行新的金融应用程序。

致    谢

撰写本书绝非易事,需要花费并投入大量时间,需要一丝不苟的努力。这是一条充满挑战的道路,但每走一步都是颇具价值的经历,让我更接近AI辅助编程这一广阔而迷人的世界。这段旅程如果没有杰出人士的支持和贡献,我无法开始,更无法完成。

衷心感谢我的编辑Katie Sposato Johnson,她在本书的写作过程中起到了重要作用。她深刻的评论、批判性的见解和建设性的反馈帮助我提炼思想,并将其转化为条理清晰且引人入胜的文字。她坚定不移的付出和充满激情的投入对这个项目来说非常宝贵。

特别感谢我的技术编辑Nicolai Nielsen,他是SymphonyAI的首席AI工程师,同时是一名程序员和内容创作者,在YouTube上制作AI和计算机视觉教育视频及课程,在帮助人们成长的同时也扩大他的品牌影响。Nicolai的专业知识和对细节的敏锐眼光时刻警醒着我,不断提醒我在这一广阔的领域中还有许多知识要学。他的意见不仅具有教育意义,也让我感到谦卑,加深了我对该领域的理解并使我能够脚踏实地。

衷心感谢Manning出版社的所有人在这段旅程中给予我的不懈支持。他们的职业精神、合作态度和追求卓越的决心让我备受鼓舞。他们在本书的出版过程中发挥了重要作用,对此我深怀感激。

感谢所有审稿人:Carmelo San Giovanni、Chad Yantorno、Christopher Forbes、Dan McCreary、Dewang Mehta、Greg MacLean、Håvard Wall、Jeff Smith、Jim Matlock、Jonathan Boiser、Louis Aloia、Luke Kupka、Mariano Junge、Maxim Volgin、Maxime Boillot、Mike Piscatello、Milorad Imbra、Peter Dickten、Philip Patterson、Pierre-Michel Ansel、Rambabu Posa、Rebecca Wagaman、Riccardo Marotti、Roy Wilsker、Stefano Pri-ola、Thomas Jaensch、Thomas Joseph Heiman、Tiago Boldt Sousa、Tony Holdroyd和Walter Alexander Mata López,你们的建议让这本书变得更好。

我最感谢的是我的家人,你们是我的精神支柱。感谢我的妻子Jenn,谢谢你成为我的依靠,感谢你一直以来的耐心、理解和爱。感谢我的女儿Maeve和Orla,你们是我的灵感源泉,你们的快乐、好奇心和无尽的热情激励着我前行。感谢所有支持我的家人,谢谢你们。

这本书是无数个小时的努力、投入和团队合作的结晶。我衷心感谢所有为本书做出贡献的人。谢谢大家。

关于封面插图

本书封面上的人物标题为Junger kroatischer Gebirgsbauer,意为“年轻的克罗地亚山区农民”,取自1912年出版的历史和民俗服装插图集。该图集的每幅插图都由手工精细绘制和上色而成。

在那个时代,仅凭人们的着装就能轻易辨认出其居住地、职业或社会地位。Manning出版社以几世纪前丰富多彩的区域文化为基础,并通过这类插图集中的图片重现往昔人们的精神风貌,以此彰显计算机行业具有的创造性和主动性。

序    言

欢迎阅读本书,这是探索编程与AI之间共生关系的门户。本书不仅讲述AI及其在软件开发中的应用,而且介绍通过前沿AI模型(如ChatGPT和GitHub Copilot)的辅助探索编程的未知领域。翻开本书,读者将踏上探索与发现的旅程,以全新的视角发掘AI如何重塑和提升编程领域。

本书的精髓在于其非常规的指导方法。与大多数技术文献不同,它并不要求读者遵循固定的脚本或模式。因为本书涉及LLM在软件开发中的应用,在这个领域中,即使输入相同,输出也可能千差万别。与其说这是一张规划预定路线的地图,不如将其视为一个指南针,指引读者在充满可能性的迷人风景中前行。

本书鼓励做实验、提问题,最重要的是,对意外结果持开放态度。本书会引发好奇心,激发创造力,并促进读者提升解决问题的能力。像ChatGPT和Copilot这样的LLM领域不仅提供辅助编程,还提供了一个具有变革性的框架,有可能从根本上革新软件开发。

这本书本质上扮演了导师的角色,是推动超越传统编程熟悉边界的催化剂,鼓励探索AI与编程之间的复杂交互。它激发对生成式AI模型未知潜力的兴趣。通过大量真实案例、实践练习和深入了解,不仅能学会如何使用这些AI工具,还能更深入地了解其工作原理、潜力和局限性。

然而,与跟随其他导师一样,这段旅程的收获与激情、好奇心和投入成正比。通过深入研究、提问和质疑假设,读者不仅会获得技术技能,还将从更广阔的视角了解在AI时代成为开发人员意味着什么。

在软件开发领域,当今正处于令人振奋的时代。AI和机器学习正在颠覆传统范式,提供新的工具和方法,这可以显著提高生产力、创造力和效率。将AI融入开发流程可以解决更复杂的问题,简化工作流程,并从根本上改变编写代码的方式。

本书不仅是一本书,还是通往新世界——一个将编程逻辑与AI的能力和灵活性相结合的世界——的大门。无论是经验丰富的开发人员还是充满热情的初学者,均可通过本书学习工具、技术和知识,以此在环境的不断变化中开辟自己的道路。

请记住,千里之行,始于足下。阅读本书,就已经迈出了这第一步。现在,让我们一起走进智能编程的精彩世界,享受这段旅程吧!

前  言

本书是掌握LLM(如ChatGPT和CoPilot)如何与软件开发过程相集成的必备指南。本书提供了实用建议,展示了最佳实践,指导利用人工智能(AI)提升项目质量。从使用AI的注意事项到真实案例,读者将获得所需的见解和工具,来提升开发技能,并在不断变化的技术领域中保持领先。

本书读者对象

无论是专业开发人员还是业余爱好者都能从本书中受益。虽然这本书主要面向有经验的开发人员,但大模型(Large Language Model,LLM)[ 译者注:Large Language Model中文翻译为“大规模语言模型”“大型语言模型”“大模型”,本书中文统一为“大模型”,英文统一为LLM。]有助于快速学习,因为这些工具可以提供解释、代码示例以及编程概念的指导。有经验的开发人员可以利用这些工具提高效率,简化编程流程,更高效地应对复杂的编程挑战。这些工具还可以协助生成代码片段、调试,并提供关于最佳实践的见解。

本书内容

本书主要分为4个部分,并配备3个实用的附录,用于指导读者设置3个AI工具。

第Ⅰ部分:基础

第1章介绍LLM,追溯其历史并阐释了生成式AI的概念。该章还就如何恰当和谨慎地使用这些技术提出了建议。

第2章介绍如何开始使用LLM,比较了ChatGPT、GitHub Copilot和CodeWhisperer,并详细说明了使用它们的初步步骤。

第Ⅱ部分:输入

第3章通过信息技术资产管理(ITAM)系统项目示例,讲解如何在ChatGPT的辅助下设计软件。

第4章着重介绍如何使用GitHub Copilot构建软件,涵盖了诸如领域建模、不可变性和设计模式等基本概念。

第5章深入探讨如何使用GitHub Copilot和Copilot Chat管理数据,包括使用Kafka进行实时资产监控以及使用Apache Spark进行数据分析。

第Ⅲ部分:反馈

第6章讨论使用LLM开发的软件的测试、质量评估和解释过程,包括漏洞查找和代码转换。

第Ⅳ部分:走向世界

第7章涵盖从构建Docker镜像到使用GitHub Actions设置持续集成/持续部署(CI/CD)管道的基础设施编程和管理部署知识。

第8章讨论如何使用ChatGPT开发安全应用程序,包括威胁建模和安全最佳实践应用。

第9章探讨“随时随地使用GPT”的概念,包括托管自己的LLM以及通过GPT-4All实现访问民主化。

附录提供设置ChatGPT、Copilot和CodeWhisperer的简单指导,确保具备开始AI辅助编程所需的操作知识。

除最后一章外,本书应按顺序阅读,因为每一章都是在前一章的基础上构建的。

关于代码

读者可扫描下面的二维码,下载本书示例的完整代码。