Я использовал Fable 5, чтобы собрать full-stack-приложение, не написав код. Потом я нашёл кое-что, что меня напугало.


Я работаю инженером-программистом много лет. Недавно все заговорили о том, насколько мощный Fable 5, и я решил разобраться сам.
Я провёл эксперимент.
Я собрал full-stack веб-приложение с помощью Fable 5. Никакого традиционного кодинга. Я описал нужные функции, просмотрел сгенерированный код и позволил ИИ заняться реализацией.
И честно говоря, первое впечатление было впечатляющим.
За короткое время у меня появилось нечто, похожее на реальный продукт. Интерфейс был отполирован. Аутентификация работала. База данных была подключена. Основные функции были на месте. Если бы я показал это кому-то, не объясняя, как это было сделано, они, вероятно, не догадались бы, что большая часть сгенерирована ИИ.
Помню, как подумал: «Это безумие. Может, мы ближе, чем я думал».
Затем я просмотрел код так, как просматриваю любой реальный production-системы.
И именно тогда воодушевление начало исчезать.
Приложение выглядело завершённым, но чем глубже я заходил, тем больше проблем находил.
Какие-то были небольшими. Какие-то — вещами, которые могли бы стать серьёзными проблемами позже.
Были вопросы безопасности. Некоторые API слишком сильно доверяли пользовательскому вводу. Не было нормального rate limiting. Не было защит от фейковых аккаунтов и спама. Некоторые запросы к базе данных выглядели полностью нормально с парой пользователей, но превращались бы в кошмар, когда данных станет больше.
Я нашёл проблемы с N+1-запросами, отсутствие индексов, узкие места по производительности, медленные операции, которые выполнялись во время пользовательских запросов вместо фоновой работы, и изменения базы данных, которые делались без корректных миграций.
Самое странное было в том, что ничего не выглядело сломанным. Приложение работало.
Можно было создать аккаунт. Можно было войти. Можно было пролистать функции. Можно было даже завершить платёжный сценарий.
В этом и заключается интерес.
Многие, кто строит с ИИ, не запускают откровенно сломанные приложения. Они запускают приложения, которые выглядят готовыми, но имеют скрытые проблемы, которые ждут своего часа.
Красивый UI не спасёт сломанный бэкенд.
Перед запуском я бы убедился, что вы реально протестировали:
• вход и сброс пароля
• реальные платежи картой (не только test mode)
• SSL на реальном домене
• отдельные development- и production-среды
• нигде не раскрываются API-ключи
• резервные копии production-базы данных действительно работают
Проблемы безопасности — это ещё одна вещь, которая обычно не проявляется, пока не становится слишком поздно. Многие приложения не подвергаются злоупотреблениям, пока они маленькие. Ими начинают злоупотреблять после того, как они привлекают внимание.
Вроде таких вещей:
• подтверждение email
• rate limiting
• валидация входных данных
• базовая защита от ботов
— именно они могут решить разницу между спокойным запуском и тем, что вы проснётесь от тысяч фейковых аккаунтов.
Производительность — ещё одна ловушка. Всё кажется быстрым, пока вы единственный пользователь. Проблемы появляются, когда приходят реальные пользователи. Внезапно появляются медленные запросы к базе данных, страницы загружают тысячи записей, дорогие задачи блокируют запросы, и вы не понимаете, что именно падает, потому что ничего не мониторится.
Пагинация, индексы базы данных, фоновые задачи и мониторинг ошибок — это не то, что добавляют только после того, как вы стали успешными. Это то, что помогает вам выжить, когда вы начинаете расти.
Один из самых больших выводов, который я сделал: перестаньте позволять ИИ напрямую менять схему production-базы данных.
Используйте миграции.
Миграция — это просто небольшой файл, который описывает изменение в базе данных, например добавление колонки или создание таблицы. Он запускается по порядку, его можно отслеживать, и он поддерживает консистентность development- и production-окружений. Вначале это кажется лишней работой, но оно предотвращает массу болезненных проблем позже.
Смешно то, что этот эксперимент на самом деле сделал меня более оптимистичным по поводу кода на ИИ.
Fable 5 мощный. Он сэкономил мне огромное количество времени.
Но есть разница между генерацией приложения и сборкой production-системы.
ИИ может писать код невероятно быстро.
Но он не знает автоматически те решения, которые появляются годами работы с реальными пользователями, проблемами безопасности, вопросами масштабирования и производственными отказами.
Я документирую всё, что нашёл, потому что думаю, что сейчас много людей собирают и запускают приложения, сгенерированные ИИ, не понимая, что эти проблемы вообще существуют.
На этой неделе я проведу бесплатную live Zoom-сессию с моим другом, который работает в Google: мы разберём реальное приложение, покажем проблемы, которые мы нашли, объясним, почему они важны, и пройдём, что именно мы бы исправили, прежде чем показать это реальным пользователям. Напишите мне в DM, если вам интересно — я пришлю детали Zoom-сессии.
В целом, больше всего меня удивило не то, что ИИ делает ошибки. Меня удивило, насколько убедительно выглядело приложение ещё до того, как я начал смотреть глубже.
Мне интересно: если вы собирали приложение, «закодированное по вайбу», какая первая неожиданная проблема всплыла у вас после запуска?
Посмотреть Оригинал
post-image
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Репост
  • Поделиться
комментарий
Добавить комментарий
Добавить комментарий
Нет комментариев
  • Закреплено