Le conduit est un cadre hautement modulaire pour créer des applications côté serveur dans Clojure à l'aide de l'architecture basée sur les données.
Il est similaire à Arachne et est basé sur intégrant. Le conduit construit des applications autour d'une configuration immuable qui agit comme un plan structurel. La configuration peut être manipulée et interrogée pour produire un comportement sophistiqué.
Voir: Mise à niveau.md.
Pour créer un nouveau projet de conduit avec Leiningen:
lein new duct < your project name >Cela créera un projet de conduit minimal. Vous pouvez prolonger cela en apprenant des conseils de profil pour ajouter des fonctionnalités supplémentaires.
+api ajoute des middleware et des gestionnaires d'API+ataraxy ajoute le routeur Ataraxy+cljs ajoute une compilation Clojurescript et un chargement à chaud+example ajoute un exemple de gestionnaire+heroku ajoute une configuration pour le déploiement à Heroku+postgres ajoute un composant de dépendance et de base de données postgresql+site ajoute du middleware du site, un favicon, des webjars et plus+sqlite ajoute un composant de dépendance et de base de données SQLitePar exemple:
lein new duct foobar +site +example Comme pour tous les modèles Leiningen, CONDERA créera un nouveau répertoire avec le même nom que votre projet. Pour plus d'informations sur la façon d'exécuter et de créer votre projet, reportez-vous au fichier README.md du projet.
La structure de l'application est définie par une carte de configuration intégrante.
En développement, Duct utilise le flux de travail rechargé de Stuart Sierra.
Dans la production, le conduit suit la méthodologie des applications de douze facteurs.
L'État local est préféré à l'État mondial.
Les espaces de noms doivent regrouper les fonctions par usage, plutôt que par couche.
Les protocoles doivent être utilisés pour envelopper les API externes.
Le conduit ajoute une couche d'abstraction au-dessus de l'intégrant. Dans Integrant, une carte de configuration est initiée à une carte système en cours d'exécution.
┌────────┐ ┌────────┐
│ config ├──>│ system │
└────────┘ └────────┘
Dans le conduit, la configuration est lancée deux fois. La configuration est d'abord initiée à une configuration intermédiaire, qui à son tour est initiée dans le système:
┌────────┐ ┌──────────────┐ ┌────────┐
│ config ├──>│ intermediate ├──>│ system │
└────────┘ └──────────────┘ └────────┘
De la même manière que les fonctions d'ordre supérieur nous permettent de résumer les modèles de code communs, les configurations en couches de la conduite nous permettent de résumer les modèles de configuration communs.
Les clés d'une configuration de conduit devraient initier dans des fonctions qui transforment une carte de configuration. Il existe deux types généraux: les profils , qui fusionnent leur valeur dans la configuration, et les modules , qui fournissent une manipulation plus complexe.
Les projets de conduits sont structurés comme ci-dessous. Les fichiers marqués avec A * sont gardés hors du contrôle de version.
Copyright © 2021 James Reeves
Distribué sous la licence du MIT.