Ver perfil

EnRails #6 - Omakase, Importmaps y el gran hermano

Ruby on Rails en Español
Qué tal enrailers, espero que les esté yendo muy bien.
En las últimas semanas se han tomado decisiones interesantes que estaban por terminar de implementarse. Seguro ya sabes de qué estoy hablando, pero si no, sigue leyendo.
La doctrina de Ruby on Rails se adhiere al término Omakase, que significa “confiar” o “ponerse en las manos del chef”, por esto lo que muchas de las decisiones que se toman en el framework son para impulsar una estandarización u ofrecer lo que para el chef es lo mejor para todos. Muchas de estas pueden causar ruido y otras darnos sorpresas.
No hay que dejar de recordar que a pesar de tener un core team que decide sobre Rails, el chef es DHH. Para bien (?) o para mal. Esto lo ha demostrado sin permiso de nadie en muchísimas ocasiones.
Los cambios que vienen en Rails 7 siguen esta misma doctrina, la misma que han habido en los últimos años. Te recomiendo mucho que estés al tanto de estas actualizaciones para mantenerte al día, compartas con quien lo podría necesitar.
Juega, experimenta, crea un proyecto nuevo con la última versión. Nunca dejes de aprender.
Alejandro AR (@kinduff)

En el main de Rails
Adiós Webpack, hola ES Importmaps
Esta es la nota mas importante del default que tendrá Rails 7. Se ha quitado la generación de configuración de Webpack con Webpacker y se ha sustituido por Importmaps. Esto nos quita el paso de compilación y transpilación, hará que las aplicaciones sean más rápidas al momento de desarrollar y a su vez mas rápidas en producción.
Aquí te dejo un par de enlaces relevantes y un demo de DHH (gracias por compartir Ra'sAlGhul).
Alpha preview: Modern JavaScript in Rails 7 without Webpack
Alpha preview: Modern JavaScript in Rails 7 without Webpack
Tareas, opciones y configuración
Spring ya no se instalará por defecto en nuevas aplicaciones 🎉 PR #42997
Se quitó la opción de --skip-puma, forzando su instalación PR #42998
Se quitó la opción de --skip-gemfile, forzando un Gemfile PR #42996
Se agrega la opción de database_tasks en la configuración de base de datos para evitar ejecución de tareas, como db:migrate PR #42794
Los comandos db:setup y db:reset de Rake aceptan como tercer parámetro la base de datos que se necesite PR #42938
Nuevo método: weekday_options_for_select
Este método lo podremos utilizar en nuestros formularios para seleccionar días de la semana, de domingo a lunes, con opciones flexibles para personalizarlo.
Se integra la gema Marginalia
La gema Marginalia de Basecamp permite agregar comentarios a tus queries a través de ActiveRecord. Esto es muy útil para hacer debugging o auditorías, pues por default agregar el controlador y la acción de dónde se generó. Esta gema ha sido integrada a Rails.
Actualización de seguridad para Rails: 6.0.4.1 y 6.1.4.1
Esta actualización mitiga el CVE-2021-22942 que abría la posibilidad de sobreescribir una redirección a través del header X-Forwarded-Host. Es importante actualizar, o aplicar el parche recomendado.
De la comunidad
Estos son mensajes y cosas que han pasado en el Discord de EnRails. Si te gustaría aportar, platicar o preguntar, eres mas que bienvenide.
JuanCrg90 nos comparte gruff, una gema que utiliza rmagic para generar gráficos. Muy flexible e interesante.
eduardoghdez nos compartió una guía en inglés de cómo hacer deploy de una aplicación de Rails en Kubernetes.
sanchezdav y eduardoghdez nos compartieron dos gemas para consumir y utilizar Kafka.
NatyG nos compartió un blog post para juniors o trainees, pero no deja de ser interesante para cualquier nivel.
Gemas interesantes
👁️ console1984 y audits1984
Estas dos gemas dependen directamente de Rails 7, pero no dejan de ser interesantes. Permiten justificar y registrar el uso de una consola en producción. ¡El gran hermano te observa!
📟 noticed
Esta gema nos permite enviar notificaciones a varios tipos de canales, que incluye el escalado de las notificaciones. Es decir, puedes guardar notificaciones en base de datos, enviarlas por Action Cable, email, etc. Si el usuario no ve la notificación en cierto tiempo determinado, le puedes enviar, por ejemplo, un SMS.
👤 rodauth
Otra alternativa al clásico Devise para autenticación de usuarios que no depende de Warden. Mucha mas completa que Clearance pero muchísimo mas completa que Devise.
🎚️ composite_primary_keys
La mayoría de bases de datos SQL soportan primary keys compuestas, esta gema habilita a ActiveRecord para soportar esta funcionalidad.
database_rewinder
Esta gema es una alternativa a DatabaseCleaner, pero está optimizada para ser mucho más rápida a cambio de menos features y estrategias.
🥡 interactor
Un patrón bastante interesante para la abstracción y centralización de lógica de negocio en módulos con múltiples responsabilidades. Sus ejemplos son bastante buenos y van aumentando en complejidad.
Bolsa de trabajo
Reservamos.mx: Lead Backend Engineer
Encora: Ruby Developer
Ruby for Good
¿Te ha gustado? No
EnRails
EnRails @en_rails

Newsletter bimensual de EnRails con lo último de Ruby on Rails en Español: noticias, cambios importantes, artículos, gemas, bolsa de trabajo y mucho mas.

Para cancelar tu suscripción, haz clic aquí.
Si te han remitido este boletín y te ha gustado, puedes suscribirte aquí.
Created with Revue by Twitter.