Cloudflare за неделю перенесла большую часть API Next.js с помощью ИИ

next.js Cloudflare ии Claude Vite Vinext theregister.com

Инженер Cloudflare использовал Claude для реализации 94% API Next.js, потратив $1100. Проект Vinext использует Vite и Claude для обхода привязки к Vercel с помощью нового инструмента сборки с открытым исходным кодом. — theregister.com

Инженер Cloudflare заявляет, что реализовал 94 процента API Next.js, используя Anthropic Claude, потратив около 1100 долларов на токены.

Целью экспериментального проекта было не похвастаться кодированием с помощью ИИ, а решить проблему с Next.js — популярным фреймворком на базе React, спонсируемым Vercel.

По словам директора по инженерии Cloudflare Стива Фолкнера, инструментарий Next.js «полностью самописный… Если вы хотите развернуть его на Cloudflare, Netlify или AWS Lambda, вам придется взять этот результат сборки и переформатировать его во что-то, что целевая платформа сможет фактически запустить».

Команда Next.js решает эту проблему после многочисленных жалоб на то, что развертывание фреймворка со всеми функциями на платформах, отличных от Vercel, слишком затруднено. В настоящее время в разработке находится функция под названием deployment adapters (адаптеры развертывания).

«Vercel будет использовать тот же API адаптеров, что и все остальные партнеры», — заявила компания при представлении запланированной функции в прошлом году.

Фолкнер отметил, что эти адаптеры, которые пока остаются «ранней разработкой», недостаточны, поскольку фреймворк по-прежнему использует самописную цепочку инструментов на основе Turbopack — инструмента сборки, спонсируемого Vercel. Еще одна проблема заключается в том, что во время разработки трудно использовать платформенно-специфичные API, такие как хранилище данных KV от Cloudflare, поскольку среда выполнения разработки не поддерживает их без обходных путей.

Уже существует проект под названием OpenNext, спонсируемый SST (Serverless Stack от Anomaly Innovations), Cloudflare и Netlify, предназначенный для преобразования результатов сборки Next.js для запуска за пределами Vercel. Фолкнер сообщил, что подход OpenNext оказался «трудным и хрупким процессом» из-за непредсказуемых изменений между версиями Next.js.

В качестве нового эксперимента Cloudflare создала Vinext — проект с открытым исходным кодом, доступный на GitHub, который использует инструмент сборки Vite вместо Turbopack. По словам Фолкнера, почти весь код был написан ИИ, начиная с плана.

«Я потратил пару часов на обсуждение с Claude в OpenCode, чтобы определить архитектуру: что строить, в каком порядке, какие абстракции использовать». OpenCode — это агент для кодирования с открытым исходным кодом на базе ИИ. Затем он попросил ИИ реализовать API Next.js по частям, используя существующий набор тестов Next.js для выявления проблем перед слиянием кода.

Фолкнер отметил, что, хотя код написал ИИ, человеческий фактор был критически важен, и ему «приходилось регулярно корректировать курс».

Результат сопровождается рядом предупреждений. Ни один человек не просматривал код или утверждения в README, и проект находится в активной разработке.

Еще одна загвоздка заключается в том, что единственной текущей целью развертывания являются Cloudflare Workers. Фолкнер обещает, что в Vinext не так много специфичного для Cloudflare, что концепт уже работает на Vercel, и что планируются другие цели развертывания.

В прошлом месяце Cloudflare опубликовала информацию о другом проекте по кодированию с помощью ИИ — реализации сервера Matrix на своей платформе Workers, — но столкнулась с критикой. Руководитель проекта Matrix Мэттью Ходжсон заявил, что «в публикации сильно преувеличен масштаб проекта… код еще не представляет собой функциональный сервер Matrix, не говоря уже о готовом к производству, который стоит рассматривать для развертывания».

Тем не менее, Vinext выглядит более многообещающим: время сборки до 4,4 раза быстрее, чем у Next.js 16 с Turbopack, а размер клиентского бандла примерно на 56 процентов меньше.

По словам Фолкнера, этот проект особенно хорошо подходит для ИИ, поскольку он имеет обширный набор тестов, из которого он напрямую портировал тесты. Проект использовал существующий плагин Vite для React Server Components — ключевой функции Next.js. Кроме того, популярность Next.js означает, что для ИИ-краулеров доступно большое количество документации, кода и обсуждений, связанных с фреймворком.

Этот эксперимент может иметь последствия. Идея использования ИИ для кодирования повторной реализации широко используемого API может быть привлекательной в других сценариях, где существует привязка к поставщику (lock-in).

Другой аспект — переосмысление того, как структурируется код. По словам Фолкнера, большинство программных абстракций существуют для помощи в человеческом понимании, для снижения сложности кода. ИИ потенциально может устранить промежуточные фреймворки, поскольку он «может удерживать всю систему в контексте». Дальнейшее следствие — создание программных проектов, которые не может понять ни один человек, что является проблемой, учитывая недетерминированную природу генеративного ИИ и его способность к галлюцинациям.

Проект также подтверждает аргументы, выдвинутые на недавнем семинаре в пользу разработки через тестирование (test-driven development) как идеального метода для кодирования с помощью ИИ.®

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Похожие новости: