Авторский канал @xpinjection - опытный Java Tech Lead, Delivery Manager и консультант с 15+ лет опыта в IT.
Я пишу о Java, распределённых системах, Agile, процессах разработки, инженерных практиках, QA, конференциях, инфраструктуре и многом другом...
Мир разработки безвозвратно изменился после революционного скачка в развитии AI. Copilot в своей первой версии кажется детской поделкой на коленке по сравнению с ChatGPT 4. Я на прошлой неделе перешел на платную версию ChatGPT и считаю это лучшей инвестицией в свою эффективность для большинства IT специальностей.
Сегодня в посте приведу несколько практических примеров использования, которые меня впечатлили. Я пропущу тему написания разнообразных текстов, потому что она более актуальна для менеджеров. А мы поговорим о сугубо технических.
Начнем с первой задачи. Мне нужно было через JIRA API создать ряд сущностей. Я делал это в прошлом и поэтому знал где искать детали. Но нужно было найти конкретный API, разобраться с параметрами, подставить свои значения и подготовить удобный запрос. У меня в сумме заняло минут 20. Я сформулировал ту же задачу в 2 предложения ChatGPT. В ответ получил детальную пошаговую инструкцию, сформированные API вызовы и готовые curl команды. Потраченное время 2-3 минуты. Ускорение в 7-10 раз.
С ChatGPT очень круто писать код, потому что он держит в памяти весь контекст диалога. Можно улучшать код, пока он не получится желаемого вида. Я за 10 минут прошел следующий путь:
- создание нового API эндпоинта в Spring Boot по чисто логическому описанию без конкретного описания бизнес модели;
- выделение логики обработки данных в сервис;
- добавление валидаций;
- сохранение данных в MongoDb;
- выделение DTO и маппинг в сущности (никто не любит это делать руками);
- написание набора тестов на бизнес логику (с отличной генерацией тестовых данных);
- написание набора API тестов с использованием TestContainers и RestAssured (включая все негативные сценарии).
Разработчики синьор уровня должны с такой задачей справляться за 2-3 часа. Мидлы и джуны тратят 4-8 часов. При грамотном использовании ChatGPT, я получил весь работающий код за 10 минут. Еще минут 5-10 понадобилось на перенос кода в IDE, мелкие улучшения и запуск всех тестов. Итого 15-20 минут на всю задачу. Даже если округлить до получаса, то это ускорение в 4-6 раз даже по сравнению с уровнем синьора. Для мидлов и джунов у меня грустные новости…
Что можно сказать о качестве сгенерированного кода? Вполне неплохо. Не везде оптимально или как бы писал я, но все работает и можно под прикрытием тестов потом сделать любой рефакторинг. Генерация тестов - это вообще one love! И очень круто работает пошаговое улучшение кода по конкретным замечаниям.
И тут мы приходим к очень важному фактору. Чтобы улучшать код, нужно знать что получилось не очень хорошо в существующем коде. А это требует изначально определенного уровня экспертизы и опыта. Поэтому в руках синьоров инструмент может работать шикарно, избавляя от кучи рутины.
Но у ChatGPT есть ограничение в отсутствии персонализации. Он не может подстраиваться под ваш стиль разработки, используемые фреймворки и библиотеки. Для этого ему нужно знать контекст проекта и анализировать существующий код. Ну и конечно же, хочется делать генерацию кода сразу в IDE. Это позволит еще существенно упростить и ускорить процесс. Поэтому я с нетерпением жду Copilot X.
На следующей неделе поделюсь другими практическими примерами. А вам удалось где-то применить ChatGPT с wow-эффектом? Делитесь в комментариях!