Soumettre la recherche
Mettre en ligne
プログラミング言語Clojureのニャンパスでの活用事例
•
18 j'aime
•
13,636 vues
S
sohta
Suivre
JJUG CCC 2015 Springでの発表資料です。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 34
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy
Kent Ohashi
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
SDL2の紹介
SDL2の紹介
nyaocat
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
lestrrat
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
Recommandé
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy
Kent Ohashi
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
SDL2の紹介
SDL2の紹介
nyaocat
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
lestrrat
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門
Ryosuke Uchitate
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のこと
Takafumi ONAKA
Ormとの付き合い方
Ormとの付き合い方
豊明 尾古
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
Shohei Okada
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデル
Yuta Hiroto
Kotlinアンチパターン
Kotlinアンチパターン
Recruit Lifestyle Co., Ltd.
例外設計における大罪
例外設計における大罪
Takuto Wada
RDRA DDD Agile
RDRA DDD Agile
増田 亨
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
キメるClojure
キメるClojure
Yoshitaka Kawashima
他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法
Takeshi Sugiyama
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
Java web application testing
Java web application testing
Tokuhiro Matsuno
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
Shinichi Kozake
Contenu connexe
Tendances
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門
Ryosuke Uchitate
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のこと
Takafumi ONAKA
Ormとの付き合い方
Ormとの付き合い方
豊明 尾古
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
Shohei Okada
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデル
Yuta Hiroto
Kotlinアンチパターン
Kotlinアンチパターン
Recruit Lifestyle Co., Ltd.
例外設計における大罪
例外設計における大罪
Takuto Wada
RDRA DDD Agile
RDRA DDD Agile
増田 亨
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
キメるClojure
キメるClojure
Yoshitaka Kawashima
他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法
Takeshi Sugiyama
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
Tendances
(20)
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のこと
Ormとの付き合い方
Ormとの付き合い方
Tackling Complexity
Tackling Complexity
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデル
Kotlinアンチパターン
Kotlinアンチパターン
例外設計における大罪
例外設計における大罪
RDRA DDD Agile
RDRA DDD Agile
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
キメるClojure
キメるClojure
他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
TLS, HTTP/2演習
TLS, HTTP/2演習
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
En vedette
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
En vedette
(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]
Similaire à プログラミング言語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
Similaire à プログラミング言語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)
Plus de sohta
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
sohta
入門Transducers
入門Transducers
sohta
Clojure Language Update (2015)
Clojure Language Update (2015)
sohta
入門core.async
入門core.async
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
Plus de sohta
(9)
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
入門Transducers
入門Transducers
Clojure Language Update (2015)
Clojure Language Update (2015)
入門core.async
入門core.async
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をはじめてみよう!!
Télécharger maintenant