Quando criar um novo aplicativo (com startapp) em Django?

votos
67

Eu pesquisei ao redor para isso, mas eu ainda tenho dificuldade para se relacionar com o que Django define como apps.

Devo criar um novo aplicativo para cada pedaço de funcionalidade em um site, mesmo que ele usa modelos do projeto principal?

Vocês têm boa regra de quando se separou um novo aplicativo, e quando para manter a funcionalidade em conjunto com o projeto principal ou outros aplicativos?

Publicado 15/09/2008 em 17:03
fonte usuário
Em outras línguas...                            


7 respostas

votos
36

James Bennett tem um maravilhoso conjunto de slides sobre como organizar aplicativos reutilizáveis em Django.

Respondeu 15/09/2008 em 17:35
fonte usuário

votos
15

Eu prefiro pensar de aplicações Django como módulos reutilizáveis ​​ou componentes que como "aplicações".

Isso me ajuda a encapsular e desacoplar certas características uns dos outros, melhorando a reutilização devo decidir compartilhar um "app" em particular com a comunidade em geral e manutenção.

Minha abordagem geral é a de balde-se características específicas ou conjuntos de recursos em "apps" como se eu estivesse indo para liberá-los ao público. A parte mais difícil aqui é descobrir como grande cada balde é.

Um bom truque que eu uso é imaginar como meus aplicativos seria usado se eles foram liberados ao público. Isso muitas vezes encoraja-me a encolher os baldes e mais claramente definir seu "propósito".

Respondeu 15/09/2008 em 17:32
fonte usuário

votos
11

I tendem a criar novas aplicações para cada conjunto logicamente separada de modelos. por exemplo:

  • Perfis de usuário
  • Fórum Mensagens
  • Postagens no blog
Respondeu 15/09/2008 em 17:12
fonte usuário

votos
9

Aqui está a apresentação atualizada em 6 de Setembro de 2008.

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

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

Tomado do slide

Se este for o seu próprio aplicativo?

  • É completamente alheios ao foco do aplicativo?
  • É ortogonal a qualquer outra coisa que eu estou fazendo?
  • Vou precisar de funcionalidade similar em outros sites?

Se algum deles é "Sim"? Então melhor para quebrá-lo em um aplicativo separado.

Respondeu 07/11/2011 em 10:15
fonte usuário

votos
3

A regra que eu sigo é que deveria ser um novo aplicativo se eu quiser reutilizar a funcionalidade em um projeto diferente.

Se ele precisa de uma compreensão profunda dos modelos em seu projeto, é provavelmente mais coesa furá-la com os modelos.

Respondeu 16/09/2008 em 01:01
fonte usuário

votos
1

As duas melhores respostas a esta pergunta que eu encontrei em torno da web são:

  1. O reutilizável Apps Talk ( lâminas ) ( vídeo ) também mencionou em outras respostas. Bennett, autor e colaborador Django, publica regularmente aplicativos para os outros de usar e tem um forte ponto de vista no sentido de muitos pequenos aplicativos.
  2. Dicas de Doordash para Django em escala que dá o conselho oposto e diz em seu caso, eles migraram para um único aplicativo depois de iniciar com muitos aplicativos separados. Eles tiveram problemas com o gráfico migração dependência entre aplicativos.

Ambas as fontes concordam que você deve criar um aplicativo separado nas seguintes situações:

  • Se você pretende reutilizar a sua aplicação em outro projeto Django (especialmente se você pretende publicá-lo para reutilização).
  • Se o aplicativo tem poucos ou nenhum dependências entre ele e um outro app. Aqui você pode ser capaz de imaginar um aplicativo em execução como a sua própria Microservice no futuro.
Respondeu 12/12/2018 em 02:16
fonte usuário

votos
0

Um 'aplicativo' pode ser muitas coisas diferentes, tudo realmente se resume a gosto. Por exemplo, digamos que você está construindo um blog. Seu aplicativo poderia ser todo o blog, ou você poderia ter um app 'admin', um 'local' app para todos os pontos de vista públicos, um aplicativo 'rss', um aplicativo de 'serviços' que os desenvolvedores possam interagir com o blog em seu formas próprias, etc.

Eu, pessoalmente, faria o blog em si o aplicativo, e quebrar a funcionalidade dentro dele. O blog pode ser reutilizado com bastante facilidade em outros sites.

A coisa agradável sobre Django é que ele irá reconhecer qualquer arquivo models.py dentro de qualquer nível de sua árvore de diretórios como um arquivo contendo modelos do Django. Então quebrar sua funcionalidade fora para menores 'sub apps' dentro de um 'aplicativo' em si não vai fazer qualquer coisa mais difícil.

Respondeu 15/09/2008 em 23:56
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more