Smashing Podcast Episodio 25 con Anthony Campolo: ¿Qué es RedwoodJS?

 

 

 


Índice
  1. Mostrar notas
    1. Actualización semanal
  2. Transcripción

Estamos hablando de RedwoodJS. ¿Qué significa exactamente ser un marco Jamstack completo? Drew McLellan habla con el campeón comunitario Anthony Campolo para averiguarlo.

Estamos hablando de RedwoodJS. ¿Qué significa exactamente ser un marco Jamstack completo? Hablé con el campeón comunitario Anthony Campolo para averiguarlo.

 

Mostrar notas

  • SecoyaJS
  • Antonio en Twitter
  • Serie de artículos de Anthony Un primer vistazo a RedwoodJS

Actualización semanal

  • “ Una introducción a la ejecución programática de Lighthouse ”,
    escrita por Katy Bowman
  • “ Animación de componentes de React con GreenSock ”
    escrito por Blessing Krofegha
  • “ Diseñando para llamar la atención ”
    escrito por Victor Yocco
  • “ Uso avanzado de GraphQL en sitios web de Gatsby ”
    escrito por Aleem Isiaka
  • “ Comparación de métodos de estilo en Next.js ”
    escrito por Adebiyi Adedotun

Transcripción

Dibujó McLellan:Es estudiante de Lambda School, estudia desarrollo web completo y colabora con RedwoodJS. Algo así como un campeón de la comunidad, recientemente escribió una serie de artículos de 12 partes llamada Un primer vistazo a RedwoodJS que ayuda a explicar los orígenes y motivaciones de Redwood, junto con muchos de los diferentes conceptos que introduce el marco. Sabemos que es un experto en RedwoodJS, pero ¿sabías que nunca ha visto un perro? Mis increíbles amigos, denle la bienvenida a Anthony Campolo.

Dibujó:Hola antonio. ¿Cómo estás?

Antonio Campolo:Hola. Estoy genial, muchas gracias por invitarme.

Dibujó:Quería hablar con usted hoy, y probablemente sea obvio por la introducción, sobre RedwoodJS. Para aquellos que no han oído hablar antes de RedwoodJS, a alto nivel, ¿qué es?

Antonio:Creo que hay un par de formas de describirlo dependiendo de dónde venga la gente, pero la definición canónica es un marco completo sin servidor para Jamstack. Por lo tanto, combina el desarrollo web completo con elementos tipo AWS Lambda sin servidor y Jamstack, que es una gran novedad en estos días.

Dibujó:Entonces, ¿es un marco completo que intenta reunir muchas de las ideas en torno a un ecosistema de desarrollo Jamstack? ¿Está bien?

Antonio:Sí, está superando los límites de lo que puede ser una aplicación Jamstack, por lo que al llamarla pila completa, Jamstack, se trata de cómo vamos más allá del front-end para tener el mismo tipo de paradigma de implementación de simplemente ser impulsado, obtener todo código implementado. ¿Cómo conseguimos eso, pero también con nuestro backend, y lo tenemos todo conectado?

Dibujó:Ahora, antes de profundizar demasiado en ello, creo que es bastante interesante saber que proviene de un equipo bastante experimentado, ¿no es así? La gente detrás de Redwood no son jóvenes jóvenes. No quiero decir que sean viejos, pero han estado a la vuelta de la esquina, ¿no es así, en términos de desarrollo web?

 

Antonio:Están sazonados. Sí, de hecho he dedicado una buena cantidad de tiempo a escribir sobre la historia del marco y las ideas que condujeron a él, y Tom Preston-Werner es el creador, por lo que también se le conoce como el creador de Jekyll, que es un generador de sitios estáticos realmente influyente. También hizo TOML, el lenguaje de archivos de configuración. Y originalmente era el CEO de GitHub. Entonces, creo que su trabajo con las páginas de Jekyll y GitHub y ese tipo de cosas realmente lo ha llevado a lo que ahora consideramos Jamstack. Mucha gente diría: “Oh, Jamstack es nuevo. Han estado haciendo esto desde siempre”. Así es como hemos estado hablando de cómo es una extensión de estas ideas más antiguas, las generaciones de sitios estáticos, pero con GraphQL y sin servidor y estas ideas de cómo usar código adhesivo y API para hacer que su aplicación funcione.

