Files
ermnvldmr.com/services/docs/content/ru/quetza/concepts/architecture.md
T

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 Менеджер состояния Сохраняется между взаимодействиями.

См. также: