{"id":14284,"url":"\/distributions\/14284\/click?bit=1&hash=82a231c769d1e10ea56c30ae286f090fbb4a445600cfa9e05037db7a74b1dda9","title":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0430\u043d\u0446\u044b \u0441 \u0441\u043e\u0431\u0430\u043a\u0430\u043c\u0438","buttonText":"","imageUuid":""}

Использование AI во Flutter-разработке

Пока не самые компетентные люди кричат о том, что искусственный интеллект спихнет программистов «вот-вот уже», я говорю, что так называемые «преимущества» вроде четкости и последовательности генерируемого результата, являются явным недостатком в виду отсутствия креативности, мотивации, понимания бизнес процессов в IT компаниях и еще множество других человеческих вещей. Однако game changing GPT все-таки оказался полезным для программистов в немного другом векторе…

Chat GPT

Форм-фактор чата позволяет обсуждать проблему связанную с кодом на Dart на протяжении всего диалога и ИИ будет помнить о чем вы говорили ранее. Но интереснее всего то, как он решает ваши задачи: Пока я использовал GPT-3, но собираюсь купить подписку и сравнить качество выдаваемых ответов в отношении кода.

Тест на знания

— Can you explain why we need «shouldRebuild» function in SliverPersistentHeaderDelegate?

Здесь меня интересовало то, как ИИ справляется с вопросами на уровне гугления. Информация о shouldRebuild естественно лежит в официальной документации, а также в комментариях библиотеки Flutter, однако ИИ выдал быструю выдержку, а также сделал связь с контекстом прошлых наших сообщений, написав вторым абзацем пример использования.

Тест на багфикс

— I put SliverFillRemaining with TextField into AnimatedSwitcher and then alignment of text field became center, how to set a top alignment?

Он быстро предложил мне исправление, а также объяснил почему данный баг произошел. Все это, конечно же, можно было нагуглить при подходящей сноровке, однако главным преимуществом я вижу то, что из личных предположений о происхождении бага он вычленяет самое нужное и пишет (иногда и нет) правильный фикс. Достаточно описать ошибку со своей точки зрения. В гугле же надо пробивать каждое предположение по отдельности и проверять их. Чаще всего это действительно приводит к локализации проблемы, однако забирает время и нервы, как у разработчика, так и у компании, которая его наняла.

Субъективная оценка для GPT-3: 3.5 / 5

Данная модель все-таки сыровата, если вау-эффект и добивается, руки в любом случае просятся в привычный гугл, когда ты 10 минут пытаешься объяснить ему то, что имел в виду.

Github Copilot (X)

Технология не новая и скандальная. На момент запуска в 2021 году, я попробовал ее во Flutter-разработкe, и она была настолько тупая, что мешалась каждым своим предложением. Удалил ее через 5 минут использования. Спустя года я вижу видео про Copilot X в котором будет применены самые последние разработки OpenAI и интерес вернулся вновь, ведь: GitHub ∈ Microsoft и OpenAI ∈ Microsoft. Очевидно после бума ИИ повторный интерес к Copilot возрастет.

Как получить?

Да, Copilot — платный, $10 в месяц или $100 в год, но если вы студент, то для вас и Copilot и Github Pro бесплатны. Вам нужен студак или справка об обучении, а также корпоративная почта. Смотрите здесь.
Остальным же нужно найти способ заплатить, если вы территориально в России.
Для Flutter разработчиков есть расширения и в VSCode и в Android Studio. Для пользователей из России необходим VPN, потому что Copilot использует API OpenAI заблокированное для русских пользователей ¯\_(ツ) _/¯

Тесты

Спойлер: он перестал мешать. Да, он теперь правда помогает, вот несколько интересных кейсов:

Функция объединения картинок в альбомы. Стоит подметить, что метод merge находится внутри класса MediaBlockViewModel, однако он догадался, что MediaBlockViewModel объединяются в альбомы и предложил мне сформировать новую модель. Удобно!

Когда я заканчивал метод по объединению блоков, он предложил мне правильный кусок кода. Предполагаю, что он обращает внимание на прошлые сниппеты, а также названия функций и переменных. Тест на логику пройден.

Самая удобная фишка. Я копирую вид запроса из Swagger и комментирую его, на основе этого комментария он мне генерирует нужный конструктор. А что, если не примитивные типы?

А теперь взгляните на этот кусок кода, он помнил, что с помощью него я делал модели AgentDto, SpecialistDto и VacancyDto и в этом комментарии он распознал их и вставил как обычные типы.

Негативные стороны
• Редко, однако предлагает какие-то странные варианты, совершенно не относящиеся к тому, что я хочу написать. Я могу несколько раз делать нужную DTO, но он не запомнит этого и будет предлагать то, что считает нужным
• Он иногда лагает, я хочу посмотреть на варианты вставки из IntelliSense, а он мне пишет своим серым текстом и не дает ее открыть, на эту тему есть отдельная issue в гитхабе.

Субъективная оценка: 4.5 / 5
Неплохо, этот интрумент точно ускоряет написание бойлерплейт кода, однако каких- то более сложных задач я бы ему не доверял.

Да, Copilot X еще не вышел, он находится в бете и только для белосписочников. Github предлагает в нем Ghat GPT-4 интегрированный в студию разработки. Как они заявляют не только окном, но и ИИ будет понимать о чем вы просите в контексте вашего кода, звучит круто, поживем — увидим. Ждать конца света или заката эры IT пока не стоит, а использовать «умные сниппеты» — почему нет?
Также я публикую и менее развернутые, но не менее интересные статьи в своем Telegram канале - Антон Янкин | Flutter-разработчик
Буду рад пообщаться с вами там!

0
Комментарии
-3 комментариев
Раскрывать всегда