Разработка с ИИ: как эффективно использовать ChatGPT и Copilot
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабын онлайн тегін оқу  Разработка с ИИ: как эффективно использовать ChatGPT и Copilot

 

Переводчик А. Бойков


 

Нэйтан Крокер

Разработка с ИИ: как эффективно использовать ChatGPT и Copilot. — СПб.: Питер, 2025.

 

ISBN 978-5-4461-4281-1

© ООО Издательство "Питер", 2025

 

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

 

Посвящается памяти Кэтрин Л. Крокер, чья сила и любовь продолжают меня направлять. И пусть ее больше нет рядом, навечно со мной ее мудрость и дух. Ее наследие живет в каждом написанном мною слове. Покинув этот мир, она навсегда осталась в наших сердцах.

От издательства

Мы выражаем огромную благодарность клубу рецензентов ИТ-литературы ReadIT Club за помощь в работе над русскоязычным изданием книги и вклад в повышение качества переводной литературы.

Ваши замечания, предложения, вопросы отправляйте по адресу comp@piter.com (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.

О научном редакторе русского издания

Дмитрий Бардин — ведущий разработчик, архитектор решений, один из авторов курса «Архитектор ПО» от Яндекс Практикума. Опыт в ИТ более 15 лет. Работал руководителем службы продуктовой разработки и ресурс-менеджером, в настоящее время занимается разработкой бэкенда сервиса «Кинопоиск» с применением языков Go и Java.

Предисловие

Добро пожаловать! Эта книга — ваш проводник в мир, где программирование и искусственный интеллект (ИИ) работают вместе. Это не просто рассказ о том, как ИИ применяется в разработке, а приглашение исследовать новые возможности написания кода вместе с ChatGPT и GitHub Copilot. Читая эту книгу, вы отправитесь в увлекательное путешествие, которое поможет взглянуть по-новому на то, как ИИ может упростить, улучшить и расширить ваши подходы к программированию.

Главная особенность этой книги — гибкий подход. В отличие от стандартных технических руководств, здесь нет жестких инструкций и четко заданных алгоритмов. Разработка с применением больших языковых моделей часто приводит к неожиданным, но интересным результатам, даже если исходные данные остаются одинаковыми. Мы не будем просто следовать по готовому маршруту: эта книга даст вам инструменты для поиска собственных решений. Она как компас, который направляет вас в мир новых возможностей.

А потому я призываю вас экспериментировать, задавать вопросы и, самое главное, не бояться неожиданных результатов. Пусть книга пробуждает любопытство, развивает креативность и помогает улучшить навыки решения задач. Мир, в котором живут большие языковые модели, гораздо шире, чем может казаться. Они могут намного больше, чем написать за вас сотни строк кода: в их силах полностью изменить ваши представления о работе программиста.

Эта книга — ваш наставник, который поможет выйти за привычные рамки кодинга, чтобы узнать, как ИИ меняет процесс написания кода. Она призвана пробудить интерес к безграничным возможностям генеративных моделей ИИ и вдохновить вас исследовать их потенциал. На реальных примерах, практических упражнениях и разборе ключевых концепций вы не только освоите работу с ИИ-инструментами, но и поймете их устройство, сильные и слабые стороны.

Как и в любом обучении, чем больше вы увлечены, чем больше вопросов задаете и пробуете новое, тем больше получаете в ответ. Погружаясь в эту тему, вы развиваете не только технические навыки, но и новый взгляд на роль разработчика в мире ИИ.

Мы живем в эпоху перемен в разработке программного обеспечения. Искусственный интеллект и машинное обучение меняют привычные подходы, предлагая инструменты, которые увеличивают скорость работы, креативность и эффективность. С помощью ИИ можно решать более сложные задачи, автоматизировать рутинные процессы и переосмыслить сам подход к программированию.

В ваших руках не обычная книга, а путеводитель в новую реальность, где гибкость и мощь ИИ сочетаются с логикой программирования. Независимо от вашего уровня — опытный ли вы разработчик или только начинаете, — здесь вы найдете инструменты, методики и знания, которые помогут адаптироваться к новым технологиям и уверенно двигаться вперед.

Помните, любое большое путешествие начинается с первого шага. Открыв эту книгу, вы уже сделали этот шаг. Теперь настало время погрузиться в удивительный мир искусственного интеллекта. Удачи!

Благодарности

Начать писать эту книгу было непросто: она потребовала от меня усидчивости и бесконечных часов кропотливой работы. Пришлось преодолеть множество трудностей, но каждая из них обогащала меня опытом, приближала к бесконечному увлекательному миру программирования с ИИ. Но этот труд я бы не смог ни начать, ни закончить без помощи и поддержки некоторых удивительных людей.

Выражаю глубокую благодарность редактору Кэти Спосато Джонсон (Katie Sposato Johnson), которая помогла мне в работе над книгой. Ее точные комментарии, критические замечания и конструктивная обратная связь помогли мне упорядочить мысли и превратить их в связный и увлекательный текст. Ее преданность делу и искренняя вовлеченность неоценимы для этого проекта.

Отдельная благодарность научному редактору Николаю Нильсену (Nicolai Nielsen), ведущему инженеру по работе с искусственным интеллектом в SymphonyAI. Он не только разработчик, но и создатель образовательного контента — выпускает на YouTube видео о ИИ и компьютерном зрении, а также делает курсы, помогающие людям осваивать эти технологии. Опыт Николая и его внимательное отношение к деталям держали меня в тонусе и не давали забыть о том, как много мне только еще предстоит узнать.

Я глубоко признателен всем сотрудникам издательства 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 Priola), Томасу Яеншу (Thomas Jaensch), Томасу Джозефу Хейману (Thomas Joseph Heiman), Тиаго Болдт-Соуза (Tiago Boldt Sousa), Тони Хольдройду (Tony Holdroyd) и Вальтеру Александру Мата-Лопесу (Walter Alexander Mata Lуpez). Ваши предложения помогли сделать книгу намного лучше.

