bitrix24/framework3-prototype

Требования к модульной архитектуре

Opened this issue · 1 comments

В видео озвучен тезис про любую папку для своих модулей.
Возможно имелось ввиду что это только на стадии прототипа, однако точно нужна жесткая стандартизация модулей.

Требования:

  1. Папка модулей должна быть стандартизирована
  2. Требования к структуре модулей хотя бы верхнеуровнево должна быть стандартизирована
  3. Необходим механизм регистрации модулей в базовом конфиге
  4. Модули не должны регистрироваться в базе как в старом битриксе

Хорошее решение для примера: https://symfony.com/doc/current/bundles.html
Давайте возьмем такой же принцип регистрации модуля. Что у модуля есть базовый класс, который мы просто регистрируем в конфиге проекта чтобы его "включить".

Тезисы:

  • Наличие модульной структуры в битриксе - это сильная сторона.
  • Самый лучший вид монолита - модульный монолит.
  • Мы должны сразу задавать правила хорошего тона для разработчиков.
  • В противном случае мы получим хаотическую структуру как в типовом laravel, где не было нормального наставника чтобы пояснить за модули.

Установка своих модулей предполагается тем же механизмом, что и вендора - через composer или compoer-like систему. Это предполагает их сохранение в условном vendor с последующей регистрацией в проекте.

Но да, модуль по-прежнему можно будет создавать и сохранять непосредственно в проекте, и для этого варианта нужна стандартизация. Не стали пока фокусироваться на этом моменте в прототипе, все же хочется сначала решить вопрос с базовой механикой установки.