This repository was archived by the owner on Dec 12, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
This repository was archived by the owner on Dec 12, 2025. It is now read-only.
[FEATURE] : Refactor container Inversify → Express natif #3
Copy link
Copy link
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request
Description
name: ✨ Nouvelle fonctionnalité
about: Proposer une nouvelle fonctionnalité ou une amélioration.
title: '[FEATURE] : Refactor container Inversify → Express natif'
labels: enhancement
assignees: @docteur-turboss Contexte et problème actuel
Le projet utilise actuellement InversifyJS comme conteneur d'injection de dépendances. Bien que robuste, cette approche présente aujourd’hui plusieurs freins :
- Courbe d’apprentissage raide pour les nouveaux développeurs rejoignant l’équipe (notamment ceux moins familiers avec les concepts avancés de l’IoC).
- Complexité accrue pour des besoins d’architecture parfois simples.
- Surcharge en runtime liée à la réflexion et à l’utilisation des décorateurs TypeScript.
- Overhead non négligeable sur les performances globales, surtout pour des middlewares et endpoints à haut volume de trafic.
Proposition
Refactorer l’initialisation de l’application pour supprimer Inversify et revenir à un modèle plus simple, explicite et basé sur Express natif, tout en conservant la séparation des responsabilités (routes, services, middlewares, etc).
Ce refactor inclut :
- Suppression des décorateurs et du conteneur
@injectable,@inject, etc. - Création explicite des services via des usines ou initialisation manuelle.
- Enregistrement direct des middlewares et routes dans Express sans passer par des bindings dynamiques.
- Refactor des tests unitaires pour se baser sur des mocks simples plutôt que sur des bindings Inversify.
Bénéfices attendus
- Développeurs plus autonomes rapidement sur le codebase (onboarding accéléré).
- Lisibilité accrue du flux d'exécution et des dépendances.
- Performances améliorées (moins de réflexion, moins d’abstractions runtime).
- Réduction du temps de debug (stacktraces plus simples, moins de "magie").
Critères d'acceptation (DoD)
- L'application fonctionne sans Inversify
- Tous les services critiques sont instanciés manuellement ou via usines
- Les tests unitaires ont été mis à jour (remplacement des mocks Inversify)
- Le changelog documente le changement d’architecture
- Une note de migration est disponible pour les développeurs
Priorité / Complexité estimée
- Priorité: P1 (impact important sur la DX et la maintenabilité)
- Complexité: Moyenne (répétitif mais peu risqué si bien isolé)
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request