Anthony.D

Développeur Python · Django · FastAPI · Flask · Freelance

Bonnes pratiques, tips et astuces autour de Python, Django, Django REST Framework, FastAPI et Flask. Approches TDD, SOLID et DDD pour des APIs backend solides.

HATEOAS : votre API REST n'est peut-être que du CRUD

On entend souvent “on a mis en place une API REST” dans les équipes. Mais quand on regarde les réponses JSON, il n’y a aucun lien. Juste des données brutes. Ce n’est pas du REST, c’est du CRUD exposé en HTTP. La différence tient à un principe que la plupart des développeurs ignorent : HATEOAS. Qu’est-ce que HATEOAS ? HATEOAS signifie Hypermedia As The Engine Of Application State. C’est l’une des contraintes fondamentales du REST, définie par Roy Fielding dans sa thèse de 2000 (la même qui a inventé le terme REST). ...

4 mai 2026 · 4 min · Anthony

Django Window Function vs GROUP BY : QuerySets chaînables

Avec Django ORM, il existe deux façons d’ajouter une valeur calculée sur un ensemble de lignes : annotate() avec une agrégation classique (Max, Count, Sum…) ou annotate() avec une Window function. En surface, elles se ressemblent. En pratique, elles ont un comportement fondamentalement différent, et choisir la mauvaise peut bloquer toute la chaîne de filtrage. GROUP BY avec annotate() : des lignes qui s’écrasent Quand on combine values() et annotate() avec une agrégation, Django génère un GROUP BY en SQL. Le résultat : les lignes se regroupent, et on obtient une ligne par groupe. ...

4 mai 2026 · 4 min · Anthony

Django in_bulk() : optimiser les requêtes ORM et éviter le N+1

Quand on a une liste d’identifiants et qu’on veut récupérer les instances correspondantes, le réflexe habituel en Django c’est filter(pk__in=[...]). Ça marche, c’est une seule requête SQL. Mais in_bulk() est une optimisation ORM souvent ignorée : elle retourne un dictionnaire {id: instance} au lieu d’un QuerySet, ce qui change radicalement la façon d’accéder aux résultats. Là où filter() force un parcours O(n) pour retrouver un objet par son ID, in_bulk() donne un accès direct O(1). ...

4 mai 2026 · 4 min · Anthony

L'IA ne remplace pas l'apprentissage du code

On entend souvent la même promesse ces derniers temps : “Plus besoin de savoir coder, l’IA s’en charge.” Et franchement, c’est séduisant. On ouvre un agent, on décrit ce qu’on veut, et en quelques secondes, du code apparaît. Magique. Sauf que non. Pas vraiment. Le développement agentique, oui mais pour qui ? Le développement assisté par IA est une révolution réelle. Je ne vais pas prétendre le contraire. Pour un développeur senior ou intermédiaire, qui s’est déjà heurté à des problématiques complexes, débogué des algos tordus, et livré des systèmes en production, la productivité atteint des sommets inégalés. On délègue les tâches répétitives, on prototypé en heures ce qui prenait des jours, et on reste dans sa zone de haute valeur : l’architecture, les décisions critiques, la validation. ...

4 mai 2026 · 4 min · Anthony

Pourquoi ce blog sur Python, Django et FastAPI ?

Ce blog, c’est avant tout un espace de partage : des découvertes, des réflexions, des choses qui m’ont été utiles et qui pourraient l’être pour d’autres. Python, Django, FastAPI et DRF : le cœur du blog Le cœur du blog, c’est le développement Python, et plus précisément les frameworks qui structurent mon quotidien : Django, FastAPI et Flask. Chacun a ses forces, ses cas d’usage, ses pièges. On rentrera dans le détail. ...

4 mai 2026 · 2 min · Anthony

Newsletter

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

Pas de spam. Désabonnement en un clic.