Dibujó:Entonces, ¿esto definitivamente proviene de personas que están muy arraigadas en esa comunidad? Quiero decir, CEO de GitHub, realmente no hay nada más integrado en el tipo de comunidad de código abierto que eso. Entonces, Redwood es un marco de trabajo completo y supongo que eso significa que tienes el código de Redwood ejecutándose en el front-end y en el back-end. ¿Está bien?

Antonio:Sí, esto es lo primero que me gusta explicarle a la gente cuando les muestro un proyecto de Redwood, es que es un monorepo. Entonces, tiene su interfaz y su backend en el mismo repositorio, y luego cada uno de ellos vive en sus propias carpetas. Tiene una carpeta web, que es su interfaz, y es bastante similar a la que obtendría de una aplicación Create React. Luego, tiene la carpeta API, que es su back-end, y aquí es donde todas sus funciones esencialmente se colocan en un gran controlador GraphQL que se implementa en AWS Lambda a través de Netlify.

Dibujó:Bien, comenzando desde el frente, como mencionas, se basa en React. ¿Es React más un montón de código Redwood, o es simplemente React? ¿Cuál es el saldo allí?

Antonio:Son muchas cosas. Definitivamente es solo React en el sentido de que no estás incorporando muchas bibliotecas de administración de estado, en realidad ni siquiera estás incorporando un enrutador. Tienen su propio enrutador que escribieron y usan muchas cosas GraphQL. Entonces, cuando la gente habla de React y GraphQL y amigos, eso es un poco de lo que está sucediendo aquí, es que te brinda muchas integraciones predeterminadas para que React hable con tu GraphQL. Porque ahora tenemos muchas convenciones sobre cómo usar React, pero la obtención de datos sigue siendo una gran molestia.

Dibujó:Por lo tanto, React está configurado con muchas otras herramientas que funcionan muy bien con React para brindarle un ecosistema funcional para realizar este estilo particular de tarea. ¿Es esa una descripción justa?

Antonio:Sí, no, sí, esa es una excelente manera de decirlo. La forma en que Tom lo ha expresado es que existen todas estas mejores soluciones y herramientas y tecnología realmente sofisticadas que podemos usar, pero es realmente difícil aprovecharlas porque tienes un costo inicial enorme y tienes que aprenderlas. , teniendo que descubrir cómo integrarlos. Entonces, pusieron el lema: "Hacemos la configuración de su paquete web por usted".

 

Dibujó:Creo que es un problema común que escuchas de muchas personas cuando intentan comenzar en el marco de desarrollo moderno con aplicaciones JavaScript del lado del cliente y configurar el paquete web, configurar todas las cosas diferentes, los procesos de compilación, los pasos de compilación. . Puede ser todo un campo minado, ¿no?, lograr que todo esté conectado y funcionando? Y aún falta un largo camino para llegar a “¡Hola, mundo!”. Entonces, ¿Redwood nos está dando todo eso preconfigurado?

Antonio:Sí, es en gran medida una convención sobre la idea del tipo de configuración, porque tienes... Tom era, como si construyera GitHub con Ruby on Rails y Rob, uno de los otros contribuyentes principales, ha sido desarrollador de Rails desde siempre. Tienen muchas ideas con las que se alinean filosóficamente en términos de Rails, pero quieren tomar esas convenciones sobre las ideas de configuración, las ideas del marco de trabajo completo, e implementarlas con toda la tecnología moderna que tenemos ahora.

Dibujó:Entonces, mencionaste que Redwood te proporciona un enrutador o un enrutador, como decimos en este lado del charco, ¿viene con cosas como componentes predeterminados y todo ese tipo de cosas en React, o recién entonces debes implementar? ¿Todo eso tú mismo?

