Sie haben absolut Recht, dass hier ein Kompromiss besteht: Sie handeln mit einigen Aspekten der Benutzererfahrung, um eine bessere Entwicklererfahrung zu erzielen (was wiederum die Benutzererfahrung auf unterschiedliche Weise verbessern kann). Lohnt sich das? Es hängt davon ab, ob.
Ich denke, Spotify verwendet diesen Ansatz, um die Benutzeroberfläche in isolierte Komponenten ( Quelle ) aufzuteilen . Jedes Widget befindet sich in einem iframe und kann daher über eigene Bibliotheken usw. verfügen. Sie unterliegen der einzigartigen organisatorischen Einschränkung, dass die Arbeit von autonomen Trupps (einem funktionsübergreifenden Team) ausgeführt wird. Dies erschwert es, unternehmensweite Standards zu vereinbaren und diese später zu ändern. Micro-Frontends helfen ihnen also, etwas Flexibilität zu bewahren. Aber ohne diesen Ansatz wäre ihre Desktop-App vielleicht weniger ein Gedächtnisschwein.
HTTP-Caching wird nicht viel helfen: Jedes Micro-Frontend verwendet möglicherweise unterschiedliche Framework-Versionen. Darüber hinaus sind die Kosten für die Duplizierung nicht nur die Datenübertragung, sondern auch die clientseitigen Kosten für die (Neu-) Kompilierung der Bibliotheken und die Speicherung duplizierter Datenstrukturen.
Persönlich denke ich, dass solche Mikro-Frontends eine gültige Architektur sein können, aber wahrscheinlich nicht ratsam sind, es sei denn
- Sie sind eine sehr große Organisation mit sehr autonomen Teams, die alle an der Benutzeroberfläche arbeiten und sehr häufige Releases (z. B. täglich) durchführen müssen
- In Ihrem UX-Leistungsbudget ist Platz für diese Duplizierung, oder Ihr Produkt ist so gut, dass UX keine Rolle spielt. Beachten Sie, dass die Leistung auf Low-End-Geräten und nicht auf Ihrem Entwicklungscomputer getestet werden sollte.
Wenn Ihre Organisation nicht sehr groß ist oder wenn Ihre Teams etwas spezialisierter sind, ist es für alle Beteiligten (Management, Entwickler und letztendlich Benutzer) möglicherweise einfacher, einen gemeinsamen Erstellungs- und Bereitstellungsprozess durchzuführen, der unnötige Doppelarbeit vermeidet. Wenn Sie beispielsweise nur 4 Teams an der Benutzeroberfläche haben, können diese wahrscheinlich miteinander sprechen, um eine gemeinsame Reihe von Bibliotheken zu vereinbaren und ihre Arbeit in eine zusammenhängende Architektur zu integrieren.
Micro-Frontends scheinen eines dieser Dinge zu sein, die wirklich cool sind, die man aber erst benötigt, wenn man in einem Maßstab operiert.