Эмили Накашима, бывший фронтенд-разработчик, а ныне вице-президент платформы наблюдаемости Honeycomb по инженерным вопросам, рассказала порталу The New Stack, почему искусственный интеллект на фронтенде может означать нечто большее, чем чатботы.
Если кому-то из разработчиков и стоит задуматься о том, как ИИ может дополнить их инструментарий, так это фронтенд-программистам, считает Накашима. «Экосистема фронтенда развивается так быстро, и в некотором смысле фронтенд-инженеры лучше других подготовлены к тому, чтобы разобраться с тем, как привнести ИИ в свой инструментарий, потому что они привыкли брать в руки новые инструменты и придумывать, как их внедрить и использовать, чтобы собрать воедино все лучшее из разных рабочих процессов», — говорит она.
Накашима начинала как фронтенд-разработчик в эпоху jQuery в веб-разработке. Она является большой поклонницей React, который проделал «прекрасную работу по развитию экосистемы с течением времени». Несмотря на то, что ее опыт в основном связан с фронтендом, она работала с полным стеком и сейчас курирует все аспекты разработки ПО, безопасности и надежности сайта в Honeycomb.
О том, как «вторые пилоты» на базе ИИ могут изменить работу разработчиков, было сказано уже немало, но остается много вопросов, как их применение изменит сам код, качественно или количественно?
Потенциал ИИ в кодировании фронтенда: обработка ошибок
По словам Накашимы, у ИИ больше возможностей положительно повлиять на качество кода во фронтенде, чем в бэкенде. Производственная среда фронтенда гораздо сложнее и неконтролируема — она должна работать на нескольких мобильных устройствах, в разных браузерах и даже на разных языках. В то же время, разработчики бэкенда контролируют свою кодовую среду, поэтому при возникновении проблем им «довольно просто» понять, что происходит, полагает она.
«Благодаря способности ИИ рассматривать все сигналы и находить общее, у одного фронтенд-разработчика будет гораздо больше шансов найти первопричину ошибки, используя все, что все остальные знают о ней. Либо ему придется отправиться в самостоятельное путешествие, пытаясь выяснить, что полученное сообщение означает в данном контексте, сопоставить его с исходной строкой кода и добавить к этому множество различных точек данных, — говорит Накашима. — Возможность обнаружить закономерность здесь на самом деле очень полезна, чего не скажешь о бэкенде».
При этом она несколько скептически относится к тому, что ИИ действительно изменит фронтенд в плане экосистемы инструментов, которая, по ее словам, и так быстро развивается. Тем не менее, она в восторге от потенциала улучшения взаимодействия между дизайнерами и разработчиками.
«В этой области сегодня наблюдается некоторая неэффективность, и возможность иметь инструменты, которые упрощают коммуникацию между этими двумя функциями, — это возможность убрать из процесса большую часть напряженной работы и помочь людям быстрее проводить совместные итерации, — говорит Накашима. — Я с большим оптимизмом смотрю на рабочие процессы, которые предлагают такие компании, как Adobe или Figma, где рассматриваются общие форматы передачи данных между дизайнерами и разработчиками, избавляющие людей от написания сложных спецификаций типа „используй этот цвет, количество пикселей такое-то“ и тому подобного».
ИИ может помочь в миграции и обновлении фронтенда
ИИ-инструменты генерации кода также могут помочь в управлении миграциями и обновлениями, позволяя разработчикам фронтенда тратить больше времени на творческую часть своей работы.
Например, когда выходит новая версия React, может потребоваться немало работы, чтобы просмотреть старую кодовую базу и изменить все, что нужно изменить, чтобы использовать новую версию и воспользоваться преимуществами нового фреймворка. ИИ может автоматизировать часть этой работы, что сегодня невозможно, поясняет она.
«Инженеры тратят много времени на миграцию и обновление, особенно на обновление зависимостей или фреймворка, — говорит Накашима. — Это не требует особой креативности, но требует большого усердия и внимательности, и вы должны понимать закономерности перехода от одной версии конкретного API к новой версии. Я весьма оптимистична в том, что некоторые ИИ-инструменты генерации кода могут быть действительно полезны для таких видов работы или рабочих процессов, которые отнимают время у фронтенд-инженера, но не являются творческой частью работы, в которой используются лучшие из его навыков».
По ее словам, сама Honeycomb использует «второго пилота» — они крупные пользователи GitHub, и многие разработчики еще используют VS Code в качестве редактора. Компания также экспериментирует с созданием элементов продуктов, управляемых ИИ, в основном с помощью OpenAI, хотя Honeycomb изучает и других поставщиков в этой области, чтобы понять, кто из них сможет обеспечить наилучший опыт для ее клиентов. Некоторые из этих элементов являются функциями для клиентов, которые интегрированы во внешний пользовательский интерфейс Honeycomb.
Интеграция ИИ в пользовательский интерфейс: не только чатботы
В настоящее время чатботы являются основным способом интеграции ИИ во фронтенды, но Накашима говорит, что есть много мест, где это кажется неэффективным вариантом для пользовательского интерфейса. Она надеется, что разработчики фронтендов и веб-приложений придумают другие способы интеграции ИИ в пользовательский интерфейс, но признает, что кодеры только начинают экспериментировать в этой области.
«Самые интересные вещи, которые я вижу сегодня, — это различные многоступенчатые рабочие процессы в пользовательском интерфейсе и понимание того, как можно перейти от первого шага к пятому, — говорит Накашима. — Но я считаю, что есть место и для более креативных, визуальных интерфейсов».
Например, в Honeycomb есть интерактивные визуализации данных, которые рисуют карту вашей системы на экране. По ее словам, это можно автоматизировать с помощью ИИ.
«Может показаться, что время для таких функций еще не пришло. Но я вижу, что люди сосредотачивают свои эксперименты на рабочем процессе чата, потому здесь они видят возможности для ИИ-инструментов, — сказала она. — Я надеюсь, что скоро мы увидим больше разнообразия».
В Honeycomb одним из способов достижения этой цели является пользовательский интерфейс с конструктором запросов, где текст вводится в поле формы для создания запроса. «Иногда бывает сложно понять, как построить запрос и ввести точные данные, поэтому мы позволяем вам дать более общее текстовое описание, а затем, когда вы нажмете на кнопку, мы сгенерируем для вас граф, — поясняет Накашима. — Вы можете просто сказать: „Покажите мне графики всех пользователей, у которых была медленная работа с моим веб-приложением, и мы покажем вам такие графики“».