Antonio:Sí, el enrutador lo es, es muy sofisticado. Hace la mayoría de las cosas que obtendrías solo del enrutador React, simplemente tiene ideas diferentes en términos de cómo deberían implementarse, porque Next también tienen su propio enrutador, y todavía no está del todo resuelto cómo lo hacemos. Queremos que funcione el enrutamiento de nuestra aplicación de una sola página. Debido a Suspense, tienes muchas preguntas de este tipo sobre dónde van a entrar las cosas asincrónicas. Con Redwood tenemos esta idea de una celda, y esto es lo que realmente recupera los datos por usted.

Dibujó:Entonces, ¿tal vez podríamos profundizar un poco en eso? ¿Qué es una celda en términos de Redwood?

Antonio:Sí, entonces una celda es una forma predeterminada de escribir una consulta GraphQL y luego hacer que su página básicamente le diga si está recuperando los datos, si está recibiendo un error, si está en un estado de carga o si … Hay un estado más, lo olvido. Pero sí, te brinda los diferentes estados en los que básicamente puedes estar dependiendo de si estás obteniendo tus datos o no. Está preparado con Apolo bajo las sábanas. Entonces, si estás usando Redwood, estás usando Apollo como tu cliente GraphQL, pero nunca tienes que pensar en ello. Nunca tienes que escribir ningún Apollo ni siquiera pensar en ello, todo está integrado. Te permite simplemente escribir consultas GraphQL, que era realmente el sueño de por qué la gente quería GraphQL, es que era este lenguaje de consulta realmente simple el que usaban los desarrolladores front-end. podría utilizar. Pero luego, tenías que descubrir cómo configurar un servidor GraphQL, tenías que descubrir todas estas otras cosas y cómo conectar todo eso. Entonces, hace toda la integración de GraphQL por usted para que pueda simplemente escribir GraphQL, no tiene que pensar en cómo implementar GraphQL.

Dibujó:Entonces, supongo que uno de los trabajos clásicos de un marco es tomar todo el código repetitivo que puedas escribir tú mismo e implementarlo por ti, y ordenar el camino detrás de escena para que nunca más tengas que mirar ese repetitivo. y puede simplemente escribir el código que sea exclusivo de sus circunstancias. Supongo que eso es lo que sucede con una célula, ¿verdad? No hay nada revolucionario aquí, es algo que puedes configurar un componente de React para que tenga todos estos estados diferentes y puedes conectar Apollo y puedes hacer todo esto tú mismo, pero en realidad eso es mucho trabajo y es un patrón común. Entonces, Redwood lo ha ordenado en un patrón agradable y reutilizable que puedes comenzar a usar sin tener que pensar en ello. ¿Es eso una buena descripción?

 

Antonio:Sí, se les ocurrió el nombre, pero definitivamente reconocen que se trataba de una práctica que veían con frecuencia y que veían a muchas personas simplemente codificándola ellos mismos, y decidieron que querían una forma declarativa de recuperar los datos. Entonces, es por eso que tienes esta configuración, porque te permite tener diferentes estados y no tienes que usar la lógica si/entonces para averiguarlo, necesitas hacer esto si esto sucede. Por lo tanto, se trata de tener una única forma de declarar todos los diferentes estados en los que podrían estar sus datos mientras los carga.

Dibujó:Es una de las características de React, ¿no?, que React no intenta brindarte una arquitectura para tu proyecto, sino que te permite decidir cómo vas a estructurar las cosas. Eso, por supuesto, tiene pros y contras. Pero parece que Redwood está imponiendo algo de esa estructura para que no tengas que pensar en ello y para que pueda instalar la plomería por ti y continuar donde lo dejó React en términos de brindarte. ese tipo de estructura.

Antonio:Sí, y creo que es realmente interesante que hayamos visto múltiples intentos diferentes de solucionar este problema, porque quiero decir, ha habido gente que lo ha estado diciendo desde siempre: "¿Por qué no existe un Rails para JavaScript o ¿Un Rails para React? Hay una excelente entrevista de Full Stack Radio entre Michael Chan y Adam Wathan llamada React is Not a Rails competidor. Este es uno de los diferentes marcos.

