Какому программисту не захочется прокачать свои навыки с ИИ и десятикратно умножить эффективность разработки? Когда мы получили оригинал книги«Modern Python Programming using ChatGPT»(Шивакумар Гопалакришнан), то увидели как плюсы, так и минусы.
Плюсы. Автор предлагает не просто набор промптов, а реально стройную методологию: использовать ИИ на всех этапах разработки — от сбора OKR до мониторинга в Grafana. Да еще подкрепляет это сквозным примером.
Минусы. Оригинальный текст явно был написан с активной помощью самого ChatGPT. Местами «уши» LLM торчали так сильно, что текст было трудно читать из-за воды и повторов.
Возникла главная задача: как сделать так, чтобы русскоязычный читатель получил максимум пользы от применения ИИ в своих разработках, и при этом не забросал нас камнями, обнаружив примитивный перевод текста, сгенерированного тем же самым ИИ?
И тут начинается история о том, как мы перевели и отредактировали книгу, которая сама была частично «сгенерирована», и почему в итоге она стала (по нашему скромному мнению) реальным практическим руководством по работе с ИИ для Python-разработчиков, особенно в условиях современной России.
Мы решили пойти по жесткому пути. Да, автор не скрывал, что для написания книги по ChatGPT он намеренно использовал сам ChatGPT, и это было нормально для 2025 года. Но сегодня, когда первое восхищение от способности ИИ генерировать текст или находить ошибки в коде прошло и сменилось на прагматизм и разумный консерватизм, перед нами встала задача «очеловечить» книгу, сохранив всю ее техническую глубину.
Мы не просто переводили. Мы перерабатывали структуру предложений, убирали «воду», свойственную генерациям ранних версий GPT, и унифицировали терминологию. По сути, мы сделали за ИИ его же работу, но с пониманием контекста. Результат представляем на суд широкой публики.
Почему эта книга — must read (особенно в России)?
Главная фишка книги, которая подчеркивается в предисловии к русскому изданию — она не про ChatGPT. Она про методологию. Автор использует ChatGPT как пример, как популярную модель, но все принципы, все промпты и подходы, описанные в книге, применимы к любому ИИ-ассистенту, доступному в России. А девиз «Прокачайте навыки с ИИ — десятикратно умножьте эффективность разработки» - не маркетинг. Шивакумар Гопалакришнан, инженер с 25-летним стажем и экс-архитектор в Fortune 100, проводит читателя через полный жизненный цикл разработки (SDLC) на примере сквозного проекта — USB T-Shirt Launcher.
Внутри книги нет примеров, как написать того или иного бота. Путешествие по главам выглядит как путь по этапам разработки продукта в тесном и непосредственном симбиозе программиста и ИИ:
- Сбор требований.Забудьте про «напиши ТЗ». Книга учит формулировать OKR и цели по SMART, вместе с ИИ создавать персонажей, пользователей и карты эмпатии.
- Проектирование.Как ИИ помогает не нарушать SOLID еще на этапе архитектуры? Здесь об этом рассказывают.
- Разработка (Core).Генерация кода, рефакторинг, отладка. Показано на реальных примерах с конкретными промптами. Вы увидите, как ChatGPT помогал писать логику движения для камеры того самого T-Shirt Launcher.
- Качество кода.Отдельный блок про принципы SOLID (целая глава 8) и написание тестов. Это важно: автор учит не просто просить код, а проситьхорошийкод.
- DevOps-культура. Настройка CI/CD, описание коммитов, управление PR (Pull Requests) и мониторинг с помощью Grafana Cloud.
Да, купив книгу, местами вы можете почувствовать некоторую «академичность» изложения, но мы постарались вырезать те самые моменты, когда ИИ «льет воду» или ходит по кругу. Особенно ценной с нашей точки зрения получилась глава про ограничения и подводные камни (глава 13) — её автор явно писал сам, потому что она очень честная. Там рассказывается о том, как не стать рабом галлюцинаций нейросети и всегда критически оценивать результат.
Мы проделали большую работу, чтобы этот текст стал эталонным руководством именно для российского разработчика. Если вы хотите перестать бояться, что ИИ заменит вас, и начать использовать его, чтобы работать в 10 раз эффективнее — эта книга ваш инструмент.
Отдельное спасибо автору за то, что он выбрал такой «прикольный», но показательный проект, как USB-пусковая установка для футболок. Это доказывает: ИИ поможет управиться даже с «железом», если правильно его попросить.
Как ChatGPT помог спроектировать и реализовать USB-пусковую установку для футболок
Практический материал проекта оказался на удивление крепким.USB T-Shirt Launcher- это реальная «пушка», которая с помощью камеры и распознавания лиц автоматически наводится на цель и стреляет… футболками! Звучит как игрушка, но с инженерной точки зрения здесь есть всё: работа с «железом», компьютерное зрение, реальное время, ограниченные ресурсы (Raspberry Pi) и, конечно, активное использование ChatGPT на всех этапах.
Читатель проходит этот путь вместе с автором и ИИ: от первых требований до кода, который заставляет турель следить за лицом. И видит, как ИИ помог справиться с подводными камнями, о которые разбился бы не один новичок.
1. Что хочет заказчик? (Глава 5)
Представьте: вы должны написать софт для пусковой установки, которая подключается по USB и умеет поворачиваться влево-вправо и наклоняться вверх-вниз. На неё же установлена камера на Raspberry Pi. Задача: автоматически наводить устройство на лицо человека и, если хочется, стрелять в него футболкой. А для разработки и тестирования неплохо бы иметь возможность запускать код без реального железа — в симуляторе.
Все по требованиям (REQ):
- REQ-4. Интеграция распознавания лиц с движением камеры — система должна идентифицировать лица и удерживать их в центре кадра.
- REQ-5.Логика движения камеры на основе положения лица — камера двигается в реальном времени.
- REQ-6. Интеграция движения камеры с наведением пусковой установки — куда смотрит камера, туда целится и пушка.
- REQ-7. Функции безопасности — защита от случайного выстрела.
- REQ-8/9. Обработка ошибок — стабильность при сбоях.
Кроме того, есть нефункциональные требования: код должен работать на Raspberry Pi (слабый процессор), быть тестируемым, а также позволять делать отладку без реального USB-устройства.
2. Проектируем архитектуру с ChatGPT
Скармливаем этот список ChatGPT и просим предложить архитектуру, используя принципы SOLID и шаблоны проектирования. Чат-бот предлагает использоватьфабричный метод (Factory Method), чтобы во время разработки и тестирования подменять реальное USB-устройство симулятором.
Вот как выглядит диаграмма классов, сгенерированная ботом на языке Mermaid (рис. 5.6 из книги):
Суть решения: есть абстрактный классLauncherс методомlaunch_tshirt(). От него наследуютсяUSBLauncher(работа с реальным железом) иSimulatedLauncher(имитация для отладки). АLauncherFactoryсоздаёт экземпляр нужного типа в зависимости от режима.LauncherControllerполучает этот экземпляр через внедрение зависимости и работает с ним, не задумываясь, реальное это устройство или нет.
Фрагмент кода, сгенерированного ChatGPT (сильно сокращён):
Такая архитектура одновременно решает проблему тестирования и делает код гибким.
3. Переходим к реализации: подводные камни (Глава 6)
Итак, архитектура готова. Внешний вид «пушки» впечатляет.
Но дьявол, как всегда, в деталях. Когда мы начинаем писать код для реального устройства, всплывают неучтённые проблемы. Вот лишь некоторые из них:
- Шаткое крепление. Raspberry Pi с камерой просто прикручен к подвижной части турели. При каждом движении конструкция вибрирует, и координаты лица «пляшут».
- Неизвестное начальное положение. У дешёвых USB-сервоприводов нет энкодеров. При включении мы не знаем, куда направлена турель — она может смотреть в потолок или в пол.
- Ограниченная вычислительная мощность. Raspberry Pi 3 еле тянет OpenCV. Сложные алгоритмы с предсказанием движения лица приведут к тормозам.
- Цель движется. Пока турель поворачивается, человек может сместиться. Нужно постоянно корректировать траекторию.
- Механические ограничения. Нельзя крутить моторы бесконечно — есть упоры.
4. Придумываем алгоритм (советуемся с ИИ!)
Прежде чем лезть в код, полезно набросать алгоритм на пальцах. Мы решили действовать просто:
- Получить от OpenCV координаты ограничивающей рамки лица.
- Вычислить центр лица.
- Сравнить с центром кадра.
- Если смещение по горизонтали больше допустимого порога — подать команду поворота в нужную сторону на небольшую фиксированную величину.
- То же для вертикали.
- Повторять цикл, пока лицо не окажется в центре (с допуском).
Это классический пропорциональный регулятор, но без обратной связи по положению. Такой подход не требует знания абсолютного угла, нечувствителен к вибрациям и легко реализуется на слабом процессоре.
5. Промпт для ChatGPT и полученный код
Теперь формулируем задачу для ChatGPT максимально подробно, с учётом всех ограничений:
«Как главный штатный инженер по Python, дайте мне код на Python для функции, которая будет выдавать команды для запуска на основе идентифицированных координат лица. У меня есть маломощное устройство, такое как Raspberry PI. На нем установлен модуль камеры Raspberry PI. Вся камера и RPI довольно шатко закреплены на панели запуска. Устройство запуска — это устройство, управляемое через USB, которое может выполнять повороты и наклоны. Используя OpenCV, я могу распознавать лица и получать их координаты... У пусковой установки нет команды «определить положение». Её текущее положение невозможно определить при запуске программы. Лица могут перемещаться во время движения пусковой установки...»
ChatGPT выдал код, который оказался очень близок к нашему алгоритму, но добавил важные детали:многопоточность(чтобы распознавание лиц не блокировало отправку команд) ивременные интервалы(чтобы не дёргать сервомоторы слишком часто). Ниже — ключевые фрагменты (полный код занимает пару страниц, мы покажем только суть).
Обратите внимание: ChatGPT не просто скопировал наш алгоритм, но и профессионально организовал асинхронную отправку команд, защиту от слишком частых движений и корректное завершение потоков. Всё это позволяет коду работать на Raspberry Pi без подвисаний.
6. Итоги и выводы
За несколько итераций диалога с ChatGPT мы получили:
- Чёткую архитектуру,отделяющую логику от железа.
- Рабочий прототипалгоритма слежения, учитывающий реальные ограничения слабого железа.
- Возможность тестированиябез физического устройства благодаря фабрике и симулятору.
- Готовую документацию(промпты, диаграммы, комментарии) — её сгенерировал ИИ по ходу дела.
Конечно, финальный код потребовал доработки: пришлось добавить обработку нескольких лиц, более плавное движение (через PID-регулятор) и механизмы безопасности. Но начальный каркас, созданный ChatGPT, позволил сэкономить дни, если не недели.
Проект USB T-Shirt Launcher — отличная песочница для отработки навыков программирования с ИИ. Мы убедились, что ChatGPT способен не только писать отдельные функции, но и предлагать архитектурные решения, учитывающие аппаратные ограничения. Главное — правильно ставить задачу и критически оценивать результат, как это делали авторы при подготовке русского издания книги.
Хотите попробовать сами? Весь код и документация доступны в репозитории. А если захочется больше примеров и разбора каждого этапа —добро пожаловать в книгу.
Мы полагаем, что книга получилась интересной как для начинающих программистов, которые хотят научиться правильно ставить задачи ИИ, чтобы он не генерировал ерунду, так и для продвинутых, которые хотят прокачать навыки рефакторинга и написания чистой архитектуры с минимальными затратами времени.
Еслипри покупке книги на сайте издательства "БХВ"использовать промокодHABRBHV, вы получите скидку 36%.