Divide y vencerás, o cómo dividir las experiencias de tu web app en

micro-frontends

nanovazquez.dev
@nanovazquez

Full-stack developer (15+ years)

International speaker

Engineering manager  @

Microsoft MVP & Co-organizer of conferences & meetups

ReactBA, vOpen, DevDayAr

Un poco sobre mí

Links útiles

Esta presentación

Mi sitio web

Arrancamos?

estás listo Nano del presente?

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.

  • Componentization via Services
  • Organized around Business Capabilities
  • Products not Projects
  • Smart endpoints and dumb pipes
  • Decentralized Governance
  • Decentralized Data Management
  • Infrastructure Automation
  • Design for failure
  • Evolutionary Design

Ahora, muy probablemente no vinieron a escuchar una charla sobre microservicios

Y hasta posiblemente
ya esten utilizando microservicios en su trabajo

 ...pero un monolito en el front

Y por qué se debe eso?

Conway's Law (1967)

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

Organización

Un ejemplo de la  organizacíon "perfecta" para aplicar componentización Salesforce

Pero tenes que codear en LWC y Apex

Ecosistema

Características del ecosistema perfecto para microfrontends

  1. Componentización como first class citizen
  2. Herramientas disponibles para trabajar con codebases desacoplados
  3. Soporta automatización de deployments independientes 
  4. Tooling de desarrollo de distintas capas (de micro a web)
  5. Facilidad para integrar todas las piezas

 

Opciones?

ReactJS

Excelente para componentización

Comunidad enorme y súper activa

Equipo de desarrollo en sync y dogfoodeando

Se enfoca en una librería, y no un ecosistema

Muchas herramientas "de facto", pero para webs tradicionales

Es difícil integrar el soporte del ciclo de vida completo

Cómo cubrimos el gap?

Personas

A la propuesta de "adoptemos micro frontends", busquemos responder

¿El equipo quiere? ¿Reconoce el costo de no hacerlo? ¿Van a bancarse el esfuerzo y la "curva de aprendizaje"? ¿Tienen el compromiso para aprender, y crecer, en equipo? (grit)

Aprendizaje: UI Domains

Ok, buenisimo, tengo Exos, tengo tu blog post. Pero, micro frontends es para todas/os?

y está bien que sea asi

Las personas definen el resultado, mucho más que la herramienta correcta

I'm done

volvemos a vos Nano del presente

Divide y vencerás, o cómo dividir las experiencias de tu web app en micro-frontends

By Mariano Vazquez

Divide y vencerás, o cómo dividir las experiencias de tu web app en micro-frontends

Probablemente has escuchado hablar sobre microservicios, como una técnica para mejorar la escalabilidad de tu backend monolítico al partirlo en servicios independientes. Pero aunque esta técnica actualmente está siendo muy utilizada, muchos de estos microservicios AÚN siguen consumiéndose por una única UI monolítica. El problema a resolver en el front-end parece ser similar, pero, podemos aplicar la misma solución? En esta charla, vamos a poner sobre la mesa los desafíos reales que requieren una solución utilizando micro-frontends. Luego, vamos a explicar la estrategia de UI Domains para “dividir a la bestia’, y algunas herramientas que puedes utilizar para simplificar la implementación de tu web app.

  • 1,118