Antonio:Los otros son BlitzJS, que ha recibido bastante atención, y luego Bison es uno nuevo y prometedor. Todos tienen una pila similar, pero usan piezas diferentes. Tendrás la consulta de React en lugar de Apollo, o tendrás Chakra en lugar de Tailwind. Las personas que están juntando todas estas piezas en sus pilas, todas estas pilas están luchando, es toda una competencia muy amistosa. En realidad, eso es algo que realmente aprecio: todos colaboramos entre los marcos también. No hay animosidad allí.

Dibujó:Entonces, hemos mencionado Apollo y GraphQL, Redwood usa GraphQL bastante como una de las piezas centrales del marco, ¿no es así? Probablemente podamos dedicar un episodio de podcast completo solo a GraphQL, pero para aquellos que no están familiarizados, ¿qué parte está haciendo GraphQL aquí, qué problema está resolviendo en este contexto?

Antonio:Sí, esta es una gran pregunta. Cuando le digo a la gente lo que deben saber para tener un buen comienzo con Redwood, diría que debería haber usado la aplicación Create React, solo si creó una aplicación Create React y la implementó en Netlify o Vercel, eso te ayudará a empezar bien. Entonces, conozca al menos un poco de GraphQL porque es muy central. Entonces, GraphQL es la forma en que su front-end se comunicará con su back-end. Dicen que es un lenguaje de consulta para API, la idea es que está destinado a ser una alternativa a los métodos API RESTful, y que en lugar de hacer eso RESTful, estás enviando consultas que especifican exactamente la estructura de datos jerárquica que deseas recibir. la base de datos. Por lo tanto, se requiere un poco más de tiempo de inicio para que su servidor GraphQL se comunique con las dos piezas. Luego, una vez que los tenga allí, los desarrolladores front-end tendrán la capacidad de obtener datos de una manera mucho más flexible. No necesita todos estos puntos finales de API diferentes que sus empleados de back-end deben seguir creando.

 

Dibujó:Entonces, si hay cambios en los requisitos en el front-end, presumiblemente puede simplemente modificar su consulta GraphQL y no necesita la ayuda de alguien que trabaje en el back-end para realizar ese cambio por usted.

Antonio:Quiero decir, el verdadero sueño es que puedas agregarle un cliente móvil, que en última instancia sea tan flexible como sea posible, puedes tener múltiples clientes, todos hablando con tu única API. Su API GraphQL se convierte en su fuente de verdad, ahí es donde se centraliza toda su lógica. Luego, puedes construir todas estas capas de vista diferentes en la parte superior.

Dibujó:Entonces, tenemos GraphQL que nos brinda la capacidad de consultar algún tipo de back-end. En Redwood, ¿cuál es la parte trasera?

Antonio:Sí. Hay un par de formas diferentes de crear su back-end. Ahí está la forma en que saldrás de la caja con el tutorial, que es usar la base de datos Postgres implementada en Heroku, súper fácil, súper simple. Luego, su aplicación Redwood se comunica con Prisma. No sé si estás familiarizado con Prisma, pero es como un O/RM. Específicamente dicen que no es un O/RM, es un generador de consultas, que es un nivel un poco más bajo. Pero, simplemente para explicárselo a la gente, Prisma es lo que te permite hablar con tu base de datos. Realiza tus migraciones y configura tus mesas. Hace todo el trabajo de SQL para que no tengas que escribir SQL. Para mí, eso suena como un O/RM. Sin embargo, no es necesario utilizar Prisma para utilizar Redwood.

Antonio:De hecho, creé una aplicación de prueba de concepto en la que usamos FaunaDB. FaunaDB, tienen su propia API GraphQL, por lo que puedes enviar la API GraphQL directamente a Fauna y luego realizar las mutaciones de tu base de datos de esa manera. Se pierde gran parte de la funcionalidad de la CLI de Prisma, pero Prisma realmente es un factor de conveniencia para trabajar muy fácilmente con su base de datos relacional. Pero en realidad, cualquier cosa que se te ocurra, puedes descubrir cómo conectarlo con Redwood es lo que descubrí simplemente porque está construido alrededor de GraphQL y el objetivo es poder hablar con todas estas piezas diferentes. Blog sobre productos para la limpieza del hogar

