Rails con SQLite: Una espada de doble filo

2025-09-12

André Arko, colaborador de código abierto Ruby de larga trayectoria, comparte su experiencia construyendo una aplicación Rails usando SQLite. Si bien SQLite simplifica la implementación y reduce los costos debido a su naturaleza integrada, introduce desafíos únicos. El artículo detalla estos desafíos, incluyendo la persistencia de datos, el control de concurrencia y la alta disponibilidad, ofreciendo soluciones como el almacenamiento persistente, el modo WAL, varios archivos de base de datos y herramientas como Litestream y LiteFS. Arko concluye que SQLite ofrece posibilidades interesantes para construir aplicaciones Rails eficientes y simples, pero requiere una consideración cuidadosa de sus limitaciones.

Leer más
Desarrollo

Es hora de eliminar algunas pruebas

2025-08-30

Durante décadas, se ha enfatizado la importancia de las pruebas, pero los desarrolladores han desarrollado la creencia errónea de que 'eliminar pruebas es blasfemia'. Este artículo argumenta que el propósito de las pruebas es aumentar la confianza, pero las pruebas fallidas, redundantes, lentas o desactualizadas, en realidad, disminuyen la confianza. Las pruebas inestables hacen perder tiempo, mientras que las pruebas excesivamente numerosas reducen la eficiencia. El autor sugiere que, para mejorar la eficiencia y la confianza, las pruebas que disminuyen en lugar de aumentar la confianza deben eliminarse, y deben escribirse nuevas pruebas para nuevos requisitos.

Leer más
Desarrollo

rv: Un revolucionario gestor de lenguaje Ruby

2025-08-27

Después de una década trabajando en Bundler, el autor finalmente ha creado rv, un nuevo tipo de herramienta de gestión de Ruby. rv no solo gestiona las dependencias de gems, sino también las versiones de Ruby, instalando Rubies precompiladas para eliminar largos tiempos de compilación. Más importante aún, rv hace trivial la ejecución de cualquier script o herramienta Ruby, incluso si requiere una versión diferente de Ruby. Inspirada en uv (una herramienta similar para Python), cargo y npm, rv cuenta con velocidad, fiabilidad y características innovadoras como `rv tool run` e `rv tool install`, simplificando la gestión de entornos Ruby y aumentando drásticamente la productividad del desarrollador.

Leer más
Desarrollo

Rendimiento del sistema de archivos en memoria de Rust: sorprendentemente, no importa

2025-08-25

Mientras construía una herramienta de línea de comandos en Rust, el autor intentó usar un sistema de archivos en memoria para pruebas de administración de archivos más rápidas. Después de explorar crates como `vfs` y `rsfs`, la sorprendente conclusión fue que las SSD modernas y el almacenamiento en caché del sistema de archivos del SO son tan eficientes que prácticamente no hay ganancia de rendimiento al usar un sistema de archivos en memoria. Las pruebas de rendimiento mostraron consistentemente alrededor de 45 ms para pruebas usando sistemas de archivos en memoria, sistemas de archivos regulares e incluso un ramdisk, un contraste sorprendente con las expectativas. El autor invita a los lectores a compartir ejemplos donde el uso de un sistema de archivos en memoria produce diferencias de rendimiento perceptibles.

Leer más