88 votes

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

J'ai cherché sur Google, mais j'ai toujours du mal à comprendre ce que Django définit comme des "applications".

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

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

40voto

Antti Rasinen Points 2837

James Bennett propose de superbes diapositives expliquant comment organiser des applications réutilisables.

18voto

blahspam Points 606

Je préfère penser que Django applications de modules réutilisables ou de composants que comme des "applications".

Cela m'aide à encapsuler et de découplage de certaines fonctions de l'un à l'autre, l'amélioration de la ré-utilisabilité dois-je décider de partager un "app" avec la communauté au sens large, et de maintenabilité.

Mon approche générale est dans le seau jusqu'à des caractéristiques spécifiques ou des ensembles de fonctionnalités dans "apps" comme si j'avais été va sortir publiquement. La partie la plus difficile ici est de savoir comment grand chaque seau est.

Une bonne astuce que j'utilise est d'imaginer comment mes applications seraient utilisées que si elles ont été rendues publiques. Souvent, cela m'encourage pour réduire les seaux et de définir plus clairement son "but".

12voto

Yeo Points 938

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

http://www.youtube.com/watch?v=A-S0tqpPga4

http://media.b-list.org/presentations/2008/djangocon/reusable_apps.pdf

Prises à partir de la diapositive

Si cela devait être sa propre application?

  • Est-il complètement sans rapport avec le focus de l'app?
  • Est-il orthogonal à tout ce que je suis en train de faire?
  • Ai-je besoin d'une fonctionnalité similaire sur d'autres sites?

Si l'un d'eux est "Oui"? Puis le meilleur pour la casse dans un demande distincte.

11voto

pobk Points 1500

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

  • Des profils d'utilisateurs
  • Messages du forum
  • Articles de blog

5voto

Ryan Points 7423

La règle que je suis est qu'il devrait être une nouvelle application si je veux réutiliser les fonctionnalités dans un projet différent.

Si cela nécessite une compréhension approfondie des modèles de votre projet, il est probablement plus cohérent de le coller avec les 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: