Patrones de Arquitectura Remix

Rate this content
Bookmark

Remix ofrece una increíble flexibilidad y puede ser desplegado en cualquier lugar donde se ejecute JavaScript. Pero, ¿cómo encaja Remix en el panorama de aplicaciones más amplio de una organización? Remix proporciona una gran utilidad, pero ¿cómo aprovecharla al máximo? ¿Qué cosas deberían manejarse dentro de Remix y qué cosas serían mejor hacer en otro lugar? ¿Deberíamos usar el adaptador express para agregar un servidor WebSocket o debería ser un microservicio independiente? ¿Cómo integrarán las organizaciones empresariales Remix en sus pilas actuales? ¡Hablemos de patrones de arquitectura! En esta charla, quiero compartir mis pensamientos sobre cómo integrar mejor Remix en una pila (empresarial) más grande.

This talk has been presented at Remix Conf Europe 2022, check out the latest edition of this React Conference.

FAQ

Una arquitectura de software es el plano de una aplicación, diseñada para cumplir con requisitos específicos, adaptarse al caso de uso y resolver problemas particulares.

Dan Abramov ha mencionado que React ha evolucionado de ser solo una biblioteca a ser también una arquitectura que puede ser implementada por diferentes meta frameworks.

Más del 50% de los participantes de la encuesta afirmaron que utilizan Remix de manera profesional.

PASPA significa Aplicación de Página Única Mejorada Progresivamente, un término acuñado por Kenzie Dodds para describir las aplicaciones creadas con Remix, las cuales incluso funcionan sin JavaScript y emulan comportamientos predeterminados del navegador.

El patrón 'Backend para Frontend' implica crear un servicio de middleware que maneja la complejidad y las solicitudes para un frontend. Remix implementa naturalmente este patrón, permitiendo que el servidor web maneje la orquestación necesaria para el frontend.

Los eventos del lado del servidor (Server-SendEvents) son preferidos para agregar capacidades en tiempo real a una aplicación Remix, permitiendo una conexión unidireccional entre el servidor y el cliente para la reactividad completa.

Andre Landgraf
Andre Landgraf
23 min
18 Nov, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla introduce los patrones de arquitectura Remix para aplicaciones web, con más del 50% de los participantes utilizando Remix profesionalmente. La migración de aplicaciones de una sola página a Remix implica una refactorización paso a paso y ofrece flexibilidad en las opciones de despliegue. La escalabilidad se puede lograr distribuyendo la capa de base de datos e implementando el almacenamiento en caché de la aplicación. El patrón de backend para frontend simplifica la obtención de datos, y Remix proporciona capacidades en tiempo real para características colaborativas a través de servidores WebSocket y Server-SendEvents.
Available in English: Remix Architecture Patterns

1. Introducción a la Arquitectura de Software y Remix

Short description:

Una arquitectura de software es el plano de tu aplicación. React es ahora también una arquitectura que puede ser implementada por diferentes meta frameworks. Hoy, quiero hablar sobre los patrones de arquitectura de Remix. Más del 50% de los participantes afirmaron que utilizan Remix profesionalmente. El 50% de aquellos que usan Remix profesionalmente migraron de React Router a Remix. Hablemos sobre los patrones de arquitectura.

Hola a todos. ¿Qué es una arquitectura de software de nuevo? Una arquitectura de software es el plano de tu aplicación. Diseñas una arquitectura para cumplir con tus requisitos y adaptarte a tu caso de uso y resolver el problema que estás teniendo. Y luego eliges un stack de texto para implementar la arquitectura que acabas de diseñar.

Resulta que React es ahora también una arquitectura. Esta es una perspectiva realmente interesante de Dan Abramov, quien recientemente estuvo en Twitter reflexionando sobre el estado de React. Afirma que React ya no es solo la biblioteca, sino también una arquitectura que puede ser implementada por diferentes meta frameworks. Perspectiva realmente interesante, y estoy emocionado de ver a dónde nos lleva.

Y hoy, quiero hablar sobre los patrones de arquitectura de Remix que se utilizan comúnmente y se implementan arquitecturas con Remix. Mi nombre es Andrej. Soy un desarrollador de Alemania. Trabajo en LinkedIn y actualmente vivo en Cupertino, California. En mi tiempo libre, todos los lunes, doy tutorías a desarrolladores aspirantes en Meetup, y en general, me encanta construir para la web. Antes de mudarme a Estados Unidos, escribí mi tesis de maestría sobre patrones de gestión de API. Realicé entrevistas y hablé con ingenieros de software y arquitectos de diferentes empresas, y luego identifiqué patrones en cómo estas empresas gestionan sus API. Luego documenté los resultados de una manera coherente y organizada. Para eso, creé un lenguaje de patrones, y crear ese lenguaje de patrones fue muy divertido para mí, y aprendí mucho. Así que, quería hacerlo de nuevo, esta vez para Remix. Quiero responder a la pregunta, ¿cómo se usa Remix? Así que, para esto, creé una encuesta que llamé El Estado de Remix, y obtuve 74 respuestas. Tengamos en cuenta que 74 respuestas no son suficientes para ser estadísticamente relevantes, pero sí son suficientes para analizar o identificar patrones de uso comunes. Dicho esto, aún quiero mostrar algunos de los números que obtuve de la encuesta, solo porque me sorprendieron tanto.

El primero aquí es que más del 50% de los participantes afirmaron que utilizan Remix profesionalmente. Esto me sorprendió, considerando que la versión 1 de Remix solo se lanzó hace un año, pero es realmente genial ver que una gran parte de la comunidad ya gana dinero con Remix. De aquellos que usan Remix profesionalmente en este momento, el 50% afirmó que migraron de React Router a Remix. Pensé que este número sería mucho mayor, considerando el claro camino de migración entre React Router y Remix, y también obviamente la conexión entre las dos tecnologías. Pero resulta que la gente realmente se mueve de todo tipo de tecnologías a Remix. Las aplicaciones de página única de React todavía eran la fuente o región más grande de donde la gente se movía pero Next.js también se mencionó mucho, Express.js, LGS, Rails, Vue, pero en general hay tantas tecnologías diferentes para construir para la web y la gente realmente afirmó que se mueven de todo tipo de antecedentes y tecnologías a Remix. Creo que esto es realmente genial de ver, pero hablemos de patrones de arquitectura. Antes de Remix, o en general, podemos estar de acuerdo en que esto es una gran parte del estándar de la industria en este momento. Tienes la arquitectura de la aplicación de página única, tenemos una SPA que se ejecuta en el navegador en el front end y tienes un servidor de API independiente que luego se comunica con la SPA.

2. Introducción a la Arquitectura de Remix

Short description:

Remix es un manejador de HUP que se ejecuta en un entorno de servidor. Crea una Aplicación de Página Única Mejorada Progresivamente (PASPA) que funciona sin JavaScript y abraza la plataforma. Sin embargo, Remix es agnóstico a la capa de base de datos, lo que nos permite elegir la nuestra o usar una de las pilas de Remix. Este es el primer patrón de arquitectura para crear aplicaciones web con Remix.

Entonces, este es el estándar de la industria en este momento. ¿Cómo se compara Remix con eso? Cuando usas MPX grade Remix para iniciar tu aplicación Remix y simplemente eliges lo básico, terminas con esto. Y esto es un entorno de servidor, ¿verdad? Remix es un manejador de HUP que se ejecuta en un entorno de servidor. Y si inicias una aplicación Remix, viene con un entorno de servidor, que ya está algo esbozado para ti. Y en ese entorno de servidor, tienes un servidor web en el que se ejecuta el manejador de HUP. Eso fue un trabalenguas. Y eso crea esta aplicación PASPA. Y PASPA es este término que significa Aplicación de Página Única Mejorada Progresivamente, acuñado por Kenzie Dodds para promover que la aplicación que crea Remix hace mucho más que una SPA. Incluso funciona sin JavaScript. Utiliza la plataforma, abraza la plataforma, emula los comportamientos predeterminados del navegador JavaScript si JavaScript está habilitado, y hace muchas más cosas por ti. Por eso es que todos amamos Remix. Pero si lo comparamos con la arquitectura SPA, vemos que todavía falta la capa de base de datos. Y aquí, Remix es agnóstico, así que tenemos que elegir una base de datos nosotros mismos o elegir una de las pilas de Remix y vendrá gratis para nosotros. Obviamente, esto también es opcional. No siempre necesitas una capa de base de datos. También puedes tener un CMS en su lugar. Pero entonces, de cualquier manera, lo que tenemos aquí es nuestro primer patrón de arquitectura. Aquí es donde todos comenzamos con Remix y es un sistema de arquitectura que podemos usar para crear para la web.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Entendiendo la Arquitectura Fiber de React
React Advanced 2022React Advanced 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.

Workshops on related topic

Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)
Cómo Resolver Problemas del Mundo Real con Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
Cómo Resolver Problemas del Mundo Real con Remix
Featured Workshop
Michael Carter
Michael Carter
- ¿Errores? Cómo renderizar y registrar tus errores del servidor y del clientea - Cuándo devolver errores vs lanzar excepcionesb - Configurar servicios de registro como Sentry, LogRocket y Bugsnag- ¿Formularios? Cómo validar y manejar formularios de varias páginasa - Usar zod para validar los datos del formulario en tu acciónb - Pasar por formularios de varias páginas sin perder datos- ¿Atascado? Cómo solucionar errores o funciones faltantes en Remix para que puedas continuara - Usar patch-package para solucionar rápidamente tu instalación de Remixb - Mostrar herramienta para gestionar múltiples parches y seleccionar solicitudes de extracción abiertas- ¿Usuarios? Cómo manejar aplicaciones de varios inquilinos con Prismaa - Determinar el inquilino por el host o por el usuariob - Base de datos múltiples o base de datos única/múltiples esquemasc - Asegura que los datos del inquilino siempre estén separados de los demás