Saluran adalah kerangka kerja yang sangat modular untuk membangun aplikasi sisi server di Clojure menggunakan arsitektur berbasis data.
Ini mirip dalam ruang lingkup dengan Arachne, dan didasarkan pada integran. Duct membangun aplikasi di sekitar konfigurasi abadi yang bertindak sebagai cetak biru struktural. Konfigurasi dapat dimanipulasi dan ditanyai untuk menghasilkan perilaku canggih.
Lihat: upgrade.md.
Untuk membuat proyek saluran baru dengan leiningen:
lein new duct < your project name >Ini akan membuat proyek saluran minimal. Anda dapat memperpanjang ini dengan menambahkan petunjuk profil untuk menambahkan fungsionalitas tambahan.
+api menambahkan middleware dan penangan API+ataraxy menambahkan router ataraxy+cljs menambahkan kompilasi clojurescript dan pemuatan panas+example Menambahkan Contoh Penangan+heroku menambahkan konfigurasi untuk digunakan ke Heroku+postgres menambahkan ketergantungan postgresql dan komponen database+site Menambahkan middleware situs, favicon, webjars dan banyak lagi+sqlite menambahkan ketergantungan sqlite dan komponen databaseMisalnya:
lein new duct foobar +site +example Seperti halnya semua templat leiningen, saluran akan membuat direktori baru dengan nama yang sama dengan proyek Anda. Untuk informasi tentang cara menjalankan dan membangun proyek Anda, lihat file README.md proyek.
Struktur aplikasi ditentukan oleh peta konfigurasi integran.
Dalam pengembangan, Duct menggunakan alur kerja yang dimuat ulang Stuart Sierra.
Dalam produksi, saluran mengikuti metodologi aplikasi dua belas faktor.
Negara lokal lebih disukai daripada negara global.
Namespaces harus mengelompokkan fungsi dengan tujuan, bukan berdasarkan lapisan.
Protokol harus digunakan untuk membungkus API eksternal.
Duct menambahkan lapisan abstraksi di atas integran. Di Integrant, peta konfigurasi dimulai ke dalam peta sistem yang sedang berjalan.
┌────────┐ ┌────────┐
│ config ├──>│ system │
└────────┘ └────────┘
Di saluran, konfigurasi dimulai dua kali. Konfigurasi pertama kali dimulai ke dalam konfigurasi menengah, yang pada gilirannya dimulai ke dalam sistem:
┌────────┐ ┌──────────────┐ ┌────────┐
│ config ├──>│ intermediate ├──>│ system │
└────────┘ └──────────────┘ └────────┘
Dengan cara yang sama seperti fungsi orde tinggi memungkinkan kita untuk abstrak pola kode umum, konfigurasi berlapis saluran memungkinkan kita untuk abstrak pola konfigurasi umum.
Kunci dalam konfigurasi saluran diharapkan untuk memulai fungsi yang mengubah peta konfigurasi. Ada dua jenis luas: profil , yang menggabungkan nilainya ke dalam konfigurasi, dan modul , yang memberikan manipulasi yang lebih kompleks.
Proyek saluran disusun seperti di bawah ini. File yang ditandai dengan * disimpan di luar kontrol versi.
Hak Cipta © 2021 James Reeves
Didistribusikan di bawah lisensi MIT.