Моя глубочайшая благодарность моей семье — источнику силы. Спасибо моей жене Дженн (Jenn) за то, что была мне опорой, за бесконечные часы терпения, понимания и любви, вложенные в эту работу. Спасибо моим дочерям, Мэве (Maeve) и Орле (Orla). Вы — мое вдохновение, ваша радость, любопытство и безграничный энтузиазм подпитывают меня во всем, что я делаю. Всем членам моей семьи, кто поддерживал меня в самых разных ситуациях, — огромное спасибо.

Эта книга — итог многих и долгих часов усилий, преданности и коллективной работы. Я глубоко признателен всем, кто помогал мне в ее написании. Спасибо вам всем!

Об этой книге

Этак книга — ваш незаменимый гид по внедрению больших языковых моделей (ChatGPT и Copilot) в процесс разработки программного обеспечения. Здесь содержатся практические советы и лучшие практики, которые помогут раскрыть потенциал ИИ и использовать его для улучшения проектов. От правильного и ошибочного подхода к внедрению ИИ до реальных примеров его применения — здесь вы найдете инструменты и идеи, которые позволят вам развивать свои навыки и оставаться в авангарде технологических изменений.

Для кого эта книга?

Эта книга будет полезна как профессиональным разработчикам, так и энтузиастам. Хотя основной фокус сделан на опытных программистах, большие языковые модели могут ускорить обучение и помочь разобраться в сложных концепциях программирования, предоставляя объяснения, примеры кода и рекомендации. Опытные разработчики смогут использовать эти инструменты для повышения продуктивности, оптимизации процессов разработки и решения сложных задач. ИИ также поможет в генерации кода, отладке и предоставлении рекомендаций по лучшим практикам.

Структура книги

Книга состоит из четырех частей и трех приложений:

• Часть 1. Основы

• В главе 1 мы познакомимся с большими языковыми моделями (LLM), историей развития и концепциями генеративного ИИ. Обсудим, где лучше всего применять эти технологии, а когда нужно действовать осторожно.

• В главе 2 поработаем с LLM. Сравним ChatGPT, GitHub Copilot и CodeWhisperer, наметим первые шаги к освоению их возможностей.

• Часть 2. Ввод данных

• В главе 3 с помощью ChatGPT займемся планированием системы управления ИТ-активами (ITAM) — пример, который мы будем рассматривать почти во всех последующих главах.

• В главе 4 сосредоточимся на реализации при помощи GitHub Copilot, поговорим о фундаментальных концепциях: неизменяемости данных, моделировании предметной области и паттернах проектирования.

• В главе 5 займемся управлением данными. GitHub Copilot и Copilot Chat помогут в мониторинге и анализе IT-инфраструктуры в реальном времени с Kafka и Apache Spark.

• Часть 3. Оценка и улучшение

• В главе 6 обсудим тестирование и оценку качества программного обеспечения, займемся отладкой и переводом кода на другой язык.

• Часть 4. Развертывание

• В главе 7 поговорим об инфраструктуре и развертывании, образах Docker и CI/CD-конвейерах на основе GitHub Actions.

• В главе 8 обсудим безопасность приложений и то, как можно ее обеспечить с помощью ChatGPT. Поговорим о моделировании угроз и лучших практиках защиты данных.

