Fiber: Rendimiento sobre pureza “idiomática”

Ya puedo escuchar a los puristas de Go afilando sus horcas. “Usa la biblioteca estándar”, corean. “Los frameworks son un antipatrón”, gritan.

No me importa.

No uso Fiber porque sea perezoso. No lo uso porque se parezca a Express.js. Lo uso porque tengo una adicción patológica a la velocidad, y net/http, bendito sea su corazón seguro y compatible, es simplemente demasiado educado para la violencia que quiero infligir a mi CPU.

Read More

Contract First o Morir en el Intento: La Única Forma Sensata de Diseñar APIs

Necesito desahogarme. Algo que ha estado pudriéndose en mi alma desde la primera vez que me uní a un proyecto a mitad de desarrollo y hice la pregunta fatídica: “¿Dónde está la documentación de la API?”

La respuesta, invariablemente, era una de las siguientes:

  1. “Revisa la colección de Postman.” (Traducción: un cementerio de 200 peticiones, la mitad desactualizadas, con nombres como GET users FINAL v2 (copia))
  2. “Simplemente mira el código.” (Traducción: haz ingeniería inversa de nuestro espagueti y buena suerte)
  3. “La documentaremos más tarde.” (Traducción: nunca la documentaremos)

¡Renuncio!

Read More

La muerte de JSON en el backend: Por qué migré toda mi stack a gRPC y Protobuf

Empezaré este post con una confesión que podría ganarme algunos enemigos: Odio JSON.

No es un odio irracional, de esos que aparecen de la nada. Es un odio construido, ladrillo a ladrillo, a lo largo de años depurando payloads malformados, campos que deberían haber sido números pero llegaron como strings, y ese clásico null donde esperabas un array vacío. JSON es el equivalente digital de una conversación telefónica con tu abuela: crees que entendiste lo que dijo, pero cuando llegas, el pastel de zanahoria no tenía ese glaseado de chocolate esperado (los brasileños entenderán).

Read More

El Kobayashi Maru de Java: Manejo Global de Excepciones

Para quienes se saltaron las clases de la Academia de la Flota Estelar, el Kobayashi Maru es un ejercicio de entrenamiento diseñado como un “escenario sin victoria”. El objetivo no es ganar, es ver cómo manejas un fracaso inevitable. En el mundo de la Ingeniería de Backend, nuestro escenario sin victoria es la Excepción No Controlada.

Pasas semanas diseñando un servicio hermoso y limpio. Usas Records, optimizas tus consultas SQL, aplicas principios SOLID. Y luego, el día de producción, un usuario envía un JSON malformado, y tu API vomita un Stack Trace de 50 líneas directamente en la consola de su navegador. Es feo, es poco profesional y expone tu lógica interna al mundo.

Read More

Archivos de Longitud Fija con Spring Batch 6.0: La “Alegría” de los Datos Legacy

Si eres un desarrollador que ha manejado procesamiento de nóminas o conciliación bancaria/financiera en una empresa que usa Spring, es probable que hayas trabajado con Spring Batch. Confieso que no soy un gran fan; tiene esa verbosidad y sobrecarga característica del ecosistema Java, haciendo que incluso el trabajo más simple requiera mucha más estructura de la necesaria. Pero ¿de qué sirve quejarse? La tecnología que usa tu empresa es lo que asegura tu supervivencia (vivienda, comida, ropa). Así que, quejarse no es el tema de hoy.

Read More