Anthony.D

Desarrollador Python · Django · FastAPI · Flask · Freelance

Buenas prácticas, tips y trucos sobre Python, Django, Django REST Framework, FastAPI y Flask. Enfoques TDD, SOLID y DDD para construir APIs backend sólidas.

HATEOAS: tu API REST podría ser solo CRUD

En los equipos se escucha con frecuencia “tenemos una API REST”. Pero al revisar las respuestas JSON, no hay ningún enlace. Solo datos en crudo. Eso no es REST, es CRUD expuesto en HTTP. La diferencia la marca un principio que la mayoría de los desarrolladores ignora: HATEOAS. ¿Qué es HATEOAS en una API REST? HATEOAS significa Hypermedia As The Engine Of Application State. Es una de las restricciones fundamentales del REST, definida por Roy Fielding en su tesis del año 2000. ...

4 de mayo de 2026 · 3 min · Anthony

Django Window Function vs GROUP BY: QuerySets encadenables

Con el ORM de Django hay dos formas de añadir un valor calculado sobre un conjunto de filas: annotate() con una agregación clásica (Max, Count, Sum…) o annotate() con una Window function. A simple vista se parecen. En la práctica, su comportamiento es fundamentalmente distinto — y elegir la opción equivocada puede bloquear toda la cadena de filtrado. GROUP BY con annotate(): filas que se comprimen Cuando combinamos values() y annotate() con una agregación, Django genera un GROUP BY en SQL. El resultado: las filas se agrupan y obtenemos una fila por grupo. ...

4 de mayo de 2026 · 4 min · Anthony

Django in_bulk(): por qué es mejor que filter() en masa

Cuando tenemos una lista de identificadores y queremos recuperar las instancias correspondientes, el reflejo habitual en Django es filter(pk__in=[...]). Funciona — una sola consulta SQL. Pero in_bulk() es una optimización ORM frecuentemente ignorada: retorna un diccionario {id: instancia} en lugar de un QuerySet, lo que cambia radicalmente la forma de acceder a los resultados. Donde filter() obliga a un recorrido O(n) para encontrar un objeto por su ID, in_bulk() da acceso directo O(1). ...

4 de mayo de 2026 · 4 min · Anthony

La IA no reemplaza aprender a programar

Últimamente escuchamos la misma promesa una y otra vez: “Ya no hace falta saber programar, la IA se encarga.” Y francamente, es tentador. Abres un agente, describes lo que quieres, y en segundos aparece el código. Magia. Excepto que no. No exactamente. El desarrollo agéntico, ¿pero para quién? El desarrollo asistido por IA es una revolución real. No voy a fingir lo contrario. Para un desarrollador senior o intermedio que ya se ha enfrentado a problemas complejos, depurado algoritmos retorcidos y puesto sistemas en producción, la productividad alcanza niveles sin precedentes. Delegas las tareas repetitivas, prototipas en horas lo que antes llevaba días, y te mantienes en tu zona de alto valor: la arquitectura, las decisiones críticas, la validación. ...

4 de mayo de 2026 · 4 min · Anthony

¿Por qué un blog sobre Python, Django y FastAPI?

Este blog es ante todo un espacio de intercambio: descubrimientos, reflexiones, cosas que me han sido útiles y que podrían serlo para otros. Python, Django, FastAPI y DRF: el núcleo del blog El núcleo del blog es el desarrollo en Python, y más concretamente los frameworks que estructuran mi día a día: Django, FastAPI y Flask. Cada uno tiene sus puntos fuertes, sus casos de uso, sus trampas. Profundizaremos en todos ellos. ...

4 de mayo de 2026 · 2 min · Anthony

Newsletter

Reçois les nouveaux articles directement dans ta boite mail.

Pas de spam. Désabonnement en un clic.