Это исследование для тех, кто не писал код руками, но собирается построить полноценное приложение с помощью AI через подход specification-driven development. Оно про одну непонятную штуку, которая съест вам больше всего часов и нервов, если не знать о ней заранее. Читать 20–25 минут.

Привет, Хабр! С вами Василий Рассказов начальник отдела новых ИИ-решений X5 Tech. Сегодня расскажу, почему при разработке приложения с AI-ассистентом сложность часто прячется не там, где её ждёшь. База, логика и API собираются быстро, а интерфейс съедает недели. Разберём, как не провалиться в эту ловушку и построить приложение с помощью AI, даже если вы не пишете код руками.

Зачем это читать

Если вы не разработчик, но решили построить приложение от начала до конца с кодинг-ассистентом (типа Claude Code, Cursor или AWS Kiro) через методологию Specification-driven development (SDD), есть одна особенность современного веба, про которую надо знать заранее. Иначе вы потратите половину бюджета времени и денег там, где вообще не ждали.

Код интерфейса, по которому пользователь кликает, в среднем в 3–10 раз больше и сложнее, чем код сервера, который этот интерфейс обслуживает. Не потому, что разработчики плохо пишут. А потому, что так устроен современный веб.

Если понять это до старта, вы можете:

  1. Правильно раскладывать время в плане проекта.

  2. Правильно писать спецификации (детальнее на фронт, скупее на бэк).

  3. Не удивляться, что AI-ассистент чаще всего ломается именно на интерфейсных задачах.

  4. Не обижаться на себя, когда «собрал базу и логику за день, а экран пилю неделю». Это нормально.

Дальше будет длинный разбор с цифрами, таблицами и объяснением, откуда берётся перекос. Как мы сюда пришли: краткая хронология 2021–2026

Чтобы понять, зачем вообще обсуждать соотношение фронт/бэк в 2026 году, короткая контекстная перебивка.

2021. GitHub выпускает Copilot. Это ещё помощник программиста, который дополняет код. Программист остаётся программистом. Работает в связке «я пишу — он подсказывает».

Февраль 2025. Карпати публикует твит о vibe coding. Мир понимает, что уже можно не писать код вообще — просто разговаривать с машиной. Инструменты Cursor, Lovable, Bolt, Replit Agent, v0 становятся массовыми.

Июль 2025. AWS анонсирует Kiro — специальный редактор кода, построенный вокруг идеи spec-driven development. Заявленная цель Kiro — «увести разработчиков от vibe coding к viable code», то есть к работающему продакшн-коду. Kiro опирается на три файла спецификации: requirements.md (требования), design.md (техническая архитектура), tasks.md (пошаговый план).

Сентябрь 2025. GitHub открывает Spec Kit — свой open-source тулкит для SDD. К весне 2026 года он набирает больше 72 000 звёзд на GitHub — это уровень популярности, который для нового инструмента в open-source означает «индустриальный стандарт».

Декабрь 2025. Kiro становится общедоступным (general availability). Martin Fowler публикует разбор трёх основных SDD-инструментов: Kiro, SpecKit, Tessl. Его определение:

Spec-driven development — это когда вы пишете «спецификацию» до кода. Спецификация становится источником истины и для человека, и для AI. Martin Fowler, декабрь 2025

2026. По данным внутренних исследований Anthropic, инженеры используют AI примерно в 60% своей работы. А неразработчики, которые раньше вообще не могли сделать  приложение, теперь строят его за выходные. И чаще всего спотыкаются на одном и том же — на фронтенде.

Про это и речь.

Цифры: насколько фронт реально больше бэка

Соотношение объёма кода — самый прямой способ померить, где живёт основная сложность. Неидеальная метрика, но показательная.

Данные из реальных проектов

Вот что удалось собрать из открытых источников и отчётов команд.

Проект / тип

Стек

Фронт (LOC)

Бэк (LOC)

Соотношение

Админ-панель для бизнеса (Reddit-кейс 2024)

Flutter + Go

11 602

2 508

4,6×

Preply — онлайн-обучение

React + TS

~1 000 000

big

Hasura Console

React + TS

~250 000

big

WorkWave RouteManager

React + TS

~250 000

big

Комментарий разработчика в том же треде на Reddit

20×

20×

Источники: Reddit, r/webdev, DEV Community — big frontend codebases.

Числа скачут от 4× до 20×, но направление везде одно — фронт перевешивает.