Dibujó:Entonces, Prisma es esencialmente una especie de capa de abstracción entre su código y cualquier almacén de datos que esté usando, presumiblemente compatible con Prisma, ¿es eso... o está haciendo cosas más inteligentes que eso?

Antonio:Sí, entonces escribes un esquema, entonces creas un archivo esquema.Prisma, y ​​tendría una publicación de modelo, y luego tendría una identificación, un número entero y un incremento automático, como el título, la cadena del cuerpo, creado en la fecha y la hora. Entonces, crearías básicamente lo que quieres que esté en tu base de datos con los tipos, y luego hará las cosas de la base de datos por ti para que no tengas que interactuar con la base de datos.

 

Dibujó:Entonces, usas Prisma para definir, supongo, con qué tipo de base de datos o con qué tipo de almacén de datos estás hablando. Luego, allí presentas tus diferentes modelos de mvc para usar ese lenguaje. Entonces, cuando su aplicación se comunica con los almacenes de datos, utiliza una instancia de un cliente Prisma, ¿no? ¿Es eso lo que está pasando?

Antonio:Sí. Sí, eso es exactamente. Entonces, en la carpeta API de su back-end, tiene una carpeta lib con db.js, y de forma predeterminada tiene configurado su cliente Prisma. Entonces, eso es todo lo que obtienes de fábrica y, como dijiste, Prisma puede funcionar con diferentes bases de datos. Puede cambiar entre SQLite para desarrollo y luego Postgres para producción, ese tipo de cosas. En este momento son en su mayoría relacionales, pero la hoja de ruta tiene cosas como Mongo y Fauna.

Dibujó:Entonces, eso es bastante útil si puedes configurar y usar SQLite en tu entorno de desarrollo local mientras pones todo en funcionamiento, y luego pasar a producción con algo como MySQL.

Antonio:Así es exactamente como está configurado el tutorial, ese es el flujo de trabajo que le muestra.

Dibujó:Es bastante interesante, ¿no?, ver un enfoque muy moderno de un marco y luego recurrir a algunas de estas bases de datos más tradicionales como MySQL. Estoy muy familiarizado con MySQL. Me encanta por su estabilidad y me encanta la forma relacional de almacenar datos. Creo que funciona muy bien para muchas cosas. A menudo se ve que el bebé se tira a la basura cuando se trata de los tipos más nuevos de almacenamiento de datos, por lo que es bastante interesante ver a Redwood soportando de forma predeterminada estas buenas y antiguas bases de datos relacionales.

Antonio:Sí, no, ese es un buen punto, porque digo que para todas las cosas nuevas que Redwood combina, hay algunas cosas que realmente dicen que la forma antigua, probada y verdadera es en realidad la mejor. Entonces, son muy importantes en bases de datos relacionales. Esto proviene de la experiencia de Tom con el uso de Rails y con un back-end relacional. Active Record era la capa O/RM que Prisma pretendía aproximar.

Dibujó:Supongo que estamos hablando de una arquitectura sin servidor aquí con Redwood, y hablamos con Chris Coyier, creo, hace dos o tres episodios, todo sobre el uso de API sin servidor y funciones de nube y demás. Entonces, dando un paso atrás, si pensaras en términos de un marco basado en servidor, como mencionamos Ruby on Rails o algo como Laravel en el mundo PHP. Incluso con una interfaz de React, su solicitud de API ejecutaría código que es código Rails o código Laravel más luego su código de usuario y configuración. ¿Ocurre lo mismo con Redwood? ¿Existe un código de servidor Redwood real que se ejecute, o son simplemente más herramientas, estructura y pegamento que le permiten implementar el suyo propio?

Antonio:Sí, en el back-end hay un archivo específicamente que es una forma de tomar su SDL, por lo que tiene su lenguaje de definición de esquema y luego tiene lo que se llama sus servicios, que son como sus métodos para hablar con su back-end. . Luego, todo esto se une en un controlador GraphQL que se implementa en una única función Lambda. Por lo tanto, está optimizado específicamente para Lambda. De hecho, recientemente alguien lo hizo con el marco sin servidor, y tenemos algunas personas trabajando en Azure y Google Cloud. No es la función de Google Cloud, es la que se basa en eso. Pero sí, ahora está básicamente optimizado para implementar su back-end como una función GraphQL en AWS Lambda. Estas son las cosas mágicas que suceden en el código que no entiendo, pero esa es la explicación de alto nivel.

 

