Проект для проведения сравнительного анализа двух подходов к разработке пользовательских интерфейсов согласно методике из НИР2.
- Frontend - https://frontend-production-1031.up.railway.app/
- Admin - https://admin-production-879e.up.railway.app/
itmo-nir/
├── bdui/ # Реализация Backend-Driven UI
├── classic/ # Реализация классического подхода
├── COMPARISON.md # Методика проведения сравнения
├── Каримова_ЮО_НИР.docx # НИР1: Обзор литературы
└── Каримова_ЮО_НИР_2.docx # НИР2: Методика сравнения
- Структура: Backend → BFF → Frontend
- Особенность: Сервер отдает структуру страницы с блоками (JSON)
- Frontend: Универсальный рендерер блоков
- Изменения: Через админ-панель или API, без пересборки фронтенда
- Структура: Backend → Frontend
- Особенность: Сервер отдает только данные
- Frontend: Жестко закодированные компоненты страниц
- Изменения: Требуется изменение кода и пересборка фронтенда
cd bdui
docker compose up --build- Frontend: http://localhost:3000
- Backend: http://localhost:3001
- BFF: http://localhost:3002
- Admin: http://localhost:3003
cd classic
docker compose up --build- Frontend: http://localhost:3010
- Backend: http://localhost:3011
Примечание: Проекты настроены на разные порты, поэтому можно запускать оба одновременно.
Согласно НИР2, сравнение проводится по 5 параметрам:
- Скорость доставки изменений (TTM) - время от коммита до появления у пользователей
- Объём передаваемых данных - размер ответов API и количество запросов
- Производительность UI - метрики First Contentful Paint, Time to Interactive
- Использование ресурсов - нагрузка на CPU и RAM
- Простота поддержки - субъективная оценка удобства разработки
- S1: Малая правка - замена текста кнопки и цвета фона
- S2: Новая форма - добавление формы из 5 полей с валидацией
- S3: A/B-эксперимент - показ альтернативного баннера 50% пользователей
- S4: Оффлайн-режим - открытие страницы без сети
- COMPARISON.md - Общая методика и описание параметров сравнения
- STEP_BY_STEP_COMPARISON.md - ⭐ Подробная пошаговая инструкция с командами и примерами
- DEPLOYMENT_GUIDE.md - 🚀 Руководство по развертыванию на облаке для более реалистичного сравнения TTM
- PLATFORM_COMPARISON.md - 📊 Сравнение Render vs Railway - какой выбрать для развертывания
- RAILWAY_SETUP.md - 🚂 Пошаговая инструкция по развертыванию на Railway - как задеплоить оба проекта
- RAILWAY_QUICK_FIX.md - 🔧 Быстрое решение проблемы "Railpack could not determine" - создание отдельных сервисов
- НИР1: Анализ зарубежных и отечественных научных источников по теме Backend-Driven UI
- НИР2: Разработка методики сравнительного анализа BDUI и классического подхода
- НИР3: Практическое сравнение подходов (в процессе)
- Backend: Node.js + Express
- Frontend: React
- BFF: Node.js + Express (только для BDUI)
- Контейнеризация: Docker + Docker Compose
Проект создан в рамках научно-исследовательской работы в Университете ИТМО.