Типичная раскладка для среднего SaaS-проекта

Если взять среднестатистическое B2B-приложение (база, 20–30 экранов, формы, таблицы, роли, авторизация) на стеке Next.js + React на фронте и FastAPI + PostgreSQL на бэке — ожидаемая раскладка выглядит примерно так.

Бэкенд (FastAPI + PostgreSQL):

Папка

Файлов

Строк / файл

Всего LOC

routers (API-роуты)

20

100

2 000

services (бизнес-логика)

15

150

2 250

models (модели базы)

25

80

2 000

schemas (валидация)

25

50

1 250

dependencies (инжекция зависимостей)

10

40

400

tests (тесты)

3 000

Итого

~10 900

Фронтенд (Next.js + React):

Папка

Файлов

Строк / файл

Всего LOC

pages/routes (маршруты и роутинг)

30

150

4 500

components/ui (дизайн-система: кнопки, поля и пр.)

60

120

7 200

components/app (фичи приложения)

150

200

30 000

hooks (переиспользуемая логика UI)

40

80

3 200

lib/api-clients (клиенты к бэку)

25

60

1 500

lib/utils (утилиты)

30

70

2 100

stores (управление состоянием)

15

100

1 500

styles/tokens (дизайн-токены)

20

40

800

i18n/locales (локализация)

10

500

5 000

tests (тесты)

8 000

Итого

~63 800

Соотношение: ≈ 6:1 в пользу фронта.

Цифры — это модельная оценка, а не замер конкретного проекта. Они основаны на медианных значениях, которые я вижу в open-source и тех кейсах, где команды делятся статистикой. Для какого-то проекта будет 4:1, для какого-то 8:1, но 10 000 строк на бэке и 60 000 на фронте — это реалистичный порядок для среднего B2B-SaaS.

Грубая шкала по типам продуктов

Чтобы быстро прикинуть под свой кейс, вот таблица.

Тип продукта

Примеры

Доля фронта

Простой лендинг, блог

корпоративный сайт

~40%

B2B-SaaS (формы, таблицы, дашборды)

Stripe Dashboard, Mailchimp

60–70%

Project management, канбан-доски

Jira, Trello, Asana, Linear

70–80%

Мессенджеры

Slack, Discord

75%

Developer tools

VS Code, GitHub

80%

Творческие инструменты, collaborative apps

Figma, Miro, Notion

85–95%

Проценты — это доля фронта в общем коде.

Если ваш проект попадает в средние значения по таблице (а туда попадает 90% всех продуктовых приложений), готовьтесь к тому, что большая часть усилий пойдёт в интерфейс.

Откуда берётся этот перекос: анатомия фронтенд-кода

Фронт жирнее потому что бэкенд описывает, что у приложения есть, а фронтенд описывает, как человек этим пользуется. Первое — компактная правда. Второе — бесконечное множество сценариев.

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

1. Комбинаторный взрыв состояний интерфейса

Каждый элемент на экране — это не один «вариант», а набор состояний.

У простой кнопки «Сохранить» минимум 6–8 состояний:

Состояние

Что показываем

Покой (idle)

просто кнопка, ждёт нажатия

Наведение (hover)

цвет чуть изменился, курсор поменялся

Нажатие (active)

эффект вдавленности

Фокус (focus)

рамка вокруг — для людей, которые ходят по странице клавиатурой

Загрузка (loading)

крутилка внутри, кнопка заблокирована

Успех (success)

галочка, зелёный цвет, сообщение

Ошибка (error)

красный, текст ошибки, кнопка «повторить»

Заблокирована (disabled)

серая, не реагирует

И это только для одной кнопки. Теперь умножьте на 200 компонентов в среднем приложении, и получите сотни тысяч строк кода на одни только состояния.

На бэкенде «сохранить» обычно превращается в одну функцию на 15–40 строк, которая получает данные, проверяет их и кладёт в базу. Один успешный сценарий, несколько типов ошибок — и всё.

2. Количество компонентов

В типичном SaaS-проекте — 300–800 компонентов. В Jira их, по оценкам команд, больше 2 000. В каждом файле 50–300 строк. Это и есть основной пласт фронта.

Бэкенд же живёт в 20–50 эндпоинтах (точек API, к которым обращается фронт) и 20–30 моделях данных. Этого почти всегда хватает, чтобы обслужить всю функциональность таких приложений.

