Structurer un projet Django qui passe à l'échelle
Apps découplées, settings par environnement, services métier : les choix d'architecture qui évitent la dette technique sur le long terme.
Un projet Django qui démarre bien mais devient ingérable au bout de six mois, c'est presque toujours un problème d'architecture initiale. Quelques principes simples changent tout.
Des apps qui ont une seule responsabilité
Chaque app devrait répondre à une question claire : « de quoi parle-t-elle ? ». Une app
payments, une app catalog, une app accounts. Évitez l'app
fourre-tout core qui finit par tout contenir.
Settings par environnement
Séparez dev, staging et prod. J'utilise python-decouple + .env pour
sortir tous les secrets du code et basculer le comportement selon DEBUG.
La logique métier hors des vues
Les vues orchestrent, elles ne décident pas. La logique va dans des fonctions de service ou des méthodes de modèle. Résultat : du code testable et réutilisable.
- Vues fines, modèles riches.
- Migrations versionnées et relues.
- Tests sur la logique critique (paiement, droits d'accès).
Ces choix ne coûtent rien au début et font gagner des semaines plus tard.