Качество ответов ChatGPT уже сейчас позволяет разработчику делегировать чат-боту некоторые несложные задачи. В лице нейросети можно получить ассистента-джуниора, который способен выполнять простые и рутинные задачи. Пока речь не идет о решении задач высокого уровня, с ними, по-прежнему, лучше справляется человек. Но сокращение времени на выполнение задачи с 30 минут до 30 секунд — это ощутимая разница.
15 апреля наш бэкендер Максим Чипурнов стал спикером CosySoft на IT TALKS MEETUP в Ереване, где он поделился реальными сценариями применения ChatGPT. Они помогут оптимизировать работу над скучными задачами, сохранить высокую скорость работы и получить больше удовольствия от написания кода.
Выкладываем ниже запись митапа, а под ним — разбор примеров из доклада Максима.
Смотрите, слушайте и листайте 👇
Hibernate + SQL
Используем ChatGPT, чтобы сократить время написания кода для простой задачи.
Получаем сущность пользователей:
Напиши код на Kotlin для создания сущностей пользователей и статей с использованием Hibernate и PostgreSQL
Получаем сущность статей.
Получаем миграцию для PostgreSQL.
Модифицируем код:
Добавь пароль для пользователей и дату создания статей.
Получаем обновленный код.
Поменяй код так, чтобы одна статья могла принадлежать нескольким пользователям.
Получаем финальный результат.
Работа с коллекциями
Пишем запрос на 6 действий за одну минуту:
У меня есть dataclass User c полями name и hobbies. Нужно найти 3 самых частых хобби из списка пользователей. Напиши решение на Kotlin.
Получаем код, в котором видим заданный нами датасет.
ChatGPT cначала создает карту с подсчетом количества каждого хобби, а потом с помощью сортировки выдает 3 самых частых хобби.
Уточняйте библиотеку или язык, когда просите написать код, иначе чат-бот будет вставлять не подходящие конструкции. Например, без уточнения ChatGPT пишет код на Kotlin, как на Java. В таком случае уточните запрос: используй Kotlin для работы.
Псевдовыполнение и объяснение кода
Этот сценарий подойдет, если вам нужно выполнить код изолированно без написания unit-теста, или разобраться что в нем происходит.
Например, ChatGPT может определить алгоритм, даже когда из кода удалены все его признаки и составляющие.
Так ChatGPT определяет алгоритм quicksort
Починка бага
Находим причину бага за 2 запроса к ChatGPT.
Например, есть код на Java, который выдает ошибку:
NPE (NullPointerException) на строчке valueProcessor.process(entity == null ? 0 : entity.value;
Загружаем в чат-бот и просим разобраться.
Сначала бот предлагает добавить проверку на null, хотя проверка и так есть.
Сообщаем об этом боту и получаем решение.
Конфигурирование
ChatGPT выполняет рутинную задачу для нового проекта:
Напиши мне yaml конфигурацию для spring для работы с pem ssl сертификатом.
Напиши docker compose файл с поднятие базы Postgrees и Redis.
ChatGPT не умеет говорить «Я не знаю». Он будет отвечать утвердительно даже если у него нет данных. Он может писать абсолютную чушь, не имеющую ничего общего с действительностью. Проверяйте все получаемые ответы.
Написание документации в ChatGPT
Можно покрыть документацией целый проект за пару часов...
Вставляем код и просим написать документацию
Получаем результат
Если хотим видеть документацию в коде, уточняем запрос — получаем полную документацию для классов, функций и т.д.
Не вставляйте код с чувствительными данными в ChatGPT, особенно если работаете на коммерческом проекте.
Обучение новым технологиям с примерами
Лучший способ лучше понять как работает та или иная технология — это увидеть ее применение проиллюстрированное реальными примерами. ChatGPT неплохо справляется с такой задачей.
Пишем запрос и уточняем: покажи как с этим работать и сгенерируй реальный пример.
Пишем запрос и уточняем: покажи как с этим работать и сгенерируй реальный пример.
Что такое Either (Arrow) в Kotlin?
Что такое Spring Cloud?
Что такое Spring Cloud? На примере покажи использование
ChatGPT склонен с вами соглашаться. Его можно даже убедить что 2 x 2 = 5.
Имейте это в виду. Используйте более нейтральные формулировки вместо утвердительных.
Решение нетривиальных задач
ChatGPT может помочь, если вам нужно выполнить задачу из незнакомой вам области знаний. Представим, что, вы бэкенд-разработчик, но увлекаетесь еще и геймдевом.
Напиши компонент для unity для движения объекта согласно динамике второго порядка с dumping.
ChatGPT предлагает общий подход к решению и объясняет роли каждого параметра.
Освежить знания
ChatGPT может помочь вспомнить или изучить какие-то новые технологии. Даст краткий и емкий ответ, приведет пример и расскажет о проблеме и решении.
Что такое n+1 проблема в контексте Hibernate
В чем разница между библиотекой и фреймворком?
Когда лучше использовать наследование, а не агрегацию?
ChatGPT всегда подробно описывает свою работу. Используйте это. Спрашивайте, уточняйте, давайте больше контекста. ChatGPT не всегда сразу может справиться с поставленной задачей, но с помощью ваших подсказок вы сможете получить решение.
Доверяйте и проверяйте
Условный мыслительный процесс нейросети — это не то же самое, что человеческий разум. Часто он допускает очевидные ошибки, которых не допустил бы человек. Например, разработчик, если не знает как лучше решить задачу, спросит совет у команды или подойдет к лиду. В свою очередь ChatGPT так не умеет и в отсутствии данных будет делать все по наитию, часто выдавая нерелевантные ответы.
Проверяйте все получаемые ответы. Не забывайте, код-ревью — на вашей стороне.
Проверяйте все получаемые ответы. Не забывайте, код-ревью — на вашей стороне.