3. Дизайн-система и стили

На фронте живёт отдельный мир — дизайн-система. Это набор общих правил и компонентов, который показывает какого цвета заголовки, какой отступ между карточками, как выглядит состояние «форма отправляется», как ведёт себя приложение на экране 320 пикселей и на экране 2560 пикселей.

У типичного SaaS в дизайн-системе от 500 до 2 000 строк только в токенах (цвета, шрифты, отступы) и до 10 000 строк в базовых компонентах. У бэкенда этого просто нет.

4. Обработка ошибок — видимая глазами

Когда на бэке случается ошибка, программист её пишет одной строкой: raise HTTPException(status_code=404, detail="Not found"). 

Когда та же ошибка прилетает на фронт, начинается аттракцион. Нужно:

  • показать пользователю что-то адекватное а не «Error 404» на белом фоне;

  • сохранить данные формы, которую он заполнял, чтобы они не потерялись;

  • дать ему кнопку «повторить», которая действительно пытается что-то повторить;

  • записать инцидент в систему мониторинга, например, Sentry;

  • подобрать правильный текст ошибки на нужном языке;

  • не показать технические подробности, которые напугают;

  • корректно вернуть пользователя в рабочее состояние после ошибки.

Это 50–150 строк на каждый сценарий ошибки, и таких сценариев десятки.

5. Зависимости. Много, правда много

Современный фронт — это не одна библиотека. Это связка из 15–30 пакетов (готовых кусков чужого кода), которые надо подключить, настроить и, подружить друг с другом.

Типичный набор для Next.js-проекта:

  • React — базовая библиотека

  • React Router или Next.js роутер — для навигации

  • React Query или SWR — для общения с сервером

  • Zustand или Redux — для управления состоянием

  • React Hook Form — для форм

  • Zod — для валидации данных

  • Tailwind — для стилей

  • shadcn/Radix UI — для компонентов

  • Framer Motion — для анимаций

  • date-fns — для дат

  • i18next — для переводов

  • Lucide — для иконок

  • TanStack Table — для таблиц

  • Recharts — для графиков

Каждая такая штука тянет за собой свои подзависимости. В итоге папка node_modules (куда загружаются все пакеты проекта) у среднего Next.js-проекта весит 400–700 мегабайт и содержит 1 000–3 000 пакетов.

На FastAPI-проекте аналогичная папка (.venv) обычно весит 100–200 мегабайт и содержит 30–80 пакетов. Разница больше, чем на порядок.

6. Локализация. Тихий убийца времени

Если ваше приложение работает на двух языках (русский + английский), каждая строка на экране должна существовать в двух версиях. На пяти языках — в пяти. Плюс правила склонения, форматы чисел и дат, направление текста (в арабском, например, справа налево, и это ломает всю вёрстку).

В среднем мультиязычном SaaS на локализацию уходит 3 000–10 000 строк JSON-файлов и ещё 1 000–3 000 строк логики на фронте. На бэке — ноль. Сервер не знает, на каком языке читает пользователь. Он отдаёт данные, а переводит их уже фронт.

7. Accessibility. Доступность для всех

Современные требования обязывают делать интерфейсы доступными для людей с ограниченными возможностями. Главный стандарт: WCAG 2.2 (Web Content Accessibility Guidelines), опубликован в октябре 2023 года. Принцип POUR: Perceivable (воспринимаемый), Operable (управляемый), Understandable (понятный), Robust (надёжный).

В Евросоюзе с 2025 года по закону European Accessibility Act почти все цифровые сервисы должны соответствовать WCAG 2.2 Level AA. В США аналогичные требования давно закреплены в ADA и Section 508.

Практически это значит, что каждый интерактивный элемент на фронте должен уметь работать с клавиатуры (без мыши), быть понятным для программ чтения экрана (screen readers), иметь правильный контраст цветов, корректно читать экранными читалками. Это ещё +20–30% кода в компонентах, плюс отдельные aria-атрибуты.

На бэке такого понятия просто нет.

8. Клиентский роутинг и живой интерфейс

На сервере URL — это просто адрес функции. Пришёл запрос на /api/orders → запустилась функция → отдала данные → всё.

На фронте URL — это архитектура. Маршруты бывают вложенными и параллельными, с ленивой загрузкой, с layout-ами, с состояниями загрузки, с обработкой «нет интернета». Плюс живые обновления, когда данные меняются в реальном времени, оптимистичные апдейты (показали пользователю результат до того, как сервер ответил), кэш и его инвалидация, отмена отменённых действий (undo), автосохранение черновиков.

