Les micro-frontends sont souvent présentés comme une percée technique. En pratique, ils constituent généralement une stratégie de mise à l'échelle organisationnelle.
Ils deviennent attrayants lorsque qu'une base de code frontend unique s'est transformée en un goulot d'étranglement pour de nombreuses équipes. Si les équipes indépendantes ne peuvent pas livrer sans empiéter les unes sur les autres, la pression pour créer des frontières de déploiement et de propriété plus solides est réelle.
C'est là que la fédération de modules et des approches similaires entrent en jeu.
Quel Problème Ils Résolvent Réellement
Les micro-frontends sont utiles lorsque vous avez besoin de :
- cadence de publication séparée
- frontières de propriété d'équipe plus solides
- domaines de défaillance localisés
- plus d'autonomie que ce qu'une construction frontend partagée permet
Ce n'est pas la même chose que de dire "notre SPA est en désordre." Un SPA en désordre ne devient pas propre simplement parce que vous divisez le désordre en bundles distants.
Pourquoi la Fédération de Modules a Aidé
Webpack Module Federation a rendu les micro-frontends plus pratiques car cela permettait aux artefacts frontend déployés séparément de partager des modules d'exécution et d'être chargés dynamiquement :
new ModuleFederationPlugin({
name: "shell",
remotes: {
checkout: "checkout@https://cdn.example.com/remoteEntry.js",
},
shared: {
react: { singleton: true },
"react-dom": { singleton: true },
},
});
Il s'agit d'une véritable amélioration par rapport aux iframes pour de nombreuses surfaces produit car cela maintient l'expérience plus intégrée et évite de dupliquer l'ensemble de la pile d'exécution de manière inutile.
Les Compromis
Vous payez toujours pour :
- coordination des dépendances partagées
- échecs d'intégration à l'exécution
- gestion des incompatibilités de version
- dérive du système de design
- développement local plus compliqué
C'est pourquoi le seuil devrait être élevé. Si l'organisation est suffisamment petite pour qu'un frontend monolithique modulaire fonctionne encore, c'est généralement le meilleur choix.
La Règle de Meilleure Décision
Utilisez des micro-frontends lorsque le modèle d'équipe en a besoin.
Ne les adoptez pas parce que les équipes backend utilisent déjà des microservices et que la symétrie semble élégante. L'intégration à l'exécution dans le frontend est un problème différent avec des coûts différents.
Lecture Complémentaire