Ductは、データ駆動型アーキテクチャを使用して、Clojureにサーバー側アプリケーションを構築するための非常にモジュール式フレームワークです。
範囲はArachneに似ており、積分に基づいています。 Ductは、構造的な青写真として機能する不変の構成を中心にアプリケーションを構築します。構成を操作および照会して、洗練された動作を生成することができます。
参照:upgrading.md。
Leiningenで新しいダクトプロジェクトを作成するには:
lein new duct < your project name >これにより、最小限のダクトプロジェクトが作成されます。これは、追加の機能性を追加するために、アプリを追加するプロファイルヒントによって拡張できます。
+api APIミドルウェアとハンドラーを追加します+ataraxy Ataraxyルーターを追加します+cljs 、ClojureScriptのコンパイルとホットロードに追加されます+exampleハンドラーのサンプルを追加します+heroku Herokuに展開するための構成を追加します+postgres 、PostgreSQL依存関係とデータベースコンポーネントを追加します+site 、サイトミドルウェア、お気に入り、WebJarsなどを追加します+sqlite 、SQLiteの依存関係とデータベースコンポーネントを追加します例えば:
lein new duct foobar +site +exampleすべてのLeiningenテンプレートと同様に、Ductはプロジェクトと同じ名前の新しいディレクトリを作成します。プロジェクトの実行と構築方法については、プロジェクトのREADME.mdファイルを参照してください。
アプリケーションの構造は、Integrant構成マップによって定義されます。
開発では、DuctはStuart Sierraのリロードされたワークフローを使用しています。
生産では、ダクトは12因子アプリの方法論に従います。
地方自治体は、世界の州よりも好まれています。
名前空間は、レイヤーではなく、目的ごとに関数をグループ化する必要があります。
プロトコルは、外部APIをラップするために使用する必要があります。
ダクトは、積分の上に抽象化の層を追加します。積分剤では、構成マップが実行中のシステムマップに開始されます。
┌────────┐ ┌────────┐
│ config ├──>│ system │
└────────┘ └────────┘
ダクトでは、構成が2回開始されます。構成は最初に中間構成に開始され、それがシステムに開始されます。
┌────────┐ ┌──────────────┐ ┌────────┐
│ config ├──>│ intermediate ├──>│ system │
└────────┘ └──────────────┘ └────────┘
同じように、高次関数により、コードの共通パターンを抽象化できるように、Ductの階層化された構成により、構成の共通パターンを抽象化することができます。
ダクト構成のキーは、構成マップを変換する関数に開始することが期待されます。 2つの幅広いタイプがあります。プロファイルは、その値を構成に統合することと、より複雑な操作を提供するモジュールです。
ダクトプロジェクトは以下のように構成されています。 *でマークされたファイルは、バージョン制御から除外されます。
Copyright©2021 James Reeves
MITライセンスの下で配布されます。