Реализация Service Provider в JavaScript. Dependency Injection

65 Просмотры
Издатель
Третье видео из пяти по разработке простейшего механизма внедрения зависимостей на примере реализации adonisjs 4. Это видео по созданию Service Provider и о возможностях по настройке приложения в Service Provider. Продемонстрирована модульная структура.

В этом видео я разрабатываю Service Provider и демонстрирую следующие возможности:
Внедрение строки
Внедрение конфигурации и дополнение конфигурации приложения через Service Provider
Использование класса в качестве Injection Token
Регистрация контейнера для провайда однотипных данных (задел на API & SPI)

Смотри теорию в первом видео:
https://youtu.be/FF_eyaCrZD8

Напоминаю, что IoC Container используется в механизме Dependency Injection чтобы получать экземпляры сервисов согласно конфигурации самого контейнера.

Dependency Injection Порождающий шаблон проектирования, предоставляющий логику внедрения сервисов в клиентский код без понимания что нужно для создания сервисов. Позволяет инкапсулировать лоигку создания сервисов.

Плюсы
Client не отвечает за создание
Облегчает тестирование
Делает композицию более эффективной
Гибкое конфигурирование

Минусы
Риск для безопасности
Приложение усложняется
Требует квалификации

Плейлист с разбором Dependency Injection в Angular
https://youtu.be/2XzVwsV3HtQ

Видео где я поясняю что такое Singleton
https://youtu.be/92PkkPCT4BE

----
Ветка для начала урока
https://github.com/MaksymGrom/js-di-lesson/tree/DI-1

Ветка с выполненным уроком
https://github.com/MaksymGrom/js-di-lesson/tree/DI-2

Инструкция для начала работы над уроком
1) Открыть терминал
2) Склонировать репозиторий
git clone https://github.com/MaksymGrom/js-di-lesson/tree/DI-1 lesson
3) Перейти в папку проекта
cd lesson
4) Установить все зависимости
npm install
5) Для запуска сборки проекта в режиме разработки запустить
npm start
6) Открыть Visual Studio Code и начать разработку по уроку

Спасибо за просмотр.
Подписывайтесь на канал для того чтобы не пропустить следующие видео.
Категория
Разработка Приложений
Комментариев нет.