Формат описания идентификатора зависимости в JS DI
Эта статья для тех, кто знает, что такое “ внедрение зависимостей ” и имеет практический опыт его использования. Меня зовут Алекс Гусев и я являюсь автором библиотеки “ @teqfw/di ”. Цель моей библиотеки - дать возможность использовать функционал “ внедрение зависимостей через конструктор ” в проектах на JS (фронт и бэк) и TS (бэк). Минимальной единицей внедрения является отдельный экспорт es6-модуля. Поэтому библиотека не может использоваться с модулями CJS или UMD. В основу внедрения зависимостей заложена идея о том, что вместо статического связывания исходного кода на этапе написания (через import ) применяется динамическое связывание объектов программы в режиме выполнения. В моей библиотеке это достигается за счёт размещения в коде конструкторов (или фабричных функций) инструкций по созданию нужных им зависимостей, которые интерпретируются Контейнером Объектов при работе программы и на основании которых загружаются нужные исходники и создаются нужные зависимости. В этой статье я сформулировал правила для создания этих инструкций и хотел бы узнать у сообщества, насколько эти правила интуитивно понятны и покрывают ли все варианты использования или я что-то упустил.
https://habr.com/ru/articles/832490/
#dependency_injection #inversion_of_control #javascript #@teqfw/di