Firmemente acoplados a Ruby on Rails

Martí Serra
Martí Serra
Publicado en Tecnología
6 min de lectura
rails-logo

En Happy Scribe tenemos un equipo de 6 ingenieros de producto construyendo y manteniendo una aplicación web que sirve a 500 mil usuarios al mes. Una de nuestras armas secretas: Ruby on Rails.

Para muchas personas en el mundo web, Ruby on Rails es cosa del pasado, aparcado en la residencia de ancianos para web frameworks junto con ASP.NET y JSP. Pero en Happy Scribe estamos convencidos de que Ruby on Rails fue y sigue siendo uno de los principales contribuyentes al éxito de la empresa. Afortunadamente, no estamos solos. Una amplia gama de empresas, grandes y pequeñas, utilizan RoR para atender a millones de usuarios todos los días. Shopify y GitHub son los más conocidos, que también contribuyen impulsando el avance del framework y haciend divulgación para que más personas se unan.

Los aspectos más destacados

Convenciones útiles

La Doctrina Rails describe un conjunto de principios por los cuales el framework intenta regirse. Para nosotros, dos de ellos crean una combinación ganadora que garantiza que los programadores podamos concentrarnos en lo que importa y no tengamos que perder tiempo tomando decisiones que pueden ser delegadas a otra persona:

Gracias a ellos, nuestro CTO Marc logró construir la versión inicial de Happy Scribe en menos de 2 semanas cuando todavía estaba en la universidad y sin experiencia real en programación. Ese mismo código sirvió como una buena base para el crecimiento que llegó en los meses siguientes. Seis años después, nos alegra decir que nunca tuvimos que pasar por la típica 'reescritura completa' de una startup necesaria para soportar el crecimiento exponencial después del "product-market fit". Estamos bastante seguros de que el resultado habría sido diferente si Marc hubiera elegido el stack MERN. Imagina una aplicación Express construida por alguien que desconoce las mejores prácticas de un ingeniero senior en una empresa madura.

Productivo y divertido

Trabajar con Ruby on Rails es una experiencia agradable, la mayor parte del tiempo. Gracias al mínimo de código repetitivo y renderizado del lado del servidor, crear una nueva pieza de producto requiere poco tiempo. No se pierde tiempo decidiendo qué carga útil enviar al cliente y cómo almacenarla en el estado para el renderizado. Los Templates de ERB, junto con Turbo Frames, cubren el 80% de las necesidades del producto. Cuando se trata de implementar actualizaciones en vivo, Turbo Streams hace que sea realmente simple enviar una nueva interfaz de usuario directamente desde el servidor a los clientes que la necesitan. Finalmente, para el otro 10% de reactividad en el cliente, Stimulus está ahí el último toque con JS.

La simplicidad de Rails significa que en Happy Scribe todos los ingenieros somos fullstack. Esto nos permite trabajar en "features" completos de forma individual, lo que nos proporciona todo el contexto que nos capacita para tomar decisiones técnicas y de producto con toda la información en mente. En resumen, nuestro tiempo como desarrolladores se dedica a las tareas que agregan valor al producto, reduciendo la cantidad de líneas de código requeridas y abstrayendo la complejidad, todo ello divirtiéndonos y siendo productivos.

Evitar tendencias

Finalmente, un poder subestimado de RoR es que elimina las tentadoras distracciones en las que los ingenieros aman dedicar demasiado tiempo. En el mundo de JS, por ejemplo, cada dos por tres aparece una nueva biblioteca basada en React que promete tiempos de renderizado más rápidos, o un nuevo tiempo de ejecución en el lado del servidor que afirma superar a NodeJS por un gran margen. En el ecosistema de Rails podemos mantenernos enfocados, y todos nuestros 'y si' pueden ser dirigidos a pensar en cómo actualizar a la próxima versión principal del framework.

El espacio de la infraestructura tampoco ha logrado escapar de los ciclos de hype. Microservicios, orquestación de contenedores, multicloud, serverless, etc. Solo recientemente la gente ha comenzado a preguntarse si estas tecnologías, diseñadas para organizaciones con miles de ingenieros, tenían sentido en su empresa. Nuestra aplicación principal es un Majestic Monolith desplegado en Heroku. Estamos de acuerdo con Daniel, “Los microservicios fueron un fenómeno de 0% de interés”.

Las partes menos bonitas

