Tutorial Node.js | Contenedor de Dependencias con Awilix
Contenedores de Dependencia
Resumen de la sección: En esta sección, el presentador introduce el principio de inversión de dependencias y cómo los contenedores de dependencia pueden ayudar a aplicarlo. También explica cómo funcionan los contenedores de dependencia y por qué son útiles.
Introducción al principio de inversión de dependencias
- El principio establece que las clases de alto nivel no deben depender directamente de las clases de bajo nivel.
- Las abstracciones no deben depender de los detalles.
- Una forma comúnmente utilizada para aplicar este principio es inyectando las dependencias en el constructor del módulo.
Creación y uso del contenedor de dependencia
- Un contenedor de dependencia es una caja donde se guardan todos los módulos necesarios para la aplicación.
- Cuando se necesita un módulo, en lugar de crearlo manualmente, se obtiene del contenedor.
- El contenedor se encarga automáticamente de crear todas las instancias necesarias para cada módulo.
Características fundamentales del contenedor adecuado
- La lógica del dominio no debe conocer nada sobre el contenedor.
- Se debe poder registrar dependencias en tiempo real.
Contenedores de Dependencias
Resumen de la sección: En esta sección, se habla sobre los contenedores de dependencias y cómo pueden ayudar a resolver los módulos de una aplicación.
¿Qué son los contenedores de dependencias?
- Los contenedores de dependencias son herramientas que nos ayudan a resolver los módulos de nuestra aplicación.
- Siguen el principio de inversión de dependencia, lo que significa que la responsabilidad ya no recae en nosotros mismos sino en el contenedor.
Ventajas del uso de contenedores
- Los contenedores permiten registrar clases, gestar valores y hacer alias.
- Permiten crear instancias en escopos transient muy potentes.
- El uso del contenedor permite evitar tener que pasar manualmente todas las instancias necesarias.
Cómo utilizar un contenedor
- Creamos el contenedor utilizando alguna librería como Dagger o Koin.
- Registramos en este contenedor todos los módulos que posteriormente vamos a querer acceder.
- Luego resolvemos las dependencias utilizando el mismo.
Utilizando Dagger para manejar módulos
Resumen de la sección: En esta sección, se explica cómo utilizar Dagger para manejar módulos en una aplicación.
Cómo funciona Dagger
- Dagger es un framework que utiliza anotaciones para generar código automáticamente.
- Detecta cuando una clase necesita una dependencia y la inyecta automáticamente si está disponible en su grafo.
Ventajas del uso de Dagger
- Permite ahorrar tiempo al no tener que preocuparse por pasar manualmente todas las instancias necesarias.
- Es muy útil cuando la aplicación empieza a crecer y se vuelve difícil manejar todas las dependencias manualmente.
Cómo utilizar Dagger en nuestro proyecto
- Creamos el contenedor utilizando Dagger.
- Registramos en este contenedor todos los módulos que posteriormente vamos a querer acceder.
- Luego resolvemos las dependencias utilizando el mismo.
Conclusiones
Resumen de la sección: En esta sección, se concluye sobre los beneficios del uso de contenedores de dependencias y Dagger en una aplicación.
Beneficios del uso de contenedores y Dagger
- Los contenedores de dependencias y Dagger permiten resolver los módulos de una aplicación de manera sencilla.
- Permiten ahorrar tiempo al no tener que preocuparse por pasar manualmente todas las instancias necesarias.
- Son muy útiles cuando la aplicación empieza a crecer y se vuelve difícil manejar todas las dependencias manualmente.