Веб-версияОткрыть в Telegram

Пост👋 Привет Пол (и привет всем)

22 марта 2024
Н
Никита Поляков
👋 Привет Пол (и привет всем) Недавно я сходил на свою первую Java конференцию в Лондоне. В кулуарах мы занимались типичными активностями — травили байки и мерились, кто тут самый старпер. Всех уел разраб, первой средой разработки которого была еще IBM VisualAge (что-то древнее, что умерло 20+ лет назад). Но дальше он начал рассказывать про свой опыт использования 4х разных AI в написании кода, и мне порвало шаблон. Все вокруг начали наперебой делиться опытом , а мне же оставалось только шаркнуть ножкой 🤡 Получается, единственный старпер здесь я По всем законам конформизма я задумался: с чем же и мне может помочь AI❓ ⚠️ Сегодня на проде у меня потерялся запрос. Как оказалось, причиной была самая популярная ошибка в Java. Я получил сообщение c номером счета, а метод ниже должен был вернуть валюту счета: public String getCurrencyName(String account) { var currencyCode = account.substring(5, 8); return currencyCodeNameMap.get(currencyCode); } // пример данных в currencyCodeNameMap // 810, RUR // 840, USD // 826, GBP } Но так получилось, что счет пришел битый, с кодом, которого не было в currencyCodeNameMap. Поэтому .get() вернул null, а где-то позже все и сломалось. 💡 Хорошим решением было бы ловить такие ошибки на уровне валидации полученного сообщения. С вопросом о том, как это лучше сделать, я решил выйти не в Интернет, а написать Machinet AI. Примерно за 10 минут, большая часть из которых ушла на объяснение, что account состоит из 3х групп и что есть enum CurrencyType с уже нужными кодами, я получил такое решение: String accountRegex = "\\d{5}(810|840|826|)\\d{12}"; Ответ почти устроил, ведь регулярку будет легко добавить в @Pattern. Но оставался риск забыть поправить и ее при добавлении значения в enum. Сходу идей как решить данную проблему не было, и, уже вставая из-за рабочего стола, я подумал, а было бы интересно задать те же вопросы GitHab Copilot и сравнить... Успех! Повторил первые два промта и точно также попытался скормить ему enum. Получил почти готовое решение (итоговая версия будет в комментах). Полнейший восторг! Вот, что я испытывал, глядя как строчка за строчкой проявляется решение. А в голове сам собой складывался план, как бы я шел к аналогичному результату. За 10 минут я получил ответ, освежил в памяти regex, чуть лучше начал понимать, как использовать AI. 🧠 Как итог, Copilot оказался намного умнее: 1. С первого сообщения понял, как нужно исползовать enum 2. Без подсказок решил проблему консистентности 3. Выдал готовое решение меньше, чем за 1 минуту (против 10-15 у Machinet AI) 🪦 Из минусов: Copilot умер и уже часов 8 не подает признаков жизни Вместе со смертью потер всю историю запросов По общим ощущениям показалось, что Copilot больше заточен на работу с кодом, поскольку для Machinet AI пришлось руками вырезать из enum коды валют, несколько раз переписывать весь промт, тк иначе он не мог понять, что нужно сделать. Но, главное, каждый AI дал возможность сгенерировать regex декларативно. Ну, и, как мне раньше советовал ChatGPT По окончании поста задайте вопросы для обсуждения. Это может помочь сгенерировать больше обратной связи и вовлечь ваших подписчиков. Поделитесь своими любимыми способами использовать AI? И, что вы думете, можно ли использовать технологию, которая каждый раз на один и тот же вопрос отвечает по-новому?
6 · 548 ·

Рядом в ленте

ННикита ПоляковПривет, Пол — это мой первый опыт публичных выступлений. Познакомься, это 15 новых лиц, которые присоединились к нашему комьюнити. И которые готовы вместе с тобННикита ПоляковПривет Пол (и привет всем) Хочу поделиться недавним комментом из Merge Request, который будет интересен и тебе. Кратко опишу задачу: Мне нужно было слушать топи
это сообщение
ННикита Поляков👋 Привет Пол (и привет всем) В комментах под прошлым постом мы затронули тему рисков использования AI асcистенов, и вспомнили про подкаст, где предлагались необННикита Поляков👋 Привет Пол (и привет всем) Последние несколько месяцев я проверяю работы студентов-джавистов на курсе по Clean Architecture. Всё это оказалось очень любопытны
ППол — это JavaПол — это Java@polEtoJava · канал · Технологии
203подписчиков8 533средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем