Неожиданный инсайт о FSD
🤔 Сегодня на созвоне с Head of R&D выяснилась интересная деталь про наш внутренний фреймворк для Vue (типа InversifyJS).
🎯 Помните пост с критикой FSD? Оказалось, что компания давно использует похожие принципы, но в рамках своей модульной архитектуры для проектов.
⚙️ Фреймворк компании включает:
• DI-контейнер для ленивой загрузки зависимостей.
• Систему событий для связи между модулями.
• Жизненный цикл модулей с этапами установки, настройки и запуска
• Возможность регистрации классов как синглтонов
🏗 Можно сравнить наш подход с FSD, где код так же делится на слои:
• shared – базовые компоненты.
• entities – бизнес-сущности.
• features – интерактивные функции.
• widgets – составные блоки UI.
• pages – страницы.
В нашем случае мы так-же разбиваем код на «модульные фичи». Например, при добавлении чата:
1️⃣ Создаем
ChatModule, который включает:• components – UI-компоненты
(как widgets в FSD).
• services – бизнес-логику
(как features).
• data – модели данных
(как entities).
• parts – внутренние механизмы.
2️⃣ Используем фреймворк над Vue для:
• Ленивой загрузки модуля.
• Связи с другими модулями через DI.
• Управления жизненным циклом.
🤓 Вывод: мы достигли тех же целей, что и FSD, но с большей гибкостью в организации кода и мощной инфраструктурой.
Можно снова провести аналогию с Scrum и Agile. Как Scrum берет идеи Agile и адаптирует под нужды команды, так и наш фреймворк с соглашениями воплощает в жизнь идеи FSD.
📊 #статистика День 1160 == 2495 час в IT
