Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Micro_Frontend.pdf

 Micro_Frontend.pdf

Avatar for Randy Vianda Putra

Randy Vianda Putra

February 11, 2019
Tweet

More Decks by Randy Vianda Putra

Other Decks in Programming

Transcript

  1. Micro Frontends Techniques, strategies and recipes for building a modern

    web app with multiple teams using different JavaScript frameworks. 5
  2. What are Micro Frontends ? The term Micro Frontends first

    came up in ThoughtWorks Technology Radar at the end of 2016. 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. Each team has a distinct area of business or mission it cares about and specialises in. A team is cross functional and develops its features end-to-end, from database to user interface.
  3. Core ideas behind micro frontends - Be technology agnostic -

    Isolate team code - Establish team prefixes - Favor Native Browser Features over Custom APIs - Build a Resilient Site
  4. Advantages of a monolith - Easy and quick setup -

    Single CI/CD operation - Single codebase
  5. Problem with monolith - Long development cycles - Long build

    time - Risk refactoring and cleanup (this works - don’t touch)
  6. Micro frontends aka micro apps - Breaking a web application

    to it’s page and / or feature - Each feature owned by a single team - Allow each feature to be developed, tested and deployed independently
  7. Iframes summary - Easy A/B testing for features - Native

    support on most browsers - Enables high scale delivery (similar to micro services)
  8. Component based architecture summary - Each micro app is a

    component - Orchestrator app - Shared component are extracted and reusable
  9. Web Components Create custom reusable HTML tags - Custom Elements

    - Shadow DOM - HTML Imports - HTML Templates
  10. this is the reference to the root DOM node of

    the custom element. All properties and methods of a standard DOM element like innerHTML or getAttribute() can be used.