142 votes

Quand créer une nouvelle application (avec startapp) dans Django ?

J'ai fait des recherches à ce sujet, mais j'ai toujours du mal à comprendre ce que Django définit comme des "applications".

Dois-je créer une nouvelle application pour chaque fonctionnalité d'un site, même si elle utilise des modèles du projet principal ?

Avez-vous une bonne règle empirique pour savoir quand séparer une nouvelle application et quand conserver la fonctionnalité avec le "projet principal" ou d'autres applications ?

50voto

Antti Rasinen Points 2837

James Bennett a un merveilleux série de diapositives sur la façon d'organiser des applications réutilisables dans Django.

1 votes

Cela signifie-t-il que si je crée un modèle enfant, il doit toujours être dans la même application ? Puisque je ne peux pas facilement le déposer dans un autre projet sans apporter deux "applications"

27voto

blahspam Points 606

Je préfère considérer les applications Django comme des modules ou des composants réutilisables plutôt que comme des "applications".

Cela m'aide à encapsuler et à découpler certaines fonctionnalités les unes des autres, ce qui améliore la réutilisation si je décide de partager une "application" particulière avec l'ensemble de la communauté, ainsi que la maintenabilité.

Mon approche générale consiste à regrouper des fonctionnalités spécifiques ou des ensembles de fonctionnalités dans des "applications", comme si je devais les rendre publiques. La partie la plus difficile est de déterminer la taille de chaque lot.

Un bon truc que j'utilise est d'imaginer comment mes applications seraient utilisées si elles étaient rendues publiques. Cela m'incite souvent à réduire le nombre d'applications et à définir plus clairement leur "objectif".

22voto

Yeo Points 938

Voici la présentation mise à jour le 6 septembre 2008.

DjangoCon 2008 : Reusable Apps @7:53

Diapositive : Reusable_apps.pdf

Tiré de la diapositive

Devrait-il s'agir d'une application à part entière ?

  • Est-ce que cela n'a rien à voir avec l'objectif de l'application ?
  • Est-ce que c'est orthogonal à tout ce que je fais d'autre ?
  • Aurai-je besoin d'une fonctionnalité similaire sur d'autres sites ?

Si l'une d'entre elles est "Oui" ? Alors le mieux est de le diviser en application séparée.

0 votes

La diapositive que j'ai vue ne contient pas la première question sur le "focus de l'application".

1 votes

@johnny C'est là, à la diapositive 31 de 99.

16voto

pobk Points 1500

J'ai tendance à créer de nouvelles applications pour chaque ensemble de modèles logiquement distinct, par exemple :

  • Profils des utilisateurs
  • Messages du forum
  • Articles de blog

8voto

Ryan Points 7423

La règle que je suis est qu'il doit s'agir d'une nouvelle application si je veux réutiliser la fonctionnalité dans un autre projet.

S'il a besoin d'une compréhension approfondie des modèles de votre projet, il est probablement plus cohérent de le coller aux modèles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X