2.7 KiB
2.7 KiB
title, weight
| title | weight |
|---|---|
| Архитектура и Философия | 1 |
Цель: Понять основные принципы проектирования, лежащие в основе модульности Quetza.
Философия проектирования
Соглашение важнее конфигурации (Convention Over Configuration)
Quetza минимизирует шаблонный код, полагаясь на строгую структуру папок.
- Никакого центрального реестра: Сама файловая система является реестром.
- Результат: Вам не нужно обновлять файл конфигурации, чтобы добавить модуль; вы просто создаете папку.
Композиция важнее наследования (Composition Over Inheritance)
Модули состоят из возможностей (capabilities), а не наследуются от базового класса.
- Гибкость: Модули могут использовать любую внутреннюю архитектуру (Функциональную, ООП), пока они экспортируют необходимые интерфейсы.
Изоляция важнее интеграции (Isolation Over Integration)
Модули не могут напрямую вызывать друг друга.
- Почему: Это предотвращает сильную связность (tight coupling).
- Преимущество: Вы можете удалить любой модуль, не сломав остальную часть бота.
Основные сущности
| Сущность | Роль | Жизненный цикл |
|---|---|---|
| Client | Локатор сервисов и оркестратор | Синглтон. Руководит всем. |
| Module | Пространство имен для функций | Загружается при запуске. |
| Command | Конечная точка взаимодействия с пользователем | Без состояния (Stateless). Запрос/Ответ. |
| Event | Реактивный наблюдатель (Observer) | Подписывается при запуске. |
| Controller | Менеджер состояния | Сохраняется между взаимодействиями. |
См. также: