Slide 1

Slide 1 text

Duct モジュール⼊⾨ Duct モジュール⼊⾨ Clojure フレームワーク "Duct" の拡張⽅法を理解しよう Clojure フレームワーク "Duct" の拡張⽅法を理解しよう

Slide 2

Slide 2 text

lagénorhynque 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"] :contributes ["github.com/japan-clojurians/clojure-site-ja"])

Slide 3

Slide 3 text

1. Integrant の基本 2. Duct の基本 3. Duct モジュールの作り⽅

Slide 4

Slide 4 text

Integrant の基本 Integrant の基本

Slide 5

Slide 5 text

とは とは 依存関係に従ってライフサイクル管理を⾏う仕組み cf. , , Integrant Integrant Component mount Clip

Slide 6

Slide 6 text

ライフサイクルフックとしてのマルチメソッド ライフサイクルフックとしてのマルチメソッド デフォルト: 何もしない デフォルト: 何もしない デフォルト: init-key と同じ デフォルト: halt-key! と同じ integrant.core/prep-key integrant.core/init-key integrant.core/halt-key! integrant.core/resume-key integrant.core/supend-key!

Slide 7

Slide 7 text

Duct の基本 Duct の基本

Slide 8

Slide 8 text

とは とは Integrant に対する便利な拡張 Duct Duct

Slide 9

Slide 9 text

Leiningen テンプレート Leiningen テンプレート duct duct # API 関連、ルーティングライブラリ Ataraxy 、サンプルコード付き $ lein new duct +api +ataraxy +example

Slide 10

Slide 10 text

コア機能 コア機能 duct/core duct/core duct.core/load-hierarchy duct.core/read-config duct.core/prep-config

Slide 11

Slide 11 text

標準モジュール 標準モジュール duct/module.web duct/module.ataraxy duct/module.sql duct/module.cljs duct/module.logging

Slide 12

Slide 12 text

Duct モジュールの作り⽅ Duct モジュールの作り⽅

Slide 13

Slide 13 text

実装⽅法 実装⽅法 Clojure サーバサイドフレームワークDuct ガイド > Duct の「モジュール」とは

Slide 14

Slide 14 text

実例 1: 実例 1: API/ サービス開発ライブラリ を組み込む モジュール 標準モジュール の代替 duct.module.pedestal duct.module.pedestal Pedestal duct/module.web

Slide 15

Slide 15 text

実例 2: 実例 2: JSON 形式でのログ出⼒を可能にするライブラリ を組み込むモジュール 標準モジュール の代替 duct.module.cambium duct.module.cambium Cambium duct/module.logging

Slide 16

Slide 16 text

Further Reading Further Reading 第3 章: Clojure によるデータ指向DSL を駆使 したREST API 開発 Clojure/ClojureScript 関連リンク集 > Web サーバ サイド (Clojure) Clojure サーバサイドフレームワークDuct ガイド 『3 つのLisp 3 つの世界』 Clojure のDuct でWeb API 開発してみた