Next.js · React · TypeScript
Начните с определённой архитектуры, а не с пустого репозитория.
Foundation — это основа сайта, управляемая конфигурацией, с ядром, не зависящим от фреймворка, портами и адаптерами, конфигурацией, проверяемой по схеме, и настоящим шлюзом проверки. Вы наследуете основы и тратите время на то, что действительно специфично для создаваемого сайта.
- Next.js App Router с React Server Components
- TypeScript во всём проекте и конфигурация, проверяемая по схеме
- В репозитории шлюзы модульных, архитектурных тестов и проверок в реальных браузерах
Архитектура вкратце
Четыре этапа с одним направлением зависимостей. Два средних — основа, первый и последний — ваши.
- Stage 1
Данные сайта, контент и ресурсы
Идентичность, навигация, языки, контент Markdown и графика — вход внедренца, проверяемый до того, как что-либо его прочитает.
- Stage 2
Производная среда Foundation
Не зависящие от фреймворка доменные понятия и сервисы приложения, которые их координируют, без импортов фреймворка.
- Stage 3
Представление, маршрутизация и точки интеграции
Маршруты, композиция макета, метаданные и фабрики адаптеров, связывающие из конфигурации бронирование, обращения, карты и аналитику.
- Stage 4
Развёртывание
Сборка с приоритетом статической генерации, развёртываемая из вашего репозитория в ваш аккаунт хостинга.
Направление зависимостей утверждается тестами, а не предполагается: ядро не может импортировать React, Next.js или внешний слой, а слой приложения не может зайти в конкретный адаптер.
Конфигурация или код
Эта граница — суть проекта. Большинство решений, специфичных для бизнеса, — это данные; настоящие расширения — код, и Foundation прямо говорит, что есть что.
Обычно настраивается или описывается
- Идентичность: название, слоган, описание и канонический URL
- Навигация, а также дополнительная группа и группа подвала
- Набор языков и словари интерфейса
- Регионы бизнеса, часы работы и маршруты
- Контент: страницы и коллекции в Markdown
- Бренд, иконки и изображения
- Выбор провайдеров бронирования, обращений, карт и аналитики
- Включение функций предложений, портфолио, блога и отзывов
- Значения представления, раскрываемые контрактом конфигурации
Требует кода при реальном расширении поведения
- Новый адаптер провайдера для существующей возможности
- Новая переиспользуемая возможность
- Новое поведение или взаимодействие интерфейса
- Новый модуль приложения ниже по потоку
- Всё, что выходит за установленные границы конфигурации
Утверждённая позиция: большая часть идентичности, контента, бренда и выбора функций находится вне ядра приложения. Это не обещание, что код не придётся писать вообще: действительно новая возможность — работа платформы, и Foundation говорит это прямо, а не намекает на систему плагинов.
Инженерный контракт
К чему проект обязуется и что отказывается утверждать.
Строго проверяемая конфигурация
Одна схема, отказ от неизвестных ключей, действенные ошибки и чтение конфигурации только через загрузчик.
Гексагональные границы
Чистое ядро, порты и сервисы приложения, адаптеры за фабриками и тонкие маршруты фреймворка.
Принуждение зависимостей
Архитектурные тесты обходят дерево исходников и падают на запрещённом импорте, поэтому схема не может отойти от кода.
Композиция с приоритетом сервера
React Server Components и статическая генерация по умолчанию, клиентская интерактивность ограничена нужными компонентами.
Проверка в реальных браузерах
Закоммиченная матрица headless-браузера проверяет ширины для компьютера, планшета и мобильного, клавиатуру и указатель, уменьшенное движение и тёмную схему и останавливает запуск при любом невыполненном утверждении.
Шлюзы архитектуры и модульных тестов
Тесты границ и модульные тесты идут вместе с проверкой ресурсов, типов, lint и производственной сборкой.
Дисциплина утверждений о возможностях
Документированные утверждения сверяются с собственным реестром проекта, поэтому утверждение не может превысить доказательства.
Честная модель обновления
Поскольку конфигурация, контент и ресурсы находятся вне ядра приложения, улучшения платформы можно принимать, не перезаписывая вашу работу.
Что проект не утверждает
Foundation не утверждает соответствие WCAG, сертификацию безопасности, тестирование на проникновение, опубликованные показатели производительности или Lighthouse и поддержку всех браузеров и устройств. Доступность и производительность разрабатываются и проверяются там, где проект может их проверить, но не сертифицируются.
Где Foundation останавливается
То же разделение владения, выраженное технически. Foundation осознанно останавливается перед операционной сложностью и предоставляет точку интеграции с выбранным вами сервисом.
Владеет внедренец
- Конфигурация
- Контент
- Словари языков
- Графика бизнеса
- Выбор провайдеров
- Расширения ниже по потоку
Владеет Foundation
- Архитектура приложения
- Переиспользуемая механика интерфейса
- Валидация конфигурации
- Механика маршрутизации и контента
- Точки интеграции
- Инфраструктура проверки
Расширение идёт снаружи внутрь: новый провайдер — это адаптер, ветвь фабрики и элемент перечисления в схеме, а новый тип контента или язык — данные. Действительно новая возможность — работа платформы.
Поток внедрения
Восемь этапов. Детали на уровне команд — в репозитории; здесь показана форма работы.
- 1
Получить Foundation
Клонируйте или форкните публичный репозиторий.
- 2
Установить и запустить
Установите зависимости и запустите сайт локально.
- 3
Настроить
Определите идентичность, языки, функции и выбор провайдеров.
- 4
Написать контент и ресурсы
Опишите страницы и замените роли брендовых ресурсов.
- 5
Подключить провайдеров
Направьте точки интеграции на реально используемые сервисы.
- 6
Проверить
Запустите шлюз качества проекта локально.
- 7
Развернуть
Соберите и разверните из своего репозитория и аккаунта.
- 8
Поддерживать и обновлять
Принимайте улучшения сверху, не перезаписывая свои материалы.
Руководства в репозитории охватывают каждый этап, включая устранение неполадок.
Авторитетная документация
GitHub — канонический технический источник. Этот сайт резюмирует, репозиторий инструктирует.
Repository
Полный код, лицензия и заявление проекта о том, чем он является и чем не является.
README.md
Что это за проект, быстрый старт, структура репозитория и позиция по лицензии.
ARCHITECTURE.md
Архитектурный стиль, границы, направление зависимостей и шаблоны интеграции.
CUSTOMIZING.md
Руководство для последующего пользователя и полный справочник конфигурации.
DEPLOYMENT.md
Runbook выпуска и список проверок после развёртывания.
BRAND_ASSETS.md
Контракт замены брендовых ресурсов: каждая заменяемая визуальная роль.
Руководства
Процедуры внедрения, настройки, бренда, контента, обновления, валидации, развёртывания и устранения неполадок.
Каждый адрес выше ведёт в публичный репозиторий, где эти документы поддерживаются.
Читайте, запускайте, меняйте
Код, его тесты и документация — это аргумент. Начните оттуда.