Rails te protege

Lo que he visto desde mi experiencia es que cuando programamos el aspecto de seguridad se descuida bastante. Tal vez no sea adrede sino por circunstancias que se nos escapan como falta de conocimiento, falta de revisión de código o apuros del día a día.

Justo por eso es ventajoso usar frameworks en lugar de hacer mezclas de distintas librerías. Idealmente, un framework de desarrollo brinda características de diferente tipo para gestionar diferentes partes de una aplicación web. El aspecto de seguridad hace parte de esas características. Y por eso es bueno usar Ruby on Rails.

En el apartado de seguridad de las guías de Rails tenemos una completa lista y descripción de las cosas que tenemos a nuestro favor para hacer una web segura: gestión de sesiones, protección contra CSRF, resguardos contra XSS o ataques de inyección, e incluso un lenguaje específico de dominio (DSL) para CSP (Content Security Policy).

A continuación, trataré de explicar algunos aspectos de esta oferta.

Continuar leyendo «Rails te protege»

¿Cuál es la diferencia entre mock y stub en testing de Rails?

Escribir pruebas automatizadas es bueno para el software que creamos. Es una forma de dar garantía de que lo que hacemos funciona cómo debería en la mayoría de escenarios normales.

De todos modos, no es fácil acostumbrarse a testear cuando no se enseña desde que se aprende a programar.

Una de las cosas buenas de Ruby on Rails es que la ponen fácil para uno meterse al mundo del testing. Tiene su propio framework de pruebas llamado Minitest y permite integrar con pocos pasos otra librería llamada RSpec.

Continuar leyendo «¿Cuál es la diferencia entre mock y stub en testing de Rails?»

Apuntes sobre crear una plantilla de aplicación Ruby on Rails

Crear aplicaciones web con Ruby on Rails es un disfrute total. Este framework nos brinda muchas características para ser productivos muy rápidamente y enfocarse en hacer software y no tanto en configuraciones o resolver problemas con soluciones ya dadas.

Rails ofrece tantas cosas que uno no termina de enterarse de todo. Así me pasó cuando descubrí que existen plantillas para Ruby on Rails. Similar a una plantilla para WordPress, la cual trae diseño visual y complementos, una plantilla para Rails puede ofrecer un gran número de características extra o configuraciones adicionales para empezar aún con más ventaja un proyecto nuevo.

Son una especie de bonus track que el framework permite. A continuación las menciono un poco, explico al respecto y comparto algunas cosas que descubrí al crear la propia para Dev As Pros.

Continuar leyendo «Apuntes sobre crear una plantilla de aplicación Ruby on Rails»

Cómo usar git rebase interactivo

Una de las cosas buenas de Git es que con unos pocos comandos uno trabaja la mayor parte del tiempo. Crear rama, mezclar ramas, guardar, subir y bajar cambios. Comandos concisos y de uso frecuente aunque hay uno que otro que es más avanzado y requiere de más cuidado y entendimiento cuando se usa, como es el caso de git rebase.

En los próximos párrafos quiero explicar cómo usarlo de la forma más sencilla que sé.

Continuar leyendo «Cómo usar git rebase interactivo»

Cómo configurar llave primaria como UUID en Rails

No hay nada de malo en la forma estándar de tener un entero como valor para las llaves primarias en las tablas de nuestras aplicaciones. Sin embargo, por seguridad cuando los registros suelen ser públicos, lo mejor es poner dichas llave como un campo UUID. A continuación muestro como.

Continuar leyendo «Cómo configurar llave primaria como UUID en Rails»

Cómo escribir rake tasks con argumentos

En proyectos Ruby o Rails, cuando queremos ejecutar tareas en el entorno (no en el software como tal) nos valemos de las rake task. Comandos que permiten recrear archivos, insertar o limpiar archivos y datos.

Ahora, cuando creamos nuestras rake tasks personalizadas es muy usual que sean bastante sencillas y triviales pero qué pasa cuándo necesitan un poco más de personalización, cuándo necesitamos pasar argumentos a estas, ¿es posible hacerlo? Claro que sí.

Continuar leyendo «Cómo escribir rake tasks con argumentos»

Cómo Configurar GitHub Actions para correr RSpec

No hay ninguna duda que la integración continua tiene enormes ventajas a la hora de simplificar la forma de enviar nuestros proyectos a los entornos en la nube. Por eso, ya antes he configurado este tipo de servidores en Bitbucket, Jenkins e incluso Circle CI.

Ahora, me tocó hacerlo en GitHub Actions y quiero compartir cómo lo logré y algunos aprendizajes.

Continuar leyendo «Cómo Configurar GitHub Actions para correr RSpec»

La Idealización del Código

O creer que el código de otros es una maravilla.

Todo desarrollador de software a medida que progresa sus habilidades va entendiendo que su código actual es mejor que el de hace algunos años atrás.

Pasa que volvemos a ver código pasado y nos da pena lo que escribíamos. Cómo resolvíamos ciertas cosas muy diferente a como lo hacemos actualmente.

Con el pasar del tiempo, comprendemos que «no somos tan buenos» como creemos. Siempre habrá alguien que hará las cosas mejor que nosotros. Alguien que escribiría el código de manera prodigiosa, elegante y formidable.

Y es la realidad. Nada de malo en ello.

Continuar leyendo «La Idealización del Código»

Notas de una Migración a Rails 6

Ruby on Rails es un maravilloso framework para el desarrollo de aplicaciones web. Tiene un montón de herramientas para facilitar la vida del desarrollador, además de una serie de valores los cuales dan peso a su existencia.

Cuando empecé a escribir código en Rails era el año 2012 y lo poquito que escribía era en Rails 3. Hice cosas en Rails 4 para saber las diferencias y tuve la oportunidad de seguir escribiendo en la cuarta versión en un software en el que trabajé por casi 2 años. Más adelante, pude empezar un proyecto con Rails 5 y esa fue la constante por un largo rato.

Continuar leyendo «Notas de una Migración a Rails 6»

Cómo Hospedar Aplicaciones Estáticas en Heroku

Creo que Heroku debería patrocinarme ya que he escrito en varias ocasiones sobre este servicio y ¿cómo no hacerlo? Es un buen servicio con una buena oferta.

En esta ocasión voy a compartir cómo montar una aplicación estática en un dyno de Heroku. Si bien en ocasiones podemos valernos de servicios como GitHub Pages, Netlify o Vercel, Heroku no deja de ser una buena alternativa.

Vale destacar que mandar aplicaciones estáticas a Heroku puede ser más complicado que en los otros servicios mencionados aunque no está de más tener opciones.

Continuar leyendo «Cómo Hospedar Aplicaciones Estáticas en Heroku»