Это ещё один большой слой кода, которого на бэке нет в принципе.

Сводная таблица. Почему фронт раздувается

Причина

Что добавляет на фронте

На бэке

Делает фронт тяжелее на

Состояния UI

hover, loading, error, empty…

нет понятия

×6

Компоненты

300–800 штук

×10

Дизайн-система

токены + базовые UI

+15%

Обработка ошибок

показать, сохранить, повторить

одна строка

×5

Зависимости

1 000–3 000 пакетов

30–80 пакетов

×15

Локализация

строки + логика

+10%

Accessibility

WCAG + aria + клавиатура

+25%

Клиентский роутинг

layout-ы, undo, кэш

декоратор над функцией

×3

Сумма этих эффектов как раз и даёт тот самый 3–10-кратный перевес.

Почему AI-ассистент спотыкается именно на фронте

Вторая половина истории, про которую мало кто рассказывает до старта — это AI-ассистенты. Claude, GPT, Gemini и все, кто на них построен, делают на фронте больше ошибок, чем на бэке. Причин три.

Причина 1. Агент работает вслепую

Когда кодинг-ассистент пишет серверный код, он может его сразу проверить: запустить функцию, сравнить результат с ожиданием, прочитать логи. Это текст в текст. Ошибка сразу видна в консоли.

Когда тот же ассистент пишет интерфейс, он видит только HTML-разметку и CSS. Он не видит, как это отрисовалось в браузере. Кнопка может обрезаться, текст выходить за границы, модальное окно перекрывать меню, но ассистент об этом не знает, пока ему не расскажут.

Этот эффект разработчики называют «coding blind» — код вслепую. Видео с демонстрацией (например, «Claude Code + Playwright MCP = Perfect UI Every Time», август 2025) хорошо показывает типовой кейс. AI пишет страницу, она выглядит нормально в коде, но в реальном браузере текст обрезается и модалки накладываются друг на друга. Без механизма «посмотреть глазами» агент эти проблемы не ловит.

Причина 2. Решение — Playwright MCP, но про него надо знать

На эту проблему индустрия отреагировала инструментом под названием Playwright MCP:

  • Playwright — это инструмент для программного управления браузером. С его помощью можно открывать страницы, кликать по кнопкам, делать скриншоты.

  • MCP (Model Context Protocol) — протокол, который позволяет AI-ассистенту подключать внешние инструменты.

Связка Playwright + MCP даёт AI возможность открыть страницу, потыкать на ней, сделать скриншот, прочитать ошибки из консоли браузера и самостоятельно заметить, то что сломалось. Без этого агент пишет код, вы его запускаете, а он не работает. Вы объясняете словами, агент гадает. И так раз десять.

Debbie O’Brien из Microsoft формулирует это так:

«MCP-сервер может делать то, что раньше делал ты сам, будучи ручным тестировщиком».

Именно поэтому, если вы строите фронт через AI-ассистента, настраивать Playwright MCP стоит буквально в первый день. Без него каждая UI-правка становится в 3–5 раз длиннее из-за циклов «не то».

Причина 3. LLM любят скучные интерфейсы

Есть ещё одна проблема, которую нашли исследователи. Большие языковые модели, когда им говорят «сделай красивый UI», сваливаются на усреднённые, консервативные паттерны, такие как одинаковые карточки, одинаковые шапки, одинаковые кнопки. Это зафиксировано в академических работах.

Плюс text-only модели (те, которые работают только с текстом, а не с изображениями) плохо понимают пространственные отношения: где что расположено, что на что накладывается и что перекрывается. Это следствие того, что они обучены на тексте, а не на картинках.

Прикладной смысл такой. На бэке AI с первой попытки пишет код, близкий к промышленному уровню,  потому что задача структурная и текстовая. На фронте первая версия обычно выглядит как «студенческий проект 2015 года»: всё работает, но смотреть грустно. Нужны итерации, визуальные референсы, скриншоты, прогоны через Playwright MCP, подключение Figma MCP, отдельные промпты на «сделай посовременнее».

Это и есть вторая половина перекоса по времени. Код на фронте не только больше — он ещё и требует больше циклов с ассистентом, чтобы прийти в приличное состояние.

npm vs pip. Разные весовые категории

