Submit Search
Upload
プログラミング言語Clojureのニャンパスでの活用事例
•
18 likes
•
13,638 views
S
sohta
Follow
JJUG CCC 2015 Springでの発表資料です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 34
Download now
Download to read offline
Recommended
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy
Kent Ohashi
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
Metaspace
Metaspace
Yasumasa Suenaga
キメるClojure
キメるClojure
Yoshitaka Kawashima
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
Portacle : Common Lispのオールインワン開発環境
Portacle : Common Lispのオールインワン開発環境
Satoshi imai
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
chonaso
Recommended
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy
Kent Ohashi
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
Metaspace
Metaspace
Yasumasa Suenaga
キメるClojure
キメるClojure
Yoshitaka Kawashima
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
Portacle : Common Lispのオールインワン開発環境
Portacle : Common Lispのオールインワン開発環境
Satoshi imai
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
chonaso
initramfsについて
initramfsについて
Kazuhiro Nishiyama
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
Kent Ohashi
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
入門core.async
入門core.async
sohta
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
Plan 9のお話
Plan 9のお話
Ryousei Takano
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Akihiro Suda
Lisperの見る世界
Lisperの見る世界
fukamachi
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Yuji Kubota
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Airflowで真面目にjob管理
Airflowで真面目にjob管理
msssgur
Java web application testing
Java web application testing
Tokuhiro Matsuno
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
Shinichi Kozake
More Related Content
What's hot
initramfsについて
initramfsについて
Kazuhiro Nishiyama
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
Kent Ohashi
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
入門core.async
入門core.async
sohta
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
Plan 9のお話
Plan 9のお話
Ryousei Takano
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Akihiro Suda
Lisperの見る世界
Lisperの見る世界
fukamachi
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Yuji Kubota
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Airflowで真面目にjob管理
Airflowで真面目にjob管理
msssgur
What's hot
(20)
initramfsについて
initramfsについて
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
入門core.async
入門core.async
Glibc malloc internal
Glibc malloc internal
Unified JVM Logging
Unified JVM Logging
Plan 9のお話
Plan 9のお話
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Lisperの見る世界
Lisperの見る世界
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Airflowで真面目にjob管理
Airflowで真面目にjob管理
Viewers also liked
Java web application testing
Java web application testing
Tokuhiro Matsuno
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
Shinichi Kozake
開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程
Takao Sumitomo
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Yoshitaka Kawashima
Droid kaigiプレゼン
Droid kaigiプレゼン
Suguru Oho
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
kyon mm
データモデルは時空を越える
データモデルは時空を越える
terahide
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
Fumihiko Shiroyama
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
Shinobu Okano
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
Takahiro YAMADA
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Yuki Anzai
マテリアルデザインを用いたデザインリニューアル [フリル編]
マテリアルデザインを用いたデザインリニューアル [フリル編]
YUKI YAMAGUCHI
SIerアーキテクト視点でみたKotlinの紹介
SIerアーキテクト視点でみたKotlinの紹介
Shinichi Kozake
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Kazuhiro Hara
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
bitter_fox
Viewers also liked
(16)
Java web application testing
Java web application testing
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Droid kaigiプレゼン
Droid kaigiプレゼン
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
データモデルは時空を越える
データモデルは時空を越える
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
マテリアルデザインを用いたデザインリニューアル [フリル編]
マテリアルデザインを用いたデザインリニューアル [フリル編]
SIerアーキテクト視点でみたKotlinの紹介
SIerアーキテクト視点でみたKotlinの紹介
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
Similar to プログラミング言語Clojureのニャンパスでの活用事例
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
AdvancedTechNight
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
From JS To CLJS
From JS To CLJS
Kent Ohashi
Arachne Unweaved (JP)
Arachne Unweaved (JP)
Ikuru Kanuma
Clojure で減価償却費計算
Clojure で減価償却費計算
ultrakanji
SwaggerとAPIのデザイン
SwaggerとAPIのデザイン
Kazuhiro Hara
AzureDevOpsで作るHoloLensアプリCI環境
AzureDevOpsで作るHoloLensアプリCI環境
Tatsuya Sakai
Ll tiger clojure
Ll tiger clojure
Toshiaki Maki
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
入門ClojureScript
入門ClojureScript
sohta
SPA×Auth0
SPA×Auth0
春奈 岡
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
Kazuchika Sekiya
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
拓将 平林
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!【第2回】
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!【第2回】
schoowebcampus
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
Yasushi Ishikawa
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Shunji Konishi
【JJUG LT 大会】Zulu Open JDK
【JJUG LT 大会】Zulu Open JDK
Shigeru Tatsuta
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
Koichi Sakata
Similar to プログラミング言語Clojureのニャンパスでの活用事例
(20)
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
TypeScriptをオススメする理由
TypeScriptをオススメする理由
From JS To CLJS
From JS To CLJS
Arachne Unweaved (JP)
Arachne Unweaved (JP)
Clojure で減価償却費計算
Clojure で減価償却費計算
SwaggerとAPIのデザイン
SwaggerとAPIのデザイン
AzureDevOpsで作るHoloLensアプリCI環境
AzureDevOpsで作るHoloLensアプリCI環境
Ll tiger clojure
Ll tiger clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
入門ClojureScript
入門ClojureScript
SPA×Auth0
SPA×Auth0
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!【第2回】
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!【第2回】
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
Web制作勉強会 #2
Web制作勉強会 #2
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
【JJUG LT 大会】Zulu Open JDK
【JJUG LT 大会】Zulu Open JDK
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
More from sohta
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
sohta
入門Transducers
入門Transducers
sohta
Clojure Language Update (2015)
Clojure Language Update (2015)
sohta
REPLライフをもっと快適に
REPLライフをもっと快適に
sohta
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
sohta
ClojureではじめるSTM入門
ClojureではじめるSTM入門
sohta
Macros in Clojure
Macros in Clojure
sohta
Clojureによるバイトコードプログラミング
Clojureによるバイトコードプログラミング
sohta
More from sohta
(8)
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
入門Transducers
入門Transducers
Clojure Language Update (2015)
Clojure Language Update (2015)
REPLライフをもっと快適に
REPLライフをもっと快適に
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
ClojureではじめるSTM入門
ClojureではじめるSTM入門
Macros in Clojure
Macros in Clojure
Clojureによるバイトコードプログラミング
Clojureによるバイトコードプログラミング
プログラミング言語Clojureのニャンパスでの活用事例
1.
プログラミング言語Clojureの ニャンパスでの活用事例 JJUG CCC 2015
Spring 2015/04/11 @ ベルサール新宿グランド ニャンパス株式会社 太田 正悟
2.
自己紹介 ‣ 太田 正悟
(@athos0220) ‣ Clojureコントリビュータ ‣ 今年2月よりニャンパス所属 ‣ 2013年に某アニメ関連で話題になっていたニャン パスと交流をはじめる
3.
会社紹介 ‣ ニャンパス株式会社 ‣ 2010年設立 ‣
業務内容 ‣ Webサービス・アプリ開発 ‣ プロトタイピング(試作開発) ‣ コワーキングスペースHaLakeを運営
4.
アジェンダ ‣ Clojureの概要 ‣ Clojureを使う理由 ‣
Clojure活用事例 ‣ Clojureコミュニティに向けた取り組み
5.
Clojureの概要
6.
Clojureの概要 ‣ Lisp系言語 ‣ 関数型言語 ‣
JVM言語
7.
Clojureの概要: Lisp系言語 ‣ S式というLisp由来の独特のシンタックスをもつ ‣
言語がシンプルで覚えることが少ない ‣ マクロを使ってプログラマが言語を拡張できる(後述) (defn hello [name] (println (str “Hello ” name)))
8.
Clojureの概要: Lisp系言語 user=> (defn
f [x] (+ x 1)) #’user/f user=> (f 10) 11 user=> (defn f [x] (* x x)) #’user/f user=> (f 10) 100 REPL(Read-Eval-Print Loop)を 使ったインタラクティブな開発
9.
Clojureの概要: 関数型言語 ‣ 多くの値がイミュータブル(不変) ‣
ファーストクラスな関数 ‣ 遅延シーケンスで無限個の値も扱える (reduce (fn [a x] (+ a x)) (map (fn [x] (* x x)) (take-while (fn [x] (<= x 100)) (range))))
10.
Clojureの概要: 関数型言語 (->> (range) (take-while
#(<= % 100)) (map #(* % %)) (reduce +)) こうも書ける! ‣ 多くの値がイミュータブル ‣ ファーストクラスな関数 ‣ 遅延シーケンスで無限個の値も扱える
11.
Clojureの概要: JVM言語 ‣ Javaのオブジェクトを簡単に扱える ‣
無名クラスも簡単に作れる (String. “foo”) (.substring “foo” 1) Math/PI (Long/parseLong “42”) new String(“foo”) “foo”.substring(1) Math.PI Long.parseLong(“42”) Clojure Java
12.
Clojureの概要: JVM言語 ‣ Javaのオブジェクトを簡単に扱える ‣
無名クラスも簡単に作れる (reify Runnable (run [this] (println “foo”))) new Runnable() { public void run() { System.out.println(“foo”); } } Clojure Java
13.
Clojureを使う理由
14.
Clojureを使う理由 ‣ アジャイル開発との親和性 ‣ 十分な実用性 ‣
言語の自由度
15.
Clojureを使う理由: アジャイル開発との親和性 すばやいフィード バックループ すばやい データ構築 漸進的な設計 REPLによる! インタラクティブ開発 イミュータブルな! データ構造 後づけ可能な! ポリモーフィズム
16.
Clojureを使う理由: アジャイル開発との親和性 ‣ イミュータブルなマップ(辞書)でデータの表現を柔軟に ‣
設計に関する決定を後に遅らせることができる {:type :rectangle :width 30 :height 40} public class Rectangle extends Shape { int width, height; … } Clojure Java
17.
Clojureを使う理由: アジャイル開発との親和性 ‣ イミュータブルなマップ(辞書)でデータの表現を柔軟に ‣
設計に関する決定を後に遅らせることができる {:type :rectangle :width 30 :height 40} (defmulti area :type) (defmethod area :rectangle [shape] (* (:width shape) (:height shape))) public class Rectangle extends Shape { int width, height; … } Clojure Java ポリモーフィックな振る舞いは マルチメソッド等で後づけできる!
18.
Clojureを使う理由: 十分な実用性 十分な パフォーマンス 豊富なライブラリ 実用レベルの! エコシステム JVM上で動作 Javaとの! 相互運用性 Leiningen! Clojars, etc.
19.
Clojureを使う理由: 言語の自由度 実行時の プログラム変更 問題領域にあった 言語の定義 リロード機能! REPL, etc. マクロ
20.
Clojureを使う理由: 言語の自由度 マクロ ‣ プログラマが独自の構文を定義できる仕組み ‣
問題領域に合わせてClojureを拡張可能 (defmacro with-open [[name file] & body] `(let [~name ~file] (try ~@body (finally (.close ~name))))) (with-open [f (reader “foo”)] (write-to-file f)) (let [f (reader “foo”)] (try (write-to-file f) (finally (.close f)))) マクロの定義 展開
21.
Clojureを使う理由: 言語の自由度 マクロ! ライブラリ 静的 型チェック 非同期 プログラミング パターン マッチ 論理 プログラミング core.typed core.async core.match core.logic
22.
Clojure活用事例
23.
Clojure活用事例 ‣ baasday ‣ Lesson
Supporter
24.
25.
baasday ‣ MBaaS (Mobile
Backend as a Service) ‣ スマホアプリのバックエンド機能をクラウドサービスとして提供 ‣ 運用:2年 ‣ 利用者:のべ20万インストール ‣ スループット:150リクエスト/秒 Amazon SES Amazon SNS Amazon S3 Amazon ELB App (EC2) App (EC2) App (EC2) DB (EC2)
26.
Lesson Supporter ‣ 個人レッスン支援サービス ‣
簡易CMS・ブログ・予約管理機能等を提供 ‣ ボイストレーナー星野氏と共同で開発中 ‣ 近日公開予定
27.
Lesson Supporter CMSモデル ‣ CMSを構成するペー ジからなるマップ ‣
着手から3日でCMS モデルとページ描画 処理のコアが完成 ‣ 後にページテンプレ 毎のカスタム描画方 法をマルチメソッド で定義できるように {:description “太田のパソコン教室”, :_id “ohta-pc”, :name “ohta-pc”, :title “ようこそ太田のパソコン教室へ”, :pages [{:display-name “ホーム”, :name “intro”, :template “intro”, :context {:page-name “intro”, :content “”, :subtitle “よろしく”, :page-title “自己紹介”}} {:name “blog”, :template “blog”, :context {:blog-description nil}, :display-name “ブログ”} …… ]}
28.
Lesson Supporter user=> (import
'jp.webpay.webpay.WebPay) jp.webpay.webpay.WebPay user=> (def wp (WebPay. secret-key)) #'user/wp user=> (import 'jp.webpay.webpay.data.CardRequest) jp.webpay.webpay.data.CardRequest user=> (def req (.. (CardRequest.) (number number) (expMonth 3) (expYear 16) (cvc "123") (name "Shogo Ohta"))) #'user/req user=> (.. wp token createRequest (card req) execute) #<TokenResponse …> インタラクティブな APIの確認 ‣ WebPay APIによる クレジット決済 ‣ 初利用だったため、 REPLからAPIの使い 勝手を確認
29.
Clojureコミュニティ に向けた取り組み
30.
Clojureコミュニティに向けた取り組み ‣ OSS ‣ 勉強会 ‣
コワーキングスペースHaLake
31.
Clojureコミュニティに向けた取り組み: OSS clojournal (https://github.com/nyampass/clojournal) ‣
Clojureの日本語情報発信サイト (http://clojournal.com) clowpay (https://github.com/nyampass/clowpay) ‣ WebPay APIのClojureバインディング parabola (https://github.com/athos/parabola) ‣ Clojureチャットボットフレームワーク その他のリポジトリは https://github.com/nyampass/ から確認できます
32.
Clojureコミュニティに向けた取り組み: 勉強会 Tokyo.clj (渋谷) ‣
不定期開催。Clojure入門セッション、もくもく会。 Laketown.clj (HaLake@越谷レイクタウン) ‣ 月1開催。もくもく会。 テーマ特化勉強会 (gen-class勉強会/core.async勉強会/etc.) ‣ 特定の言語機能等にフォーカスした勉強会。
33.
ハンモック ‣ Rich Hickeyが提唱するハンモック駆動開発に由来。 Clojure割引 ‣
1日利用500円 (通常1000円)。 チェックインアプリ HaLake API ‣ OSSとして公開。 Clojureコミュニティに向けた取り組み: HaLake
34.
まとめ ‣ Clojureを使う理由 ‣ アジャイル開発との親和性 ‣
十分な実用性 ‣ 言語の自由度 ‣ 日本でもClojureコミュニティが徐々に活発化! ‣ さぁ、皆さんもClojureをはじめてみよう!!
Download now