Dibujó:Entonces, existen herramientas de implementación que toman todo el código que ha escrito, lo aplastan todo en una especie de bola mágica de código que se puede ejecutar en la nube y lo coloca en AWS o todavía tiene para gestionar ese proceso usted mismo?

Antonio:Sí, todo se hace a través de Netlify si sigues el tutorial. Realmente no tienes que preocuparte por ningún tipo de funciones sin servidor. Lo que conecta su parte trasera para insertarlo en AWS Lambda, todo está manejado, no tiene que tocar nada de ese código. Todo eso se genera de forma inmediata como convenciones sobre sus configuraciones, por lo que no tiene que pensar demasiado en cómo hacerlo sin servidor. No tiene servidor de forma predeterminada. Es realmente algo difícil de entender. Me tomó un tiempo entenderlo.

Dibujó:Sí, porque es un punto importante no es porque en realidad ahora hay algunas áreas diferentes de las que estamos dando seguimiento aquí. Creo que tenemos tres áreas diferentes. Tenemos nuestra aplicación React frontal, que se ejecuta en el navegador, y luego tenemos una API basada en GraphQL, que se ejecuta como una función en la nube y que responde a nuestras consultas, pero luego interactúa con un almacén de datos. que utiliza Prisma. Y ese almacén de datos es qué y dónde en esto, porque no puedes ejecutar un servidor MySQL en Netlify, ¿verdad?

Antonio:Sí, ahí es donde entra en juego Heroku. Entonces, en la última parte del tutorial, implementas tu front-end en Netlify y luego implementas tu back-end en Heroku Postgres y simplemente tomas tus variables de configuración de Heroku y las conectas a Netlify. . Hacer que su interfaz de Netlify se comunique con su back-end de Postgres es algo realmente simple. Querían optar por lo que fuera más fácil de activar para cualquiera, pero que aún tuviera una tecnología buena, estable y probada en batalla. Al final, lo que obtienes de la caja con solo seguir las instrucciones es realmente increíble.

Dibujó:Los entusiastas de Jamstack estarán familiarizados con servicios como FaunaDB que mencionó que proporciona un almacén de datos como API, AWS tiene DynamoDB, Google tiene Cloud SQL, etc. Entonces, ¿mencionaste que Redwood está buscando integrarse, o supongo que Prisma es el componente aquí que busca integrarse con ese tipo de servicios más adelante?

Antonio:Sí, esta es una buena pregunta. Esto es algo con lo que en realidad estoy hablando con Ryan Chenkie en Prisma para ayudar, ¿cuál es el tipo de historia de base de datos para Redwood para cosas que no necesariamente funcionan con Prisma? ¿Sería mejor encontrar una manera de hacer que Redwood funcione directamente como lo hice con Fauna o tendría más sentido implementar un controlador para Prisma? Entonces, hay diferentes maneras de abordarlo. Obviamente, ahora hay un millón de bases de datos diferentes que todos quieren usar, por lo que depende de qué tan motivado esté usted para incorporar su almacén de datos. Hay muchas contribuciones de la comunidad allí.

 

Dibujó:Entonces, debido a que Prisma comprende su modelo y sabe cómo consultarlos, ¿puede generar algún tipo de migraciones o cosas así para ayudarlo a configurar esa base de datos?

Antonio:Eso es exactamente lo que pierdes cuando tienes que sacar Prisma y obtener tus datos: pierdes todas las funciones de migración. Tiene una CLI realmente avanzada que hace un montón de cosas por usted, por lo que puede seguir todo el tutorial de Redwood e ingresar los comandos de Prisma y no necesita tener idea de lo que está haciendo, simplemente funciona. Es una herramienta realmente excelente para hacer todo ese tipo de cosas de tipo base de datos que desea asegurarse de hacer bien y asegurarse de que se haga correctamente.