Один наглядный штрих, чтобы масштаб разницы стал физически ощутим.

npm — репозиторий пакетов для фронтенда и Node.js-бэкендов. Это общий склад, откуда фронтовые проекты качают себе готовые куски кода.

pip — аналогичный репозиторий для Python, откуда качают пакеты бэкенд-проекты на FastAPI, Django, Flask.

Вот их цифры:

Метрика

npm

pip (PyPI)

Всего пакетов

3 342 873

~620 000

Общий размер репозитория

24.17 ТБ

~5 ТБ

Пакетов создано за год

1 390 303

~140 000

Средний размер пакета

416 КБ

~280 КБ

Типичный проект тянет пакетов

1 000–3 000

30–80

Источник: State of NPM 2023. Для pip — открытые данные PyPI.

То есть во «фронтовом мире» пакетов в 5,4 раз больше по количеству и в 4.8 раз больше по размеру, чем в «бэковом мире». А средний проект тянет в 30–50 раз больше внешних зависимостей. Это ощутимая разница в размере и сложности.

Когда вы просите AI-ассистента «собрать проект на Next.js», он за пару минут подтягивает десятки мегабайт чужого кода с потенциальными конфликтами версий, breaking changes и уязвимостями. Когда вы просите «собрать бэк на FastAPI», он подтягивает в 30 раз меньше, и пазл обычно собирается чище.

Что всё это значит на практике. Чек-лист, если вы не-программист с SDD и AI-ассистентом

Теперь восемь конкретных вещей, которые окупятся на любом SDD-проекте с AI-ассистентом.

1. Планируйте время 70/30 в пользу фронта

Если вам кажется, что проект займёт 10 дней — закладывайте 7 дней на фронт, 3 на бэк.

2. Пишите спецификации асимметрично

В requirements.md и design.md вашего SDD-проекта бэкенд спокойно описывается короткими блоками «есть такие эндпоинты, такие модели данных, такие права». 2–3 страницы, и их хватит.

А вот UI нужно описывать в разы подробнее. Все состояния по каждому экрану —, все ошибки, все пустые состояния (empty states), все кейсы на мобилке, все анимации и переходы. Kiro и Spec Kit прямо рекомендуют использовать для UI  формат EARS (Easy Approach to Requirements Syntax). Это чёткие шаблоны типа «Когда <событие>, если <условие>, то система должна <поведение>». Для каждого экрана по 10–30 таких строк.

А если есть Figma-макеты, подключайте Figma MCP. Это протокол, который позволяет AI-ассистенту прочитать макет и опереться на него, вместо того чтобы «додумывать» дизайн из воздуха.

3. Подключите Playwright MCP с первого дня

Это, возможно, самый высокий ROI-совет в статье. Без визуальной проверки AI будет крутиться в циклах «не то → исправил → всё равно не то». С Playwright MCP агент сам открывает браузер, делает скриншот, видит проблему и сам её фиксит. В Claude Code это настраивается одной командой.

4. Сначала соберите дизайн-систему, потом экраны

Распространённая ошибка сразу начать собирать экраны, а кнопки, поля и карточки лепить на каждом экране заново. Через 20 экранов у вас будет 20 разных кнопок, у каждой своё поведение и свой цвет. Починить это позже — отдельный ад.

Правильный порядок: сначала общий набор компонентов (design tokens + базовые UI-элементы вроде Button, Input, Card, Modal), а потом уже экраны, собранные из этих кубиков. AI-ассистенты типа Claude и Cursor хорошо понимают паттерн shadcn/ui. Можно прямо в спецификации написать «используй shadcn/ui как основу» и дальше работать через него.

5. Заложите отдельный блок времени на accessibility

Если вы в ЕС, в США или работаете с госсектором, то доступность не опция, а закон. Лучше потратить 2 дня на то, чтобы с самого начала сделать интерфейс клавиатурно-навигабельным и screen-reader-совместимым, чем потом переписывать половину проекта под аудит.

Попросите AI-ассистента делать ревью на соответствие WCAG 2.2 Level AA. Большинство современных моделей с этим справляются, если явно поставить такую задачу.

6. Настройте визуальное тестирование заранее

Регресс-тесты на фронте — отдельная дисциплина. Скриншот-тесты (когда браузер делает снимки страниц и сравнивает с эталонами) ловят до 80% визуальных багов, которые бы пропустил человек. Playwright умеет делать это прямо из коробки.

