O DUCT é uma estrutura altamente modular para criar aplicativos do lado do servidor em Clojure usando a arquitetura orientada a dados.
É semelhante a Arachne e é baseado no integrado. O duto cria aplicativos em torno de uma configuração imutável que atua como um plano estrutural. A configuração pode ser manipulada e consultada para produzir comportamentos sofisticados.
Veja: Atualizando.md.
Para criar um novo projeto de duto com Leiningen:
lein new duct < your project name >Isso criará um projeto mínimo de duto. Você pode estender isso anexando dicas de perfil para adicionar funcionalidade extra.
+api adiciona middleware e manipuladores de API+ataraxy adiciona o roteador de ataraxia+cljs adiciona compilação de clojurescript e carregamento a quente+example adiciona um exemplo de manipulador+heroku adiciona configuração para implantar para Heroku+postgres adiciona uma dependência PostGresql e componente de banco de dados+site adiciona middleware do site, um favicon, webjars e muito mais+sqlite adiciona uma dependência de sqlite e componente de banco de dadosPor exemplo:
lein new duct foobar +site +example Como em todos os modelos de Leiningen, o duto criará um novo diretório com o mesmo nome que seu projeto. Para obter informações sobre como executar e criar seu projeto, consulte o arquivo README.md do projeto.
A estrutura do aplicativo é definida por um mapa de configuração integrante.
No desenvolvimento, o DUCT usa o fluxo de trabalho recarregado de Stuart Sierra.
Na produção, o duto segue a metodologia de doze fatores de fator.
O estado local é preferido em relação ao estado global.
Os espaços para nomes devem agrupar as funções por propósito, e não por camada.
Os protocolos devem ser usados para envolver APIs externas.
O duto adiciona uma camada de abstração no topo do integrante. No integrado, um mapa de configuração é iniciado em um mapa de sistema em execução.
┌────────┐ ┌────────┐
│ config ├──>│ system │
└────────┘ └────────┘
No duto, a configuração é iniciada duas vezes. A configuração é iniciada primeiro em uma configuração intermediária, que por sua vez é iniciada no sistema:
┌────────┐ ┌──────────────┐ ┌────────┐
│ config ├──>│ intermediate ├──>│ system │
└────────┘ └──────────────┘ └────────┘
Da mesma maneira que as funções de ordem superior nos permitem abstrair padrões comuns de código, as configurações em camadas do DUCT nos permitem abstrair padrões comuns de configuração.
Espera -se que as teclas em uma configuração do duto iniciem em funções que transformam um mapa de configuração. Existem dois tipos amplos: perfis , que mesclam seu valor na configuração e módulos , que fornecem manipulação mais complexa.
Os projetos do duto são estruturados como abaixo. Os arquivos marcados com A * são mantidos fora do controle da versão.
Copyright © 2021 James Reeves
Distribuído sob a licença do MIT.