avalanche

Tela Software:
avalanche
Detalhes de Software:
Versão: 0.3.0
Data de upload: 14 Apr 15
Licença: Livre
Popularidade: 1

Rating: nan/5 (Total Votes: 0)

avalanche é um framework web Python construída em cima de webapp2 & nbsp;. Ele usa Jinja2 como um sistema modelo padrão e não inclui qualquer camada de persistência.
metas Avalanche (ou por outro framework web?)
Foco projeto Avalanche na capacidade de teste e reutilização.
Claro Avalanche não faz milagres. Testability e reutilização acabará depende do código do aplicativo. Mas o quadro tem um grande papel na criação de no caminho certo.
Os objetivos são apresentados a seguir, espero que depois de ler o projeto e tutorial será claro para você como esses objetivos sejam alcançados.
Testability
Avalanche foi projetado de uma maneira que torna possível (mais fácil para você) para escrever bons unitários-testes para seu código. Isso não é só o que facilita a escrever testes. A-teste de unidade deve:
- Dar uma mensagem de erro claro quando ele falhar
- Falha apenas quando o recurso em teste está quebrado, não em cada alteração de código
- Seja rápido
Reutilização
Principalmente cada quadro afirma que a reutilização é uma de suas metas de design. Here "Reutilização potencial", de código-fonte reutilização.
Muitas estruturas de fornecer alguns mecanismos de sub-aplicações reutilizáveis ​​/ plugable no entanto, nem sempre é fácil de re-utilizar estes aplicativos de código-fonte no caso de você precisar configurar / modificá-lo. Aplicações plugable também é uma característica muito importante, mas a partir de agora Avalanche não tem suporte para isso.
Não deve ser apenas possível escrever código reutilizável, o código deve ser reutilizável na primeira vez que você escrevê-lo. Você não deve ser aconselhado a escrever o código de uma maneira, e que mais tarde terá de modificá-lo para torná-lo reutilizável. Isto é, se opõe ao que diz "Use view (handler) funções". E do que ... "se você quiser que os seus pontos de vista para ser reutilizável convertê-los em pontos de vista com base em classe!".
Detalhes do Projeto
- Website / docs
- Este é um projeto open-source (licença MIT) escrito em python.
- Baixar a partir PyPI
- Gestão de Projetos (bug tracker, solicitações de recursos e código fonte) sobre bitbucket.
- Perguntas e comentários sobre grupo google.
Avalanche Design
Aviso
Avalanche está em estágios iniciais de desenvolvimento (alpha). A API pode mudar no futuro, e não há nenhuma garantia de que vai manter a compatibilidade.
além MVC (Model-View-Controller)
MVC é um padrão de arquitetura de software criado com o objetivo de isolar "lógica de domínio" da interface do usuário. Esta separação de preocupação permite a criação de um código melhor aplicação. Esse padrão foi muito bem sucedida para muitos quadros de área de trabalho e assim serviu de referência para a criação de web-frameworks. O problema é que essa arquitetura não pode ser mapeada diretamente para a aplicações web forma de trabalho.
Mesmo os chamados quadros MVC não são realmente MVC. Então vamos manter a meta do MVC. Isso é escrever um código limpo, reutilizável e testável.
aplicações web
Essencialmente todos um web-application fazer é receber um pedido HTTP, processá-lo e gerar uma resposta HTTP.
& Nbsp; + ------------------ +
Request HTTP ------> | aplicação web + -----> Resposta HTTP
& Nbsp; + ------------------ +
Envio e recebimento de HTTP é tratado por um web-server. Vamos dar uma olhada no que a aplicação web faz:
& Nbsp; + ------ + + ------- +
Solicitação HTTP ----> | router | -----> | manipulador | ----> resposta HTTP
& Nbsp; + ------ + + ------- +
O roteador irá verificar a URL do pedido e despachá-lo para um manipulador de solicitação que vai criar a resposta. Avalanche usa o roteador webapp2.
Manipuladores de solicitação de estilos
Existem basicamente três estilos de gestores de pedidos.
- Uma única função
- Um método de classe
- Uma aula
Avalanche (e webapp2) usa o terceiro estilo, uma classe. Usando uma classe como manipulador de solicitação se adapte melhor nossos objetivos, porque fornece uma maior flexibilidade, mais fácil de modificar / estender e reutilizar partes do manipulador.
solicitação de processamento manipulador
O processamento manipulador de solicitação pode ser dividido em 3 etapas:
& Nbsp; + ----------------- ----------------- + + + + --------- - +
solicitar ----> | conversor param | ---- param objetos ----> | construtor contexto | --- contexto -----> | renderizador | ----> resposta
& Nbsp; + ----------------- ----------------- + + + + --------- - +
Conversor 1. param - obter os parâmetros de solicitação HTTP
& Nbsp; HTTP é um protocolo de texto, o aplicativo normalmente obter alguns parâmetros da requisição e converter valores de strings em alguns tipos de dados nativos. Estes parâmetros são retirados do caminho do URI, URI consulta, pós-dados, biscoitos, etc.
Builder 2. contexto - transformação
& Nbsp; O contexto é um termo usado para representar os dados que serão utilizados por um representante.
& Nbsp; Este processamento é a lógica do aplicativo. É, muitas vezes, aceder a uma camada de persistência (às vezes chamado de Modelo), mas isso é inteiramente até o código do aplicativo e do quadro não tem um papel nisso.
& Nbsp; A página web é muitas vezes composta de vários elementos por isso às vezes faz sentido dividir o trabalho em mais do que um "construtor de contexto".
3. renderizador - gerar a saída
& Nbsp; O representante irá converter o resultado da transformação em texto para a resposta HTTP. Esta etapa pode ser ignorada se a resposta é um redirecionamento HTTP. O representante usará tipicamente um sistema modelo para gerar o código HTML ou converter os dados em JSON.
Na avalanche você deve escrever código para as três etapas do manipulador separadamente e deixe cola o quadro das diferentes partes em conjunto.
. Passe para o tutorial para ver como ele se parece com

Requisitos :

  • Python

Outro software de desenvolvedor Eduardo Naufel Schettino

hoe.js
hoe.js

13 Apr 15

pytest-incremental
pytest-incremental

12 May 15

Doit
Doit

1 Mar 15

Comentário para avalanche

Comentários não encontrado
Adicionar comentário
Ligue imagens!