7. Не пытайтесь сделать всё в одном репозитории

Разделите проект на две части: фронт и бэк. Это даст AI-ассистенту более чёткий контекст и позволит работать над ними независимо. Плюс  упростит передачу проекта профессиональным разработчикам, если они в какой-то момент подключатся.

8. Держите в голове «бюджет сложности» UI

Каждый новый экран прибавляет несколько сотен строк кода, плюс новые состояния, плюс интеграция с API, плюс локализация и accessibility. 20 экранов дают 20 таких пакетов.

Поэтому ещё на фазе планирования, задайте себе вопрос: «этот экран правда нужен, или вам просто так хочется?». Каждый ненужный экран, вычеркнутый из плана, экономит день-два работы. Посмотрите на Linear, Superhuman, Notion, которые беспощадно режут количество UI-элементов. Это их сознательная стратегия, чтобы приложение не расплылось.

Всё это и многое другое я разбираю в своём блоге. Пишу о том, как AI меняет разработку, обучение, автоматизацию и работу компаний: от агентов, GitHub, MCP и Claude Code до корпоративных стратегий, безопасности, рынка труда и обучения взрослых. Если вам близка идея строить продукты через AI, но хочется лучше понимать, что происходит под капотом, заходите.

Что в итоге держать в голове

Если резюмировать всё вышесказанное, перечийте перед стартом каждого SDD-проекта:

Если вы думаете…

…то на самом деле

«Сначала бэк, потом фронт — так быстрее»

Бэк займёт 20–30% времени, фронт 70–80%. Стройте план от фронта

«UI — это же просто верстка»

UI — это 300–800 компонентов × 6–8 состояний каждое

«AI сам сделает интерфейс красиво»

LLM по умолчанию делает усреднённый скучный дизайн. Нужны референсы, Figma MCP, итерации

«Главное — описать функциональность»

На фронте главное — описать все состояния, все пустые экраны, все ошибки, все мобильные кейсы

«AI пишет код без ошибок»

На бэке — почти да. На фронте — нет, потому что агент работает вслепую. Ставьте Playwright MCP

«Зависимостей немного»

В типичном Next.js-проекте 1 000–3 000 пакетов и node_modules 400–700 МБ

«Accessibility — для enterprise»

С 2025 года в ЕС по закону требуется WCAG 2.2 AA для почти всех цифровых сервисов

Если у вас будет это понимание до старта — вы сэкономите недели. А в худшем случае сохраните сам проект, который без такого понимания обычно застревает где-то на середине, когда «бэк готов, а UI не склеивается».

Материалы, на которых построена статья:

Также можно прочитать статьи об управляемой разработке с ИИ, интерфейсах и инженерной дисциплине вокруг AI-инструментов:

От vibe coding к Spec-Driven Development: как приручить скорость ИИ и довести проект до продакшена
Как я подключил Obsidian к Claude и Codex: домашний сервер, CouchDB, MCP и баг, который съедал заметки

