Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
sohta
PDF, PPTX
13,668 views
プログラミング言語Clojureのニャンパスでの活用事例
JJUG CCC 2015 Springでの発表資料です。
Software
◦
Read more
18
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 34
2
/ 34
3
/ 34
4
/ 34
5
/ 34
6
/ 34
7
/ 34
8
/ 34
9
/ 34
10
/ 34
11
/ 34
12
/ 34
13
/ 34
14
/ 34
15
/ 34
16
/ 34
17
/ 34
18
/ 34
19
/ 34
20
/ 34
21
/ 34
22
/ 34
23
/ 34
24
/ 34
25
/ 34
26
/ 34
27
/ 34
28
/ 34
29
/ 34
30
/ 34
31
/ 34
32
/ 34
33
/ 34
34
/ 34
More Related Content
PDF
Java EE から Quarkus による開発への移行について
by
Shigeru Tatsuta
PDF
What’s new in cloud run 2021 後期
by
Google Cloud Platform - Japan
PDF
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
by
de:code 2017
PDF
第18回しゃちほこオラクル俱楽部
by
オラクルエンジニア通信
PDF
"Simple Made Easy" Made Easy
by
Kent Ohashi
PDF
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
PPTX
データからアクションを自動化!Qlik Application Automationのご紹介
by
QlikPresalesJapan
PPTX
Metaspace
by
Yasumasa Suenaga
Java EE から Quarkus による開発への移行について
by
Shigeru Tatsuta
What’s new in cloud run 2021 後期
by
Google Cloud Platform - Japan
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
by
de:code 2017
第18回しゃちほこオラクル俱楽部
by
オラクルエンジニア通信
"Simple Made Easy" Made Easy
by
Kent Ohashi
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
データからアクションを自動化!Qlik Application Automationのご紹介
by
QlikPresalesJapan
Metaspace
by
Yasumasa Suenaga
What's hot
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
PDF
Dbts2013 特濃jpoug log_file_sync
by
Koji Shinkubo
PDF
TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析
by
QlikPresalesJapan
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
PDF
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
by
Google Cloud Platform - Japan
PDF
Form認証で学ぶSpring Security入門
by
Ryosuke Uchitate
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PDF
PostgreSQL - C言語によるユーザ定義関数の作り方
by
Satoshi Nagayasu
PPTX
詳説 Qlik Sense GeoOperations – Qlik Sense SaaSで地理データを計算する
by
QlikPresalesJapan
PPTX
Qlik Sense Extension開発 - Extensionの概要から実際の開発詳細まで
by
QlikPresalesJapan
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
by
yoku0825
PPTX
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
by
Andrew Wu
PDF
Azure Monitor Logで実現するモダンな管理手法
by
Takeshi Fukuhara
PDF
AnsibleによるInfrastructure as code入門
by
kk_Ataka
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PDF
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
by
Hironori Washizaki
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
PDF
[JJUG CCC 2021 Spring]Eclipse ユーザのための VSCode のススメ
by
Satoshi Takami
PDF
Dockerを支える技術
by
Etsuji Nakai
PDF
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
by
日本マイクロソフト株式会社
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
Dbts2013 特濃jpoug log_file_sync
by
Koji Shinkubo
TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析
by
QlikPresalesJapan
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
by
Google Cloud Platform - Japan
Form認証で学ぶSpring Security入門
by
Ryosuke Uchitate
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PostgreSQL - C言語によるユーザ定義関数の作り方
by
Satoshi Nagayasu
詳説 Qlik Sense GeoOperations – Qlik Sense SaaSで地理データを計算する
by
QlikPresalesJapan
Qlik Sense Extension開発 - Extensionの概要から実際の開発詳細まで
by
QlikPresalesJapan
MySQL 5.7にやられないためにおぼえておいてほしいこと
by
yoku0825
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
by
Andrew Wu
Azure Monitor Logで実現するモダンな管理手法
by
Takeshi Fukuhara
AnsibleによるInfrastructure as code入門
by
kk_Ataka
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
by
Hironori Washizaki
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
[JJUG CCC 2021 Spring]Eclipse ユーザのための VSCode のススメ
by
Satoshi Takami
Dockerを支える技術
by
Etsuji Nakai
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
by
日本マイクロソフト株式会社
Viewers also liked
PDF
Java web application testing
by
Tokuhiro Matsuno
PDF
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
by
Shinichi Kozake
PDF
開発を効率的に進めるられるまでの道程
by
Takao Sumitomo
PDF
JobStreamerではじめるJavaBatchのクラウド分散実行
by
Yoshitaka Kawashima
PDF
Droid kaigiプレゼン
by
Suguru Oho
PDF
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
by
kyon mm
PDF
データモデルは時空を越える
by
terahide
PDF
Android学ぶを君へ。生き抜くためのナレッジ共有
by
Shinobu Okano
PDF
DB設計でこだわりたい三つの要素
by
Takahiro YAMADA
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
PDF
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
by
Yuki Anzai
PDF
マテリアルデザインを用いたデザインリニューアル [フリル編]
by
YUKI YAMAGUCHI
PDF
SIerアーキテクト視点でみたKotlinの紹介
by
Shinichi Kozake
PDF
ClojureでElectronアプリを作ろう
by
Kazuhiro Hara
PDF
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
by
bitter_fox
Java web application testing
by
Tokuhiro Matsuno
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
by
Shinichi Kozake
開発を効率的に進めるられるまでの道程
by
Takao Sumitomo
JobStreamerではじめるJavaBatchのクラウド分散実行
by
Yoshitaka Kawashima
Droid kaigiプレゼン
by
Suguru Oho
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
by
kyon mm
データモデルは時空を越える
by
terahide
Android学ぶを君へ。生き抜くためのナレッジ共有
by
Shinobu Okano
DB設計でこだわりたい三つの要素
by
Takahiro YAMADA
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
by
Yuki Anzai
マテリアルデザインを用いたデザインリニューアル [フリル編]
by
YUKI YAMAGUCHI
SIerアーキテクト視点でみたKotlinの紹介
by
Shinichi Kozake
ClojureでElectronアプリを作ろう
by
Kazuhiro Hara
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
by
bitter_fox
Similar to プログラミング言語Clojureのニャンパスでの活用事例
PDF
From Java To Clojure
by
Kent Ohashi
PPTX
Ll tiger clojure
by
Toshiaki Maki
PDF
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
by
Yoshitaka Kawashima
PDF
キメるClojure
by
Yoshitaka Kawashima
PPTX
Clojureの世界と実際のWeb開発
by
Tsutomu Yano
PDF
Clojure
by
Uehara Junji
PDF
Everyday Life with clojure.spec
by
Kent Ohashi
PDF
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
by
Kent Ohashi
PPT
2008.10.18 L4u Tech Talk
by
mitamex4u
KEY
Clojureの発表など
by
Kikuta Go
PDF
Scala conf2013
by
Takafumi Ikeda
PDF
Rubyの御先祖CLUのお話(原本)
by
洋史 東平
KEY
関ジャバ JavaOne Tokyo 2012報告会
by
Koichi Sakata
PPT
第1回java実習(helloworld)2011
by
デジタルシープラーニング
PDF
clominal
by
Masamitsu Oikawa
PDF
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
by
Kent Ohashi
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PDF
夏だからJava再入門
by
Katsumi Honda
From Java To Clojure
by
Kent Ohashi
Ll tiger clojure
by
Toshiaki Maki
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
by
Yoshitaka Kawashima
キメるClojure
by
Yoshitaka Kawashima
Clojureの世界と実際のWeb開発
by
Tsutomu Yano
Clojure
by
Uehara Junji
Everyday Life with clojure.spec
by
Kent Ohashi
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
by
Kent Ohashi
2008.10.18 L4u Tech Talk
by
mitamex4u
Clojureの発表など
by
Kikuta Go
Scala conf2013
by
Takafumi Ikeda
Rubyの御先祖CLUのお話(原本)
by
洋史 東平
関ジャバ JavaOne Tokyo 2012報告会
by
Koichi Sakata
第1回java実習(helloworld)2011
by
デジタルシープラーニング
clominal
by
Masamitsu Oikawa
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
by
Kent Ohashi
BOF1-Scala02.pdf
by
Hiroshi Ono
BOF1-Scala02.pdf
by
Hiroshi Ono
BOF1-Scala02.pdf
by
Hiroshi Ono
夏だからJava再入門
by
Katsumi Honda
More from sohta
PDF
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
by
sohta
PDF
入門Transducers
by
sohta
PDF
Clojure Language Update (2015)
by
sohta
PDF
入門ClojureScript
by
sohta
PDF
入門core.async
by
sohta
PDF
REPLライフをもっと快適に
by
sohta
PDF
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
by
sohta
PDF
ClojureではじめるSTM入門
by
sohta
PDF
Macros in Clojure
by
sohta
PDF
Clojureによるバイトコードプログラミング
by
sohta
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
by
sohta
入門Transducers
by
sohta
Clojure Language Update (2015)
by
sohta
入門ClojureScript
by
sohta
入門core.async
by
sohta
REPLライフをもっと快適に
by
sohta
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
by
sohta
ClojureではじめるSTM入門
by
sohta
Macros in Clojure
by
sohta
Clojureによるバイトコードプログラミング
by
sohta
プログラミング言語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
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