Ruby es lento

Muchas personas creen que Ruby es lento y no escala. Podríamos escribir mil palabras sobre cómo en realidad no lo es (echa un vistazo al nuevo compilador YJIT), pero en su lugar diremos que Happy Scribe gasta €1k/mes en servidores web de Heroku, lo que representa alrededor del 0.2% de nuestros ingresos. Podríamos disminuir eso en un orden de magnitud si migráramos a un proveedor de nube más económico como Hetzner, que es lo que hicimos para nuestra infraestructura de procesamiento de medios.

Difícil contratar ingenieros de Rails

Tenemos que ser honestos con nosotros mismos, ya no estamos en la época dorada de Rails—aunque eso podría cambiar en los próximos años. Los estudiantes no están aprendiendo Ruby on Rails en su tiempo libre ni los bootcamps lo están enseñando. En 2024, JavaScript y todas sus diferentes variantes son tendencia. Según la última Encuesta para Desarrolladores de Stack Overflow, alrededor del 40% de los encuestados seleccionaron Node.js y/o React como sus tecnologías predilectas, en comparación con solo un 5% que eligió Ruby on Rails.

Estadísticas bastante desalentadoras para cualquiera que intente contratar ingenieros de RoR en 2024. Sin embargo, hay algunas buenas noticias: ¡RoR se puede aprender, y muy rápidamente! No es necesario tener conocimientos previos de RoR como requisito fundamental en nuestras ofertas de trabajo. Es más: ninguno de los ingenieros que trabajan en Happy Scribe conocía RoR antes de unirse a la empresa. A pesar de eso, todos nos volvimos productivos muy rápido, haciendo la primera contribución a producción en los primeros días. En 3 a 6 meses ya completamente inmersos en la mentalidad de Rails y escribiendo código complejo e idiomático.

Framework "lock-in"

No se puede negar que Ruby on Rails es un web framework completo, por lo que las aplicaciones están fuertemente ligadas a él. Incluso si alguien quisiera alejarse de Rails, realmente no hay alternativa para él en el ecosistema de Ruby. En resumen, la verdad es que una vez que comienzas con RoR, estás un poco casado con él de por vida, pero aceptamos esa restricción.

No solo eso, rechazamos conscientemente una arquitectura puramente Hexagonal. El hecho de que podríamos construir la misma aplicación en Django no significa que lo vayamos a hacer. Lo más probable es que nos quedemos con Rails para siempre. No necesitamos abstraer todo Rails solo por si nos mudamos. Si lo hiciéramos, perderíamos la mayoría de las ventajas de usarlo. Nos acoplamos fuertemente y con orgullo a Rails.

Conclusión

Finalmente, vale la pena mencionar que en los últimos años RoR y su comunidad han comenzado a experimentar un renacimiento. El framework está avanzando a una velocidad sin precedentes, manteniéndose al día con los fundamentos web modernos y adaptándolos a la mentalidad de Rails. Hotwired es un claro ejemplo de dos nuevas tecnologías, Turbo y Stimulus, utilizadas para incorporar la interactividad que los usuarios esperan directamente en el núcleo del framework. Estos avances nos dan aún más razones para creer que seguirá satisfaciendo nuestras necesidades y las de nuestros usuarios en el futuro.

En Happy Scribe, Ruby on Rails es más que solo un framework, es un socio estratégico en nuestro viaje de crecimiento e innovación. Su combinación de convenciones, productividad y estabilidad lo convierte en un activo inestimable en nuestra stack tecnológica, y vemos que se mantendrá así durante muchos años.

Publicaciones relacionadas

Multicloud Monolith as understood by ChatGPT

El Monolito Multicloud

Yoel Cabo
Yoel Cabo
Publicado en Tecnología
5 min de lectura

¿Pensando en dejar la nube para ahorrar costes, pero reacio a contratar un equipo de operaciones? Nosotros hemos optado por un paso intermedio que ha bajado nuestros costes considerablemente sin agregar mucha carga operativa.

rails-logo

Firmemente acoplados a Ruby on Rails

Martí Serra
Martí Serra
Publicado en Tecnología
6 min de lectura

En Happy Scribe tenemos un equipo de 6 ingenieros de producto construyendo y manteniendo una aplicación web que sirve a 500 mil usuarios al mes. Una de nuestras armas secretas: Ruby on Rails.