Комментарии (17)


  1. Fragster
    15.07.2026 09:05

    Почему фронтенд съедает больше времени, чем бэкенд

    tl;dr


  1. vdshat
    15.07.2026 09:05

    Одна из основных проблем фронтэнда не в количестве, а качестве пакетов, точнее его отсутствии. Намедни, собрали реакт проект из стабильных библиотек: 8 критических ошибок по секьюрити, 14 с высоким приоритетом, 9 со средним и 73 с низким. Естественно никто такое не пропустит и начинается поиск костылей и переделок. И это помимо исправлений типа "я художник, я так вижу". Сколько было проектов: бэк взяли шаблон проекта на Spring Boot, добавили что нужно - пару недель максимум. На одном проекте фронтари побили все рекорды. 3 месяца договаривались о библиотеках и структуре проекта.

    А основная проблема фронта - низкая квалификация. Почему-то считается, что фронт писать легче, поэтому никаких паттернов знать не обязательно. Смотришь на сам реакт и плакать хочется от этой дичи. Да, на нем тоже можно писать нормально, но если нет понимания правильной композиции, то и выходит нечто, т.к. сам инструмент не дисциплинирует. А потом те несколько состояний кнопки, конечно, превращаются в проблему. А drug n drop вообще вызывает параллельный мир.


  1. cmyser
    15.07.2026 09:05

    беря реакт вы собираете свой ( объективно плохой ) фрейморк

    Проще взять лучшее техническое решение - $mol на котором кода примерно в три раза меньше чем на реакте, и нет проблем описанных выше, всё уже продумано заранее


    1. winkyBrain
      15.07.2026 09:05

      Этим сказкам 100 лет в обед, но почему-то до сих пор на нём пишут полтора инвалида. Берите смело - не пожалеете! Так классно же потом искать людей для работы с фреймворком, который никому буквально не нужен)


      1. cmyser
        15.07.2026 09:05

        Найти несложно, как и изучить

        Достаточно неплохо знать ts

        У нас инженеры языки как перчатки меняют, сложно что ли фрейморк изучить с теми же концепциями ?)


        1. winkyBrain
          15.07.2026 09:05

          о, вы видимо ещё в начале карьеры?) изучить фреймворк не сложно, вопрос - зачем? чтобы потом не найти работу на реакт, потому что последний год занимался в глазах рекрутеров и большинства разрабов непонятно чем и на чём? ну не берут людей с ангуляра на реакт и наоборот, когда требуется серьёзный уровень знаний. а со смол на что-то другое тем более не возьмут, для карьеры это время и ресурсы, потраченные впустую


          1. cmyser
            15.07.2026 09:05

            Что бы на работе его продвигать, конечно же !) Новые проекты писать на нём

            Про "серьезный" уровень знаний на счёт фрейморков - крайне не согласен. Область крайне понятна формализована и изучена. Всё фрейморки делают одно и тоже. Вот только результаты разные дают


      1. cmyser
        15.07.2026 09:05

        Проблема курицы и яйца

        Пишут мало потому что используют ( в компаниях ) мало, почему используют мало ? Потому что мало кто на нём пишет)


        1. winkyBrain
          15.07.2026 09:05

          Российские компании будут рады взять годный фреймворк со стороны, ещё 4 года назад Симбирсофт пытался писать свой фреймворк - не взлетело. А сейчас, на фоне криков про имортозамещение, ещё проще такое продать, и развивать уже с поддержкой крупной компании. Но не берут) Не сомневаюсь, что у вас в голове ворох оправданий на этот счёт, иначе вы бы со смолом по всему хабру не носились, но реальность скорее всего сильно проще) по крайней мере в моих глазах фреймворк просто уродлив

          Что интересно, тот же SolidJS юзают в ру компаниях и даже вакансии на него были. Почему-то слабая распространённость и "Проблема курицы и яйца" ему не помешали. Странно, правда?)


          1. cmyser
            15.07.2026 09:05

            Вот кстати да, было бы хорошо получить поддержку. Для этого и пишу о фрейморке

            Солид опять же - иностранный. И по сути упрощённый реакт. С чуть улучшенной реактивностью

            Может у вас есть знакомые, кому можно написать, из того же сибирсофта ?


      1. cmyser
        15.07.2026 09:05


        1. Seasle
          15.07.2026 09:05

          В каком стиле вопрос зададите, в таком ответ и получите. Некорректная подача получается. Сие лабораторное поделие почему-то не попадает в исследования, и навряд ли когда-то попадёт в топ-3 в State of JS.

          И вас самого не смутила рьяная попытка оправдаться в трёх разных ответах?


          1. cmyser
            15.07.2026 09:05

            Не смутила. Люди - иррациональны, и если бы была важна эффективность и удобство инструмента, мол был бы везде. А так, имеем самосбор реактовский

            Мне просто дико обидно от того насколько нашу русскую разработку клюют, закапывают.

            Я нигде такого не видел.

            По запросу в Гугл, да, согласен, у меня в статьях где то был более объективный анализ


            1. qmained
              15.07.2026 09:05

              Возможно, что эту разработку клюют и закапывают из-за поведения кого-то из числа её продвигающих...


          1. winkyBrain
            15.07.2026 09:05

            И вас самого не смутила рьяная попытка оправдаться в трёх разных ответах?

            Когда это сектантство смущало самих сектантов?)


        1. winkyBrain
          15.07.2026 09:05

          нейронка выдала то, чем вы и ваш предводитель заполнили хабр по необходимым ключам, буквально скормив ей эту же инфу. это правда аргумент?)


  1. Geratron69
    15.07.2026 09:05

    Внимание человека ограниченно, значит править и делать фронт требует больше зрительного внимания, больше ручных тестов. А бакенд легче проверяется автотестами и понятнее когда что-то то не работает