duct
1.0.0
Duct是一个高度模块化的框架,用于使用数据驱动的体系结构在Clojure中构建服务器端应用程序。
它的范围与Arachne相似,并且基于整合物。管道围绕不变的配置构建应用,该配置充当结构蓝图。可以操纵和查询配置以产生复杂的行为。
请参阅:upgrading.md。
与Leiningen创建一个新的管道项目:
lein new duct < your project name >这将创建一个最小的管道项目。您可以通过附加配置文件提示来扩展此功能以添加额外的功能。
+api添加了API中间件和处理程序+ataraxy添加了ataraxy路由器+cljs在clojurescript编译和热载中添加+example添加了一个示例处理程序+heroku添加了用于部署到Heroku的配置+postgres添加了PostgreSQL依赖关系和数据库组件+site添加了网站中间件,favicon,webjars等+sqlite添加了一个sqlite依赖关系和数据库组件例如:
lein new duct foobar +site +example与所有Leiningen模板一样,Duct将创建一个新目录,其名称与您的项目相同。有关如何运行和构建项目的信息,请参阅项目的README.md文件。
应用程序的结构由整体配置图定义。
在开发中,管道使用Stuart Sierra的重新加载工作流程。
在生产中,管道遵循十二个因素应用方法。
优先于全球状态。
名称空间应故意分组函数,而不是通过图层进行分组。
协议应用于包裹外部API。
管道在整合物的顶部增加了一层抽象。在整合物中,将配置图启动到运行的系统映射中。
┌────────┐ ┌────────┐
│ config ├──>│ system │
└────────┘ └────────┘
在管道中,配置启动了两次。首先将配置启动到中间配置,然后将其启动到系统中:
┌────────┐ ┌──────────────┐ ┌────────┐
│ config ├──>│ intermediate ├──>│ system │
└────────┘ └──────────────┘ └────────┘
就像高阶功能使我们能够抽象代码的常见模式一样,Duct的分层配置使我们能够抽象共同的配置模式。
风管配置中的键有望启动到转换配置图的功能。有两种广泛的类型:配置文件,它们将其价值合并到配置中,以及可提供更复杂操作的模块。
管道项目的结构如下。标记为A *的文件被放在版本控制之外。
版权所有©2021 James Reeves
根据MIT许可分发。