Cuando una aplicación PHP empieza a crecer, uno de los primeros problemas de rendimiento suele aparecer en el peor lugar posible: la experiencia del usuario. Un registro que tarda demasiado.Una compra que demora varios segundos.Una API que parece «congelarse» antes de responder. En muchos casos, el problema no es PHP en sí. El problema es […]
Desarrollo
En nuestras publicaciones anteriores, establecimos las bases para escribir código elegante con LINQ y desglosamos cómo dominar los joins avanzados. Asimismo, pusimos sobre la mesa las alarmas de por qué las aplicaciones sufren cuando se enfrentan a millones de registros. Cuando tu dataset pasa de miles a millones de filas, ya no basta con escribir […]
Si has seguido esta serie, ya sabes qué son las Blazor Web Apps, dominas los Render Modes y entiendes a la perfección cómo lidiar con el ciclo de vida y el prerendering (puedes repasar el último artículo aquí). Llegados a este punto, tu aplicación funciona… pero, ¿está realmente lista para producción? En cuanto intentas estructurar […]
En los artículos anteriores vimos por qué el ORM consume tanta memoria y cómo mitigarlo con flush() por bloques, clear() y toIterable(). Si llegaste hasta aquí, ya estás convencido del problema. Este artículo es el siguiente paso: cómo salir del ORM conscientemente cuando no lo necesitas, sin abandonar el ecosistema Doctrine ni romper la arquitectura […]
En el artículo anterior vimos cómo elegir y aplicar los diferentes Render Modes. Parecía bastante sencillo: pones @rendermode InteractiveAuto y listo. Pero en cuanto empiezas a construir componentes reales, con llamadas a bases de datos, APIs o JavaScript, aparece el primer susto: «Mi componente está ejecutando las peticiones dos veces… y no es un bug.» […]
En el artículo anterior vimos cómo sobrevivir cuando tienes que procesar millones de registros con Doctrine: usando flush() por bloques, clear() y toIterable(). Pero ¿por qué funcionan realmente esas técnicas? La respuesta está en dos piezas internas de Doctrine que la mayoría de los desarrolladores subestiman o directamente desconocen: el UnitOfWork y el proceso de […]
C# vs Go: Entendiendo sus diferencias clave
2026-05-06Si has trabajado con C# en el ecosistema .NET, seguramente has oído hablar de Go, el lenguaje que Google creó para resolver problemas de escalabilidad y concurrencia en entornos modernos de nube. Aunque ambos son lenguajes potentes y modernos, sus filosofías son muy distintas. C# apuesta por la flexibilidad, la orientación a objetos y un […]
En el artículo anterior vimos cómo Blazor evolucionó de ser «o WebAssembly o Server» a un modelo unificado mucho más potente. Pero saber que existe no es lo mismo que saber usarlo bien. Hoy nos vamos a ensuciar las manos con la decisión más importante que tomarás al trabajar con Blazor Web Apps en .NET […]
Continuación de: «Nuevo look en el blog: descubre la mecánica detrás de mi tema minimalista en WordPress« En el artículo anterior te conté la filosofía detrás de Jure Minimal Blog: por qué decidí construir mi propio tema desde cero, qué decisiones de diseño tomé y cómo quedó el resultado visual. Si todavía no lo leíste, […]
Nada mata más la experiencia de usuario en una aplicación de IA que tener que esperar. Envías tu pregunta, la pantalla se queda en blanco y pasan varios segundos eternos hasta que, de golpe, aparece la respuesta completa. Es frustrante. En el artículo anterior construimos un asistente conversacional que mantenía el historial y podía usar […]