693 Views
November 28, 19
スライド概要
Clojureフレームワーク"Duct"の拡張方法を理解しよう!
「楽しく楽にcoolにsmartに」を理想とするprogrammer/philosopher/liberalist/realist。 好きな言語はClojure, Haskell, Python, English, français, русский。 読書、プログラミング、語学、法学、数学が大好き! イルカと海も大好き🐬
モジュール⼊⾨ Duct フレームワーク"Duct"の拡張⽅法を理解しよう Clojure
lagénorhynque (defprofile lagénorhynque :id @lagenorhynque :reading "/laʒenɔʁɛ̃ k/" :aliases [" "] カマイルカ🐬 :languages [Clojure Haskell English français] :interests [programming language-learning law mathematics] :commits ["github.com/lagenorhynque/duct.module.pedestal" "github.com/lagenorhynque/duct.module.cambium"] ["github.com/japan-clojurians/clojure-site-ja"]) :contributes
の基本 2. Ductの基本 3. Ductモジュールの作り⽅ 1. Integrant
の基本 Integrant
とは 依存関係に従ってライフサイクル管理を⾏う仕組み Integrant cf. Component, mount, Clip
ライフサイクルフックとしてのマルチメソッド integrant.core/prep-key : integrant.core/init-key integrant.core/halt-key! : integrant.core/resume-key : init-key integrant.core/supend-key! : halt-key! デフォルト 何もしない デフォルト 何もしない デフォルト と同じ デフォルト と同じ
の基本 Duct
とは Integrantに対する便利な拡張 Duct
テンプレート duct Leiningen 関連、ルーティングライブラリ 、サンプルコード付き # API Ataraxy $ lein new duct <project name> +api +ataraxy +example
コア機能 duct/core duct.core/load-hierarchy duct.core/read-config duct.core/prep-config
標準モジュール duct/module.web duct/module.ataraxy duct/module.sql duct/module.cljs duct/module.logging
モジュールの作り⽅ Duct
実装⽅法 ClojureサーバサイドフレームワークDuctガイド > Ductの「モジュール」とは
実例1: duct.module.pedestal API/サービス開発ライブラリPedestalを組み込む モジュール 標準モジュールduct/module.webの代替
実例2: duct.module.cambium JSON形式でのログ出⼒を可能にするライブラリ Cambiumを組み込むモジュール 標準モジュールduct/module.loggingの代替
Further Reading Clojure/ClojureScript (Clojure) サイド 関連リンク集 > Webサーバ サーバサイドフレームワークDuctガイド 『3つのLisp 3つの世界』 第3章: Clojureによるデータ指向DSLを駆使 したREST API開発 ClojureのDuctでWeb API開発してみた Clojure