DockStudio · Архитектура

Как устроена платформа

Пять слоёв с чёткими границами. Ядро не знает о модулях, модули не знают друг о друге — общение только через контракты сервисов.

1

Ядро

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

2

Оболочка

Главное окно, менеджер доков, система вкладок, меню, тулбары и строка состояния. Отвечает за то, как складывается рабочее место.

3

Слой модулей

Предметные модули: каждый регистрирует свои панели, команды, настройки и права. Общение — только через контракты сервисов.

4

Слой данных

Репозитории, адаптеры источников, кэширование, миграции схем, локальное хранилище и очередь офлайн-операций.

5

SDK и расширения

Публичный API, шаблоны проектов, генераторы кода, инспектор раскладок и песочница плагинов.

Правила, которые мы не нарушаем

  • Модуль не обращается к другому модулю напрямую — только через зарегистрированный сервис.
  • Контракты версионируются; совместимость держится две мажорные версии назад.
  • Сбой в модуле не роняет приложение — модуль изолируется и помечается как неработоспособный.
  • UI не содержит бизнес-логики: панель — это представление над сервисом.
  • Любая длительная операция выполняется в фоне с прогрессом и возможностью отмены.

Технологический стек

.NET / C++Qt / WPFPostgreSQLSQLite (офлайн) gRPCRESTOpenTelemetrySerilog WindowsLinuxОтечественные ОС
Жизненный цикл

Что происходит при запуске приложения

Загрузка ядра → Чтение конфигурации → Регистрация модулей → Разрешение зависимостей → Сборка оболочки → Восстановление раскладки → Готово

Изоляция и надёжность

Каждый модуль инициализируется в защищённом контексте. Исключение при старте не блокирует запуск приложения — остальные модули работают.

Производительность

Ленивая загрузка панелей, виртуализация списков на сотни тысяч строк, фоновые задачи и кэш на уровне репозиториев.

Расширение без пересборки

Плагины подключаются как отдельные сборки и регистрируются в реестре ядра при старте. Пересобирать приложение не нужно.

Нужен разбор под вашу архитектуру?

Покажем, как DockStudio встраивается в существующий ландшафт и что получится перенести из текущего приложения.