Блог CosySoft
Разработка Видео

Сценарии использования ChatGPT для backend-разработчика

Качество ответов ChatGPT уже сейчас позволяет разработчику делегировать чат-боту некоторые несложные задачи. В лице нейросети можно получить ассистента-джуниора, который способен выполнять простые и рутинные задачи. Пока речь не идет о решении задач высокого уровня, с ними, по-прежнему, лучше справляется человек. Но сокращение времени на выполнение задачи с 30 минут до 30 секунд — это ощутимая разница.

15 апреля наш бэкендер Максим Чипурнов стал спикером CosySoft на IT TALKS MEETUP в Ереване, где он поделился реальными сценариями применения ChatGPT. Они помогут оптимизировать работу над скучными задачами, сохранить высокую скорость работы и получить больше удовольствия от написания кода.

Выкладываем ниже запись митапа, а под ним — разбор примеров из доклада Максима.
Смотрите, слушайте и листайте 👇

Hibernate + SQL

Используем ChatGPT, чтобы сократить время написания кода для простой задачи.
Получаем сущность пользователей:
Напиши код на Kotlin для создания сущностей пользователей и статей с использованием Hibernate и PostgreSQL
6.jpg
Получаем сущность статей.
7.jpg
Получаем миграцию для PostgreSQL.
8.jpg
Модифицируем код:
Добавь пароль для пользователей и дату создания статей.
Получаем обновленный код.
9.jpg
10.jpg
11.jpg
Поменяй код так, чтобы одна статья могла принадлежать нескольким пользователям.
Получаем финальный результат.
12.jpg
13.jpg
14.jpg

Работа с коллекциями

Пишем запрос на 6 действий за одну минуту:
У меня есть dataclass User c полями name и hobbies. Нужно найти 3 самых частых хобби из списка пользователей. Напиши решение на Kotlin.
Получаем код, в котором видим заданный нами датасет.
16.jpg
ChatGPT cначала создает карту с подсчетом количества каждого хобби, а потом с помощью сортировки выдает 3 самых частых хобби.
17.jpg
Уточняйте библиотеку или язык, когда просите написать код, иначе чат-бот будет вставлять не подходящие конструкции. Например, без уточнения ChatGPT пишет код на Kotlin, как на Java. В таком случае уточните запрос: используй Kotlin для работы.

Псевдовыполнение и объяснение кода

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

Так ChatGPT определяет алгоритм quicksort

20.jpg

Починка бага

Находим причину бага за 2 запроса к ChatGPT.

Например, есть код на Java, который выдает ошибку:
NPE (NullPointerException) на строчке valueProcessor.process(entity == null ? 0 : entity.value;
Загружаем в чат-бот и просим разобраться.
22.jpg
Сначала бот предлагает добавить проверку на null, хотя проверка и так есть.
23.jpg
Сообщаем об этом боту и получаем решение.
24.jpg

Конфигурирование

ChatGPT выполняет рутинную задачу для нового проекта:

Напиши мне yaml конфигурацию для spring для работы с pem ssl сертификатом.
33.jpg
Напиши docker compose файл с поднятие базы Postgrees и Redis.
34.jpg
ChatGPT не умеет говорить «Я не знаю». Он будет отвечать утвердительно даже если у него нет данных. Он может писать абсолютную чушь, не имеющую ничего общего с действительностью. Проверяйте все получаемые ответы.

Написание документации в ChatGPT

Можно покрыть документацией целый проект за пару часов...
Вставляем код и просим написать документацию
37.jpg
Получаем результат
38.jpg
Если хотим видеть документацию в коде, уточняем запрос — получаем полную документацию для классов, функций и т.д.
39.jpg
40.jpg
Не вставляйте код с чувствительными данными в ChatGPT, особенно если работаете на коммерческом проекте.

Обучение новым технологиям с примерами

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

Что такое Either (Arrow) в Kotlin?

42.jpg
43.jpg
44.jpg
45.jpg

Что такое Spring Cloud?

Что такое Spring Cloud? На примере покажи использование
46.jpg
47.jpg
48.jpg
ChatGPT склонен с вами соглашаться. Его можно даже убедить что 2 x 2 = 5.
Имейте это в виду. Используйте более нейтральные формулировки вместо утвердительных.

Решение нетривиальных задач

ChatGPT может помочь, если вам нужно выполнить задачу из незнакомой вам области знаний. Представим, что, вы бэкенд-разработчик, но увлекаетесь еще и геймдевом.
Напиши компонент для unity для движения объекта согласно динамике второго порядка с dumping.
ChatGPT предлагает общий подход к решению и объясняет роли каждого параметра.
30.jpg
31.jpg

Освежить знания

ChatGPT может помочь вспомнить или изучить какие-то новые технологии. Даст краткий и емкий ответ, приведет пример и расскажет о проблеме и решении.

Что такое n+1 проблема в контексте Hibernate

26.jpg

В чем разница между библиотекой и фреймворком?

27.jpg

Когда лучше использовать наследование, а не агрегацию?

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

Доверяйте и проверяйте

Условный мыслительный процесс нейросети — это не то же самое, что человеческий разум. Часто он допускает очевидные ошибки, которых не допустил бы человек. Например, разработчик, если не знает как лучше решить задачу, спросит совет у команды или подойдет к лиду. В свою очередь ChatGPT так не умеет и в отсутствии данных будет делать все по наитию, часто выдавая нерелевантные ответы.
Проверяйте все получаемые ответы. Не забывайте, код-ревью — на вашей стороне.