Интерактивные диаграммы в Hugo
Данная страница демонстрирует работу исправленной системы диаграмм с полным функционалом зума, интерактивности и адаптивности.
🏗️ Микросервисная архитектура
Эта диаграмма показывает типичную архитектуру e-commerce платформы с микросервисами:
Архитектура e-commerce платформы
Показывает взаимодействие между микросервисами, базами данных и внешними сервисами
Загрузка диаграммы...
Легенда:
API Gateway
Микросервисы
Базы данных
Кэш
Очереди
Внешние сервисы
💡 Как использовать диаграмму
- Зум: Используйте колесо мыши или кнопки управления
- Перемещение: Зажмите и перетащите диаграмму
- Информация: Нажмите на любой элемент для получения деталей
- Критический путь: Нажмите "⚡ Критический путь" для подсветки
Особенности архитектуры:
- API Gateway - единая точка входа для всех запросов
- Микросервисы - независимые сервисы с собственными базами данных
- Критические пути - выделены красным пунктиром для обработки заказов
- Кэширование - Redis для быстрого доступа к данным
🌐 Сетевая топология
Диаграмма сетевой инфраструктуры дата-центра:
Топология сети дата-центра
Показывает подключение серверов через коммутаторы и маршрутизаторы
Загрузка диаграммы...
💡 Как использовать диаграмму
- Зум: Используйте колесо мыши или кнопки управления
- Перемещение: Зажмите и перетащите диаграмму
- Информация: Нажмите на любой элемент для получения деталей
- Критический путь: Нажмите "⚡ Критический путь" для подсветки
Компоненты сети:
- Router - основной маршрутизатор для внешних подключений
- Switches - коммутаторы для подключения серверов
- Servers - физические серверы различного назначения
🏛️ Простая архитектура
Базовая трехуровневая архитектура веб-приложения:
Трехуровневая архитектура
Классическая архитектура: frontend, backend, database
Загрузка диаграммы...
💡 Как использовать диаграмму
- Зум: Используйте колесо мыши или кнопки управления
- Перемещение: Зажмите и перетащите диаграмму
- Информация: Нажмите на любой элемент для получения деталей
- Критический путь: Нажмите "⚡ Критический путь" для подсветки
Уровни архитектуры:
- Frontend - пользовательский интерфейс
- Backend API - серверная логика и API
- Database - хранение данных
🎮 Управление диаграммами
Доступные функции:
- 🔄 Сбросить - возврат к исходному масштабу и позиции
- 🔍 Увеличить - зум в 1.5 раза
- 🔎 Уменьшить - зум из 1.5 раза
- ⚡ Критический путь - подсветка важных связей на 3 секунды
Интерактивность:
- Колесо мыши - плавное масштабирование
- Перетаскивание - перемещение диаграммы
- Клик на элемент - отображение информации о компоненте
- Наведение курсора - подсветка связанных элементов
📱 Адаптивность
Диаграммы автоматически адаптируются под размер экрана:
- Десктоп - полный размер с горизонтальными кнопками
- Планшет - уменьшенные элементы управления
- Мобильный - вертикальное расположение кнопок, оптимизированный размер
🎨 Цветовая схема
Типы компонентов:
- 🟦 API Gateway - синий (#667eea)
- 🟢 Микросервисы - зеленый (#48bb78)
- 🟠 Базы данных - оранжевый (#ed8936)
- 🟣 Очереди - фиолетовый (#9f7aea)
- 🔵 Кэш - бирюзовый (#38b2ac)
- 🔴 Внешние сервисы - красный (#e53e3e)
🔧 Технические детали
Используемые технологии:
- D3.js v7.8.5 - для отрисовки и интерактивности
- Hugo Shortcodes - для простого использования
- CSS Grid/Flexbox - для адаптивности
- SVG - векторная графика для четкости
Браузерная поддержка:
- ✅ Chrome 60+
- ✅ Firefox 55+
- ✅ Safari 12+
- ✅ Edge 79+
🚀 Производительность
Оптимизации:
- Lazy Loading - диаграммы загружаются при появлении в viewport
- Минификация - сжатие CSS и JavaScript файлов
- CDN - использование Cloudflare для D3.js
- Preload - предзагрузка критических ресурсов
Размеры файлов:
diagram-system.js
- ~15KB (минифицированный)diagrams.css
- ~8KB (минифицированный)D3.js
- ~280KB (с CDN)
🛡️ Безопасность
Меры безопасности:
- Integrity hash - проверка целостности D3.js
- CSP поддержка - совместимость с Content Security Policy
- XSS защита - санитизация пользовательского ввода
- HTTPS only - загрузка ресурсов только по HTTPS
🔍 Отладка
Консольные команды для отладки:
// Проверка загрузки D3
console.log('D3 версия:', d3.version);
// Проверка системы диаграмм
console.log('DiagramSystem:', window.DiagramSystem);
// Список диаграмм на странице
console.log('Диаграммы:', document.querySelectorAll('[data-diagram-type]'));
// Проверка зума для конкретной диаграммы
window.DiagramSystem.resetZoom('ecommerce-arch');
📝 Заключение
Исправленная система диаграмм обеспечивает:
- ✅ Полную функциональность зума без ошибок
- ✅ Интерактивность с информационными панелями
- ✅ Адаптивность для всех устройств
- ✅ Производительность с оптимизацией загрузки
- ✅ Доступность с поддержкой screen readers
- ✅ Безопасность с проверкой целостности
Все проблемы с TypeScript ошибками, preload’ом и отсутствием зума были успешно устранены! 🎉