Обложка канала

xpinjection

Авторский канал @xpinjection - опытный Java Tech Lead, Delivery Manager и консультант с 15+ лет опыта в IT. Я пишу о Java, распределённых системах, Agile, процессах разработки, инженерных практиках, QA, конференциях, инфраструктуре и многом другом...

xpinjection

3 года назад
Открыть в
Сегодня продолжу делиться интересными кейсами использования ChatGPT в разработке. И начну с самого неожиданного для меня. Я скормил ему OpenAPI спеку и попросил на основании нее написать реализацию приложения с использованием указанного мной стека технологий. Оказалось, что из структуры спеки ChatGPT вытянул максимальное количество полезной информации и реализация оказалась очень близкой к идеальным ожиданиям. Дальше все по накатанной: - добавление бизнес логики в сервис (он тут появился почему-то сразу); - переход на DTO; - переход на миграцию схемы БД с Flyway; - покрытие API тестами; - добавление негативных тестовых сценариев. Особенно меня порадовало, что ChatGPT расписывал каждый шаг словами и потом уже выдавал код. Через 15-20 минут готовое решение по всем канонам с зелеными тестами. Второй очень впечатлявший меня кейс связан с оптимизацией Dockerfile. Я скормил ему реальный Dockerfile одного из сервисов и спросил, какие потенциальные проблемы он видит. В ответ получил положительную оценку текущего состояния и список из 4 очень грамотных улучшений. Дальше я начал задавать такие же вопросы с указанием интересующей меня области (безопасность, размер образа и т.д.). Везде получил реально очень грамотные рекомендации на уровне синьора или даже эксперта. Из всех списков выбрал самые важные и попросил применить только их. На выходе получил отличный Dockerfile с инлайн комментариями по каждому блоку. Напомнило работу в паре с опытным экспертом. Последний кейс касается сложного кода и рефакторинга. Как я уже говорил, тут самое сложное в грамотной передаче полного контекста. Поэтому я нашел более-менее изолированный класс с визуально очень сложным для восприятия кодом и попросил объяснить мне его. В ответ получил пошаговый разбор происходящего в коде. После этого спросил у него, как можно улучшить данный код. Выбрал понравившиеся рекомендации и попросил применить. Потом запросил генерацию тестов на изначальный код, включая негативные сценарии. Успешно перенес предложенный код в IDE и после упрощений IDE подсветил еще несколько минорных улучшений. Зеленые тесты и кейс закрыт. Что интересно, ChatGPT не знает ваших предпочтений и может генерировать противоречивые рекомендации. Например, он рекомендовал избавиться от var, потому что тогда кожаный мешок будет явно видеть типы данных. :) В общем, без интеграции в IDE это пока все еще кейс не с такими крутыми ожиданиями. Ждём Copilot X. :)