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.
Anthony.D
Desarrollador Python · Django · FastAPI · Flask · Freelance
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.
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. ...
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. ...
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). ...
Ú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. ...
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. ...