L'injection de dépendances en Go est souvent réalisée au cas par cas. Seuls les projets complexes ou volumineux utilisent les références du genre, que sont google/wire et uber-go/dig. Mais ces outils sont complexes en interne comme à l'utilisation.
Pour des projets plus simples comme les micro-services, voici IziDIC, un micro-conteneur Open Source d'injection de dépendances sans magie, sans réflexion, sans génération de code, et capable d'organiser paramètres et services. Découvrez-le sur https://github.com/fgm/izidic. Tous les retours sont bienvenus !
IziDIC permet aux développeurs d'application de stocker aussi bien les paramètres que les services, et les instancie uniquement à l'utilisation, évitant la surcharge CPU/mémoire liée aux services activés mais non consommés, fréquents avec Wire ou Dig/Fx.
L'API en quelques examples:
- Stocker un paramètre:
dic.Store("name", value)
- Le relire:
dic.MustParam('"name")
- Définir un service:
dic.Register("name", serviceFn)
- Obtenir une instance de service
dic.MustService("name")
Pour plus de détails, voir la documentation