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