Dibujó:Parece que tener herramientas realmente buenas en torno a los marcos es una tendencia bastante moderna, ¿no es así? No solo decir: "Aquí están todas las cosas que este marco puede hacer, pero aquí quizás haya algunas herramientas CLI que harán muchas cosas por usted". ¿Redwood tiene herramientas para cosas como generadores CLI y otras cosas que le ayudarán a ponerse en marcha rápidamente?

Antonio:Esta es probablemente la característica clave más importante que obtiene de Redwood: obtiene un conjunto completo de generadores muy sofisticados. Para cualquiera que haya visto alguna vez la demostración original de Ruby on Rails que dio DHH, crea un blog en unos 15 minutos y lo hace todo con Rails, y la gente dice: "Vaya, esto es increíble". Ese es el efecto que busca Redwood. Quieren que puedas hacer que todo funcione muy rápido para que puedas generar páginas, puedas generar diseños, puedas generar tus celdas, de lo que estaba hablando, y puedas hacer un comando de andamio que creará todo tu Interfaz CRUD. Tengo una sección completa, la cuarta parte de la serie de blogs, que simplemente explica todo el código que te proporciona el andamio. Te da mucho código. Hay un generador apagado, incluso hay un generador de viento de cola que configura el viento de cola por usted.

Dibujó:Eso es increíble. Recuerdo haber visto la demostración de Rails de DHH. Quiero decir, probablemente fue hace 15 años cuando hizo ese andamiaje por primera vez y te mostró, y obtienes un panel de control bastante rudimentario pero funcional esencialmente para permitirte crear nuevos elementos, editarlos, eliminarlos, etc. . Esto puede ser invaluable en un proyecto, especialmente trabajando en una especie de entorno dinámico donde, bueno, tal vez vayas a implementar mejores herramientas en el futuro para editar ese contenido, pero significa poder hacer girar algo rápidamente, puedes obtener datos de prueba, o incluso puedes entregárselos a un equipo de contenido que podría comenzar a trabajar mientras tú trabajas en el front-end, lo que es realmente útil.

Dibujó:Si simplemente desea implementar eso y tenerlo en producción, presumiblemente puede implementarlo junto con su código de interfaz, pero necesitaría alguna forma de asegurar ese aspecto, esas raíces en su aplicación.

 

Antonio:Sí, hay un par de opciones diferentes para la autenticación. Puede utilizar la identidad de Netlify. Ese es el valor predeterminado si ingresa al tutorial, y luego también puede usar Auth0, y luego uno con el que no estoy familiarizado llamado Magic.Link, y probablemente se agregarán un par de más en el futuro. Pero sí, ya hay un par de soluciones integradas, y eso es lo último que haces, así que la última parte de mi serie de blogs de 12 partes es la de autenticación. No creo haber descubierto la autenticación antes de usar Redwood. Es difícil y definitivamente han hecho un buen trabajo con ello.

Dibujó:¿Eso se integra a nivel de ruta, o a nivel de ruta? Lo siento, ¿cómo se aseguran las cosas?

Antonio:Sí, parte de cómo tienen su propio enrutador, también tienen... Puedes hacer rutas privadas, por lo que tienen un componente de ruta privada. Luego, su formulario de inicio de sesión real, eso es lo que obtiene de la identidad de Netlify, por lo que no tiene que crear un formulario y administrar su estado con eso, ahí es donde entran en juego muchos problemas. Si se eliminan las partes realmente claves, se puede implementar el acceso basado en roles. Tenemos un complemento de control de acceso basado en roles que se realizó durante las últimas dos semanas por David T. Por lo tanto, se está trabajando mucho para crear otras formas de hacerlo, pero lo que tienen ahora ya es... funciona, funciona. Te hará funcional.

