Senior Архитектура Обязательно

Архитектура проекта: границы, слои, зависимости

Архитектура масштабируемого проекта опирается на изоляцию бизнес-логики в проектном модуле /local/modules/<vendor>.<project>/, оставляя компоненты тонкими контроллерами отображения. Обработчики событий не должны выполнять тяжелые операции синхронно, а делегируют сетевые интеграции в сервисный слой или очереди сообщений с обязательным логированием.

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    Проектный модуль как ядро проекта
  • 2
    Границы между компонентами, сервисами и интеграциями
  • 3
    Работа с двумя ядрами: классика и D7
  • 4
    Технический долг и план его выплаты

Материалы

Проверь себя

Обмен с 1С на двадцать тысяч элементов стал падать по таймауту после добавления обработчика OnAfterIBlockElementAdd. Что не так с архитектурой?

Обработчик события синхронно ходит во внешний сервис на каждом элементе. Обработчику положено только поставить задачу — сообщение в очередь или фоновую задачу, а сама интеграция живёт в сервисе модуля с таймаутом и логом.

Почему бизнес-логику не стоит держать в result_modifier.php и init.php, даже если она там работает?

Её нельзя вызвать из другого места — агента, контроллера, консольной команды — без копирования, и её не проверить тестом. В проектном модуле она становится сервисом, который зовут и компонент, и агент.

Чем сервис в ServiceLocator лучше статического класса-хелпера?

Его можно подменить на стенде фейком через .settings.php модуля, не трогая код: контроллер получает зависимость из контейнера, а не через new.

Что ломается, если правило «новое на D7» применять как «переписать всё на D7»?

Переписывание старых участков без задачи от бизнеса даёт регрессии и не даёт ценности. Граница проходит по обёртке: старый вызов прячется внутрь метода сервиса, а вызывающий код пишется по-новому.

Не сходится?

Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.

Знаете материал лучше?

Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти