Don’t rely on shared state or global variables.Īgree on naming conventions where isolation is not possible yet. Build independent apps that are self contained. Custom Elements are a great way to hide implementation details while providing a neutral interface to others.ĭon’t share a runtime, even if all teams use the same framework. Core Ideas behind Micro FrontendsĮach team should be able to choose and upgrade their stack without having to coordinate with other teams. We have to move the integration into the browser, and this is the focus of this article. Here a solely server based solution is not sufficient anymore. This kind of application is located somewhere around the middle of the site-app-continuum. Google’s term Progressive Web Apps aptly describes the balancing act of being a good citizen of the web (progressive enhancement) while also providing app-like performance. To implement techniques like Optimistic UI or Skeleton Screens you need to be able to also update your UI on the device itself. When your user interface has to provide instant feedback, even on unreliable connections, a pure server rendered site is not sufficient anymore. Gustaf Nilsson Kotte has written a comprehensive article on this topic. Updates are done by reloading the page from the server or replacing parts of it via ajax. With this model a server collects and concatenates HTML strings from all components that make up the page requested by the user. If you would position your project on the left side of this spectrum, an integration on webserver level is a good fit. He comes up with the concept of a sliding scale where a site, built out of static documents, connected via links, is on the left end and a pure behaviour driven, contentless application like an online photo editor is on the right. To put this into a broader perspective, Aral Balkan has written a blog post about what he calls the Documents‐to‐Applications Continuum. Let’s define the assumptions that are connected with this term. In the introduction I’ve used the phrase “building a modern web app”. Organisation in Verticals What’s a Modern Web App? But Micro Frontends is clearly a more friendly and less bulky term. In the past approaches like this went by the name of Frontend Integration for Verticalised Systems. It has a lot in common with the Self-contained Systems concept. A team is cross functional and develops its features end-to-end, from database to user interface. Each team has a distinct area of business or mission it cares about and specialises in. The idea behind Micro Frontends is to think about a website or web app as a composition of features which are owned by independent teams. Over time the frontend layer, often developed by a separate team, grows and gets more difficult to maintain. The current trend is to build a feature-rich and powerful browser application, aka single page app, which sits on top of a micro service architecture. It extends the concepts of micro services to the frontend world. The term Micro Frontends first came up in ThoughtWorks Technology Radar at the end of 2016. Techniques, strategies and recipes for building a modern web app with multiple teams that can ship features independently.
0 Comments
Leave a Reply. |