• В главе 9 рассмотрим развертывание и локальное использование GPT, включая запуск собственной языковой модели (LLM) и доступ к ИИ через GPT-4All.

В приложениях вы найдете пошаговые инструкции по настройке ChatGPT, Copilot и CodeWhisperer.

Все главы за исключением последней опираются на знания и навыки, полученные в предыдущих. Поэтому следует читать их последовательно. Последнюю главу можно прочесть в любой момент, хоть сразу же после первой.

О коде

Исполняемые фрагменты кода можно взять из электронной версии книги (liveBook), которая доступна по адресу https://livebook.manning.com/book/ai-powered-developer. Весь код из примеров можно загрузить с сайта издательства Manning (www.manning.com) или специального репозитория на GitHub (https://github.com/mdowst/ai-powered-developer).

Важно отметить, что ценность этой книги заключается в том, чтобы проработать примеры с использованием рекомендованных (или каких-то иных) инструментов. При этом не следует забывать о том, что эти инструменты редко дают одинаковые ответы, даже при неизменных исходных данных. Не стоит расстраиваться или отчаиваться, если ваш код будет не слишком похож на тот, что вы увидите в книге или в репозитории. Этот код предлагается лишь для ознакомления, он помогает сделать процесс обучения более эффективным, но не является образцом, к которому нужно стремиться.

Максимальную пользу из этой книги можно извлечь, используя последнюю версию Python 3 с возможностью установки новых пакетов. Для работы большинства систем, связанных с инфраструктурой, потребуется умение устанавливать образы Docker и запускать контейнеры Docker.

В книге содержится множество примеров исходного кода, как в нумерованных листингах, так и прямо в тексте. В обоих случаях он будет выделен моноширинным шрифтом и отличаться от обычного текста. Во многих случаях исходный код пришлось дополнительно форматировать в угоду особенностям печатного издания. Поэтому часто в нем будут лишние разрывы строк и отступы.

Форум liveBook

Приобретая эту книгу, вы также получаете бесплатный доступ к платформе для онлайн-чтения liveBook издательства Manning (на английском языке). Эксклюзивные возможности liveBook позволяют оставлять комментарии как к книге в целом, так и к отдельным ее разделам или абзацам. Можно легко делать заметки для себя, задавать технические вопросы и отвечать на них, а также получать помощь от авторов и других пользователей. Чтобы получить доступ к форуму, откройте страницу https://livebook.manning.com/book/ai-powered-developer/discussion. Правила поведения на форумах издательства Manning приведены на сайте https://livebook.manning.com/discussion.

В рамках своих обязательств перед читателями издательство Manning предоставляет ресурс для содержательного общения читателей и авторов. Эти обязательства не подразумевают конкретную степень участия автора, которое остается добровольным (и неоплачиваемым). Задавайте автору хорошие вопросы, чтобы он не терял интереса к происходящему! Форум и архивы обсуждений доступны на веб-сайте издательства, пока книга продолжает издаваться.

Об авторе

Нэйтан Б. Крокер — сооснователь и технический директор компании Checker, которая предлагает API-ориентированное решение для интеграции традиционной инфраструктуры финансовых рынков с блокчейн-экосистемой. Используя свой опыт в создании инфраструктуры для цифровых активов, Нэйтан руководит технологическим развитием Checker, разрабатывая базовую архитектуру, которая позволяет запускать новые финансовые приложения на блокчейне.

Иллюстрация на обложке

Иллюстрация под названием «Junger kroatischer Gebirgsbauer» («Молодой крестьянин с хорватских гор»), помещенная на обложке, взята из коллекции рисунков исторических и народных костюмов, опубликованной в 1912 году. Все рисунки в сборнике созданы и раскрашены вручную.

В те времена по одежде можно было определить, где живет тот или иной человек, какое положение занимает в обществе и чем занимается. Издательство Manning приветствует изобретательность и инициативность — качества, присущие индустрии IT, — и в знак этого размещает на обложках изображения, которые демонстрируют богатое разнообразие региональных культур, запечатленное на старинных рисунках.

Часть 1. Основы

В части 1 книги мы рассмотрим большие языковые модели (large language models, LLM) и их значение в современной разработке программного обес­печения. Здесь представлена история эволюции генеративного ИИ, а также концептуальная база, помогающая понять принципы работы этих технологий. Отдельное внимание уделим осознанному и ответственному использованию ИИ — вы познакомитесь с ключевыми принципами интеграции ИИ в рабочие процессы, а также с возможными рисками и подводными камнями. Кроме того, в этой главе даны практические советы по работе с LLM: мы сравним популярные инструменты ChatGPT, GitHub Copilot и CodeWhisperer, а также разберем первые шаги для эффективного использования этих технологий.