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

xpinjection

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

xpinjection

3 года назад
Открыть в
Мир разработки безвозвратно изменился после революционного скачка в развитии 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-эффектом? Делитесь в комментариях!