5d512e146e
- Copy 134 image files and 28 font files from ClientApp/src/assets/ to public/assets/ for browser-side serving - Set tools.cssLoader.url=false in modern.config.ts so the CSS loader leaves url() references as-is instead of trying to resolve them as webpack modules - Add .playwright-mcp/, coverage/, and screenshot artifacts to .gitignore
42 lines
5.3 KiB
Markdown
42 lines
5.3 KiB
Markdown
1. Технологический стек
|
|
Компонент должен представлять собой remote-компонент, встраиваемый в канальные приложения Заказчика (WEB, PWA) и быть реализован на следующем технологическом стеке:
|
|
1.1.1. ModernJS
|
|
Frontend должен быть реализован на ModernJS (SSR).
|
|
1.1.2. Module Federation 2.0 и сборщики
|
|
Допускается использование любого сборщика с поддержкой Module Federation 2.0: Webpack 5, Rsbuild, Rspack или Vite
|
|
Для экспонирования компонентов и логики должен генерироваться файл: https://ваш-домен/mf-manifest.json.
|
|
Пример для webpack https://module-federation.io/guide/basic/webpack.html.
|
|
1.1.3. React 18+ совместимость
|
|
Компонент должен работать с React 18 Concurrent Mode
|
|
Должна быть обеспечена поддержка <Suspense> (если используется асинхронная загрузка).
|
|
В теле компонента не должно быть побочных эффектов (никаких fetch вне useEffect).
|
|
Динамические импорты должны использовать React.lazy():
|
|
2. Источники данных и интеграции
|
|
Frontend-компонент должен использовать данные, получаемые из REST API Заказчика, формат данных JSON.
|
|
2. Актуальность и консистентность данных
|
|
Отображаемые во Frontend-компоненте данные должны соответствовать полученным из REST API Заказчика.
|
|
3. Производительность и нагрузка
|
|
Компонент должен выдерживать 100 обращений в секунду.
|
|
4. Отказоустойчивость
|
|
Виртуальные машины, на которых размещен Компонент, должны быть географически разнесеныдля обеспечения отказоустойчивости решения.
|
|
5. Безопасность
|
|
Компонент должен быть изолированным и не представлять собой угрозы другим компонентам Сайта Заказчика.
|
|
6. SEO и доступность
|
|
Компонент должен быть доступен 24 часа в сутки, 7 дней в неделю, 365 дней в году без запланированных и незапланированных простоев при нормальном функционировании технических средств и общего программного обеспечения. Время восстановления программного обеспечения после отказов не должно превышать 6 часов с момента восстановления работоспособности технических средств и общего программного обеспечения.
|
|
В компоненте должны быть реализованы:
|
|
SEO-оптимизация;
|
|
Рендеринг, отображение микро-разметки (JsonLD, OpenGraph).
|
|
Web-аналитика (Яндекс.Метрика, CTM, Вариокуб, Ключ-Астром).
|
|
7. Кросс-платформенность
|
|
Компонент должен поддерживать встраивание в несколько канальных приложений (Web, PWA).
|
|
В компоненте должна быть реализована адаптивность («резиновая вёрстка») - отображение страницы на любых экранах.
|
|
8. Логирование и мониторинг
|
|
В компоненте должно быть реализовано логирование путём сбора данных с frontend, формирования файла установленного образца (будет предоставлено Заказчиком отдельно), передачи в систему журналирования Заказчика.
|
|
В компоненте должен быть реализован мониторинг системных событий с последующей отправкой в агрегатор метрик.
|
|
9. Обновления и поддержка
|
|
Структура модуля должна соответствовать типовой структуре удалённого frontend-модуля Заказчика для универсализации развёртывания.
|
|
10. Дизайн
|
|
Компонент должен быть реализован в соответствии с предоставляемыми Заказчиком макетами и с использованием принятой у Заказчика Дизайн-системы.
|
|
Компонент должен встраивать элементы других remote-компонентов Заказчика, если необходимые таковые реализованы в рамках компонентов.
|
|
|