Dibujó:La gente siempre dice sobre la criptografía hash de algoritmos de seguridad que nunca debes escribir el tuyo propio porque nunca será tan bueno como los que existen. Cada vez más, creo que esto también se aplica a la autenticación en un nivel superior; que la autenticación es un área tan compleja hoy en día que las personas no solo quieren iniciar sesión en su sitio con credenciales únicas, sino que también pueden querer autenticarse usando Google, o pueden querer autenticarse usando un dispositivo Apple, o pueden querer autenticación de dos factores. , o tal vez quieran integrarlo con un servicio de inicio de sesión único que estén utilizando en una empresa. Todas estas cosas son un gran dolor de cabeza si intenta implementarlas usted mismo y hay tantas oportunidades de hacer algo mal y exponer agujeros de seguridad en su aplicación, que usar un servicio de autenticación me parece casi una obviedad en este momento. Por lo tanto, simplemente poder insertar algo con esencialmente unas pocas líneas de código y estar en funcionamiento suena como una forma realmente productiva de trabajar y mantener las cosas seguras.

Dibujó:Parece que la implementación tanto del front-end como de los aspectos del servidor, las funciones sin servidor, es una opción natural para la implementación en Netlify. ¿Estás involucrado en eso con Redwood? Quiero decir, mencionamos que Tom Preston-Werner es uno de los principales defensores de este marco y también está en la junta directiva de Netlify. ¿Cree que existe la posibilidad de que se produzca un acoplamiento demasiado estrecho si eligiera Redwood como base para un proyecto?

Antonio:Sí, esto es algo de lo que Tom definitivamente es consciente. Ha invertido en muchas empresas que circulan por ahí. Invirtió en Prisma y Fauna. Sólo quiere fabricar las herramientas que quiere utilizar. No se trata de que queramos encerrarlo en esto, sino que lo que Netlify ha creado él cree que es la mejor opción, por eso lo construyeron en torno a ello. Pero no quieren que esté limitado a ningún objetivo de implementación, y es por eso que estamos trabajando en cosas como el marco sin servidor y algunas personas han hablado sobre Begin. Queremos ser pragmáticos, queremos que funcione para cualquier caso de uso de alguien. Entonces, lo completamos el 90% del camino y luego solo tiene que conectar las últimas dos cosas para que funcione con cualquiera que sea el servidor que elija.

Dibujó:Supongo que incluso Netlify está usando AWS Lambda para las funciones de los servidores, por lo que Redwood se encarga de la parte de implementación allí y, de hecho, usted mismo podría implementarla en Lambda. Publicar su interfaz son solo archivos, ¿no es así? El resto está basado en CDN. Entonces, hay bastante flexibilidad sin estar demasiado limitado.

Antonio:Sí, en realidad hay un término del que Tom habla como la idea filosófica central detrás de Redwood, que es que queremos llegar a una máquina de implementación universal. Esa es una especie de idea, es que puedes simplemente implementar cosas y no tienes que pensar en ello en absoluto. Ha estado hablando de esta idea durante años y años y años, y de esto se trataba Jekyll en su día. Cuando escuchas eso ahora, piensas: "Oh, ¿te refieres a Netlify?" Eso es básicamente lo que Netlify es para la mayoría de las personas que trabajan en el front-end. Ya ni siquiera piensan en desplegarse, ni siquiera es un pensamiento.

Dibujó:Aquí está mi aplicación en un Git Repo, este directorio es el front-end, este directorio es el back-end, aquí está mi base d






Tal vez te puede interesar:

  1. ¿Deberían abrirse los enlaces en ventanas nuevas?
  2. 24 excelentes tutoriales de AJAX
  3. 70 técnicas nuevas y útiles de AJAX y JavaScript
  4. Más de 45 excelentes recursos y repositorios de fragmentos de código

Smashing Podcast Episodio 25 con Anthony Campolo: ¿Qué es RedwoodJS?

Smashing Podcast Episodio 25 con Anthony Campolo: ¿Qué es RedwoodJS?

Índice Mostrar notas Actualización s

programar

es

https://aprendeprogramando.es/static/images/programar-smashing-podcast-episodio-25-con-anthony-campolo-que-es-redwoodjsja-1061-0.jpg

2024-05-21

 

Smashing Podcast Episodio 25 con Anthony Campolo: ¿Qué es RedwoodJS?
Smashing Podcast Episodio 25 con Anthony Campolo: ¿Qué es RedwoodJS?

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Top 20