狠狠撸

狠狠撸Share a Scribd company logo
入门肠辞谤别.补蝉测苍肠
core.async勉強会
2015/4/19@HaLake
@athos0220
アジェンダ
core.asyncとは
コアコンセプト
基本的な础笔滨の使い方
ちょっと进んだトピック
肠辞谤别.补蝉测苍肠とは?
肠辞谤别.补蝉测苍肠とは?
非同期プログラミング用ライブラリ
CSPライクなチャネル通信をベースとしている
Go言語のgoroutineにインスパイアされたgoブ
ロックを提供
コアコンセプト
チャネル
並行に動くタスク間で値を受け渡す通信路
producer channel consumer
チャネル
並行に動くタスク間で値を受け渡す通信路
producer channel consumer
チャネル
並行に動くタスク間で値を受け渡す通信路
producer channel consumer
チャネル
並行に動くタスク間で値を受け渡す通信路
producer consumer
実際にはバッファを持ったキュー
チャネル
並行に動くタスク間で値を受け渡す通信路
producer consumer
実際にはバッファを持ったキュー
チャネル
並行に動くタスク間で値を受け渡す通信路
producer consumer
実際にはバッファを持ったキュー
チャネル
並行に動くタスク間で値を受け渡す通信路
producer consumer
実際にはバッファを持ったキュー
チャネル
並行に動くタスク間で値を受け渡す通信路
producer consumer
実際にはバッファを持ったキュー
バッファがいっぱいだったら?
チャネル
並行に動くタスク間で値を受け渡す通信路
producer consumer
実際にはバッファを持ったキュー
バッファがいっぱいだったら? バッファが空だったら?
協調スレッド(IOCスレッド)
以下のような場合に制御が別のスレッドに切り替わる
値を受信しようとしたときにバッファが空
値を送信しようとしたときにバッファがいっぱい
IOC = Inversion of Control
(go
(while true
(let [v (<! ch)]
(println v))))
(go
(loop [i 0]
(>! ch i)
(recur (inc i))))
協調スレッド(IOCスレッド)
以下のような場合に制御が別のスレッドに切り替わる
値を受信しようとしたときにバッファが空
値を送信しようとしたときにバッファがいっぱい
IOC = Inversion of Control
(go
(while true
(let [v (<! ch)]
(println v))))
(go
(loop [i 0]
(>! ch i)
(recur (inc i))))
上記の場合には??が実行されずに制御が切り替わる(パーク)
協調スレッド(IOCスレッド)
グリーンスレッド(ネイティブスレッドでない)ので生成の
コストが低い
シングルスレッドの場合でも使える(ClojureScriptでも!)
native thread native thread native thread
IOCthread
IOCthread
IOCthread
IOCthread
IOCthread
IOCthread
IOCthread
IOCthread
IOCthread
基本的な础笔滨の使い方
チャネル生成と送受信
チャネル生成:chan
送信:>!, >!!
受信:<!, <!!
(let [ch (chan 2)]
(>!! ch 0)
(>!! ch 1)
[(<!! ch) (<!! ch)])
;=> [0 1]
チャネル生成と送受信
チャネル生成:chan
送信:>!, >!!
受信:<!, <!!
(let [ch (chan 2)]
(>!! ch 0)
(>!! ch 1)
[(<!! ch) (<!! ch)])
;=> [0 1]
バッファのサイズを指定
チャネル生成と送受信
ブロッキング ノンブロッキング
送信 >!!
バッファが一杯ならブロック
>!
バッファが一杯ならパーク
受信 <!!
バッファが空ならブロック
<!
バッファが空ならパーク
チャネル生成と送受信
ブロッキング ノンブロッキング
送信 >!!
バッファが一杯ならブロック
>!
バッファが一杯ならパーク
受信 <!!
バッファが空ならブロック
<!
バッファが空ならパーク
後述のgoマクロ内でのみ使用可
goマクロ
協調スレッドで処理を実行する
(let [ch (chan 2)]
(go (while true
(let [v (<! ch)]
(println “received” v))))
(>!! ch “hi”)
(>!! ch “there”))
;; received hi
;; received there
timeout
(let [t (timeout 100)
begin (System/currentTimeMillis)]
(<!! t)
(println “Waited”
(- (System/currentTimeMillis)
begin)))
;; Waited 100
タイムアウト用のチャネルを生成する
alts!
一度に複数のチャネルから待ち受ける
(let [c1 (chan)
c2 (chan)]
(go (while true
(let [[v ch] (alts! [c1 c2])]
(println “received" v))))
(go (>! c1 "hi"))
(go (>! c2 "there")))
;; received hi
;; received there
alts!
一度に複数のチャネルから待ち受ける
(let [c1 (chan)
c2 (chan)]
(go (while true
(let [[v ch] (alts! [c1 c2])]
(println “received" v))))
(go (>! c1 "hi"))
(go (>! c2 "there")))
;; received hi
;; received there
待ち受けるチャネル
alts!
一度に複数のチャネルから待ち受ける
(let [c1 (chan)
c2 (chan)]
(go (while true
(let [[v ch] (alts! [c1 c2])]
(println “received" v))))
(go (>! c1 "hi"))
(go (>! c2 "there")))
;; received hi
;; received there
待ち受けるチャネル
受信した値と受信元のチャネルが返る
alts! + timeout
受信を待ち受ける時間にタイムアウトを設定
(go
(let [c (chan)
begin (System/currentTimeMillis)]
(alts! [c (timeout 100)])
(println "Gave up after”
(- (System/currentTimeMillis)
begin)))
バッファいろいろ
buffer
一杯になったらパーク or ブロック
dropping-buffer
一杯になったら追加しようとした値をドロップ
sliding-buffer
一杯になったら最初に追加した値をドロップ
ちょっと进んだトピック
ちょっと进んだトピック
チャネル間の連携
高レベルAPI
deprecated API vs transducers
チャネル間の連携
pipe
mult/tap
pub/sub mix/admix
値を振り分ける“トピック”を
あらかじめ指定しておく
高レベルAPI
チャネルによる値の送受信をClojure標準のシー
ケンス処理にみなしたAPI
内部でgoマクロを利用してチャネル間での値の
受け渡しを勝手にやってくれる
高レベルAPIを組み合わせることでgoマクロを
使った低レベルな記述をする機会を減らせる
高レベルAPI
その他、into, merge, reduce, take 等が用意
されている
(defn split [p ch]
(let [tc (chan), fc (chan)]
(go (loop []
(let [v (<! ch)]
(if (nil? v)
(do (close! tc) (close! fc))
(when (>! (if (p v) tc fc) v)
(recur))))))
[tc fc]))
c.c.a/splitの定義(一部簡略化)
deprecated API vs transducers
高レベルAPIで提供されるような、チャネルか
ら得られる値を加工したいケースは多い
channel ??? channel
deprecated API vs transducers
core.asyncではチャネル用のmapや?lterも提
供していた
(let [ch (to-chan (range))]
[(<!! ch) (<!! ch) (<!! ch)])
;=> [0 1 2]
(let [ch (->> (to-chan (range))
(map< inc)
(map< #(* % %)))]
[(<!! ch) (<!! ch) (<!! ch)])
;=> [1 4 9]
deprecated API vs transducers
Clojure 1.7以降ではtransducerを使って同様の処理が書ける
チャネル生成時にtransducerを指定するとチャネルから取得
できる値はtransducerを適用した結果の値になる
(let [xform (comp (map inc)
(map #(* % %)))
ch (pipe (to-chan (range))
(chan 1 xform))]
[(<!! ch) (<!! ch) (<!! ch)])
;=> [1 4 9]
transducer
まとめ
core.asyncはチャネルベースの非同期プログラ
ミング用ライブラリ
goマクロを使うことで協調スレッドが利用でき
ClojureScriptでも並行に動くタスクを記述可能

More Related Content

What's hot (20)

中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami
?
别尘蝉肠谤颈辫迟别苍で颁/颁++プログラムを飞别产ブラウザから使うまでの难所攻略
别尘蝉肠谤颈辫迟别苍で颁/颁++プログラムを飞别产ブラウザから使うまでの难所攻略别尘蝉肠谤颈辫迟别苍で颁/颁++プログラムを飞别产ブラウザから使うまでの难所攻略
别尘蝉肠谤颈辫迟别苍で颁/颁++プログラムを飞别产ブラウザから使うまでの难所攻略
祐司 伊藤
?
ソフトウェア开発における『知の高速道路』
ソフトウェア开発における『知の高速道路』ソフトウェア开発における『知の高速道路』
ソフトウェア开発における『知の高速道路』
Yoshitaka Kawashima
?
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
?
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
KageShiron
?
现场で役に立たない蝉耻诲辞の使い方
现场で役に立たない蝉耻诲辞の使い方现场で役に立たない蝉耻诲辞の使い方
现场で役に立たない蝉耻诲辞の使い方
(^-^) togakushi
?
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
?
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
?
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
?
ブラック公司から学ぶ惭痴颁モデル
ブラック公司から学ぶ惭痴颁モデルブラック公司から学ぶ惭痴颁モデル
ブラック公司から学ぶ惭痴颁モデル
Yuta Hiroto
?
惭补惫别苍の真実とウソ
惭补惫别苍の真実とウソ惭补惫别苍の真実とウソ
惭补惫别苍の真実とウソ
Yoshitaka Kawashima
?
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
Kouji Matsui
?
5分で分かる驳颈迟の谤别蹿蝉辫别肠
5分で分かる驳颈迟の谤别蹿蝉辫别肠5分で分かる驳颈迟の谤别蹿蝉辫别肠
5分で分かる驳颈迟の谤别蹿蝉辫别肠
ikdysfm
?
奥别产础蝉蝉别尘产濒测向け多倍长演算の実装
奥别产础蝉蝉别尘产濒测向け多倍长演算の実装奥别产础蝉蝉别尘产濒测向け多倍长演算の実装
奥别产础蝉蝉别尘产濒测向け多倍长演算の実装
MITSUNARI Shigeo
?
顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~
顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~
顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~
Masahito Zembutsu
?
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
?
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
?
イミュータブルデータモデルの极意
イミュータブルデータモデルの极意イミュータブルデータモデルの极意
イミュータブルデータモデルの极意
Yoshitaka Kawashima
?
イベント駆动プログラミングと滨/翱多重化
イベント駆动プログラミングと滨/翱多重化イベント駆动プログラミングと滨/翱多重化
イベント駆动プログラミングと滨/翱多重化
Gosuke Miyashita
?
惭测厂蚕尝から笔辞蝉迟驳谤别厂蚕尝へのマイグレーションのハマリ所
惭测厂蚕尝から笔辞蝉迟驳谤别厂蚕尝へのマイグレーションのハマリ所惭测厂蚕尝から笔辞蝉迟驳谤别厂蚕尝へのマイグレーションのハマリ所
惭测厂蚕尝から笔辞蝉迟驳谤别厂蚕尝へのマイグレーションのハマリ所
Makoto Kaga
?
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami
?
别尘蝉肠谤颈辫迟别苍で颁/颁++プログラムを飞别产ブラウザから使うまでの难所攻略
别尘蝉肠谤颈辫迟别苍で颁/颁++プログラムを飞别产ブラウザから使うまでの难所攻略别尘蝉肠谤颈辫迟别苍で颁/颁++プログラムを飞别产ブラウザから使うまでの难所攻略
别尘蝉肠谤颈辫迟别苍で颁/颁++プログラムを飞别产ブラウザから使うまでの难所攻略
祐司 伊藤
?
ソフトウェア开発における『知の高速道路』
ソフトウェア开発における『知の高速道路』ソフトウェア开発における『知の高速道路』
ソフトウェア开発における『知の高速道路』
Yoshitaka Kawashima
?
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
?
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
KageShiron
?
现场で役に立たない蝉耻诲辞の使い方
现场で役に立たない蝉耻诲辞の使い方现场で役に立たない蝉耻诲辞の使い方
现场で役に立たない蝉耻诲辞の使い方
(^-^) togakushi
?
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
?
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
?
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
?
ブラック公司から学ぶ惭痴颁モデル
ブラック公司から学ぶ惭痴颁モデルブラック公司から学ぶ惭痴颁モデル
ブラック公司から学ぶ惭痴颁モデル
Yuta Hiroto
?
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
Kouji Matsui
?
5分で分かる驳颈迟の谤别蹿蝉辫别肠
5分で分かる驳颈迟の谤别蹿蝉辫别肠5分で分かる驳颈迟の谤别蹿蝉辫别肠
5分で分かる驳颈迟の谤别蹿蝉辫别肠
ikdysfm
?
奥别产础蝉蝉别尘产濒测向け多倍长演算の実装
奥别产础蝉蝉别尘产濒测向け多倍长演算の実装奥别产础蝉蝉别尘产濒测向け多倍长演算の実装
奥别产础蝉蝉别尘产濒测向け多倍长演算の実装
MITSUNARI Shigeo
?
顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~
顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~
顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~
Masahito Zembutsu
?
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
?
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
?
イミュータブルデータモデルの极意
イミュータブルデータモデルの极意イミュータブルデータモデルの极意
イミュータブルデータモデルの极意
Yoshitaka Kawashima
?
イベント駆动プログラミングと滨/翱多重化
イベント駆动プログラミングと滨/翱多重化イベント駆动プログラミングと滨/翱多重化
イベント駆动プログラミングと滨/翱多重化
Gosuke Miyashita
?
惭测厂蚕尝から笔辞蝉迟驳谤别厂蚕尝へのマイグレーションのハマリ所
惭测厂蚕尝から笔辞蝉迟驳谤别厂蚕尝へのマイグレーションのハマリ所惭测厂蚕尝から笔辞蝉迟驳谤别厂蚕尝へのマイグレーションのハマリ所
惭测厂蚕尝から笔辞蝉迟驳谤别厂蚕尝へのマイグレーションのハマリ所
Makoto Kaga
?

Viewers also liked (20)

言语设计者が意味论を书くときに考えていたこと
言语设计者が意味论を书くときに考えていたこと言语设计者が意味论を书くときに考えていたこと
言语设计者が意味论を书くときに考えていたこと
Taku Miyakawa
?
碍辞迟濒颈苍闯厂って正直どうなん
碍辞迟濒颈苍闯厂って正直どうなん碍辞迟濒颈苍闯厂って正直どうなん
碍辞迟濒颈苍闯厂って正直どうなん
Hiroshi Kikuchi
?
Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)
Logico
?
闯惫尘言语と闯补惫补、切っても切れないその関係
闯惫尘言语と闯补惫补、切っても切れないその関係闯惫尘言语と闯补惫补、切っても切れないその関係
闯惫尘言语と闯补惫补、切っても切れないその関係
yy yank
?
クラウド、クラウドというけれど闯补惫补のシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれど闯补惫补のシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれど闯补惫补のシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれど闯补惫补のシステムにとってクラウドってメリットあるの?
Takakiyo Tanaka
?
Graph Algorithms Part 1
Graph Algorithms Part 1Graph Algorithms Part 1
Graph Algorithms Part 1
Taku Miyakawa
?
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
Takakiyo Tanaka
?
2017spring jjug ccc_f2
2017spring jjug ccc_f22017spring jjug ccc_f2
2017spring jjug ccc_f2
Kazuhiro Wada
?
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
Kosuke Kida
?
Arachne Unweaved (JP)
Arachne Unweaved (JP)Arachne Unweaved (JP)
Arachne Unweaved (JP)
Ikuru Kanuma
?
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMVMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
?
鲍-狈贰齿罢学生インターン、过激な闯补惫补の学び方と过激な要求
鲍-狈贰齿罢学生インターン、过激な闯补惫补の学び方と过激な要求鲍-狈贰齿罢学生インターン、过激な闯补惫补の学び方と过激な要求
鲍-狈贰齿罢学生インターン、过激な闯补惫补の学び方と过激な要求
hajime funaki
?
Java libraries you can't afford to miss
Java libraries you can't afford to missJava libraries you can't afford to miss
Java libraries you can't afford to miss
Andres Almiray
?
闯补惫补8移行は怖くない~エンタープライズ案件での闯补惫补8移行事例~
闯补惫补8移行は怖くない~エンタープライズ案件での闯补惫补8移行事例~闯补惫补8移行は怖くない~エンタープライズ案件での闯补惫补8移行事例~
闯补惫补8移行は怖くない~エンタープライズ案件での闯补惫补8移行事例~
Hiroyuki Ohnaka
?
Jjug ccc
Jjug cccJjug ccc
Jjug ccc
Tanaka Yuichi
?
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
?
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
?
Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)
Logico
?
Introduction of Project Jigsaw
Introduction of Project JigsawIntroduction of Project Jigsaw
Introduction of Project Jigsaw
Yuichi Sakuraba
?
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
驰补丑辞辞!デベロッパーネットワーク
?
言语设计者が意味论を书くときに考えていたこと
言语设计者が意味论を书くときに考えていたこと言语设计者が意味论を书くときに考えていたこと
言语设计者が意味论を书くときに考えていたこと
Taku Miyakawa
?
碍辞迟濒颈苍闯厂って正直どうなん
碍辞迟濒颈苍闯厂って正直どうなん碍辞迟濒颈苍闯厂って正直どうなん
碍辞迟濒颈苍闯厂って正直どうなん
Hiroshi Kikuchi
?
Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)
Logico
?
闯惫尘言语と闯补惫补、切っても切れないその関係
闯惫尘言语と闯补惫补、切っても切れないその関係闯惫尘言语と闯补惫补、切っても切れないその関係
闯惫尘言语と闯补惫补、切っても切れないその関係
yy yank
?
クラウド、クラウドというけれど闯补惫补のシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれど闯补惫补のシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれど闯补惫补のシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれど闯补惫补のシステムにとってクラウドってメリットあるの?
Takakiyo Tanaka
?
Graph Algorithms Part 1
Graph Algorithms Part 1Graph Algorithms Part 1
Graph Algorithms Part 1
Taku Miyakawa
?
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
Takakiyo Tanaka
?
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
Kosuke Kida
?
Arachne Unweaved (JP)
Arachne Unweaved (JP)Arachne Unweaved (JP)
Arachne Unweaved (JP)
Ikuru Kanuma
?
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMVMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
?
鲍-狈贰齿罢学生インターン、过激な闯补惫补の学び方と过激な要求
鲍-狈贰齿罢学生インターン、过激な闯补惫补の学び方と过激な要求鲍-狈贰齿罢学生インターン、过激な闯补惫补の学び方と过激な要求
鲍-狈贰齿罢学生インターン、过激な闯补惫补の学び方と过激な要求
hajime funaki
?
Java libraries you can't afford to miss
Java libraries you can't afford to missJava libraries you can't afford to miss
Java libraries you can't afford to miss
Andres Almiray
?
闯补惫补8移行は怖くない~エンタープライズ案件での闯补惫补8移行事例~
闯补惫补8移行は怖くない~エンタープライズ案件での闯补惫补8移行事例~闯补惫补8移行は怖くない~エンタープライズ案件での闯补惫补8移行事例~
闯补惫补8移行は怖くない~エンタープライズ案件での闯补惫补8移行事例~
Hiroyuki Ohnaka
?
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
?
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
?
Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)
Logico
?
Introduction of Project Jigsaw
Introduction of Project JigsawIntroduction of Project Jigsaw
Introduction of Project Jigsaw
Yuichi Sakuraba
?

More from sohta (9)

颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
sohta
?
Clojure Language Update (2015)
Clojure Language Update (2015)Clojure Language Update (2015)
Clojure Language Update (2015)
sohta
?
入门颁濒辞箩耻谤别厂肠谤颈辫迟
入门颁濒辞箩耻谤别厂肠谤颈辫迟入门颁濒辞箩耻谤别厂肠谤颈辫迟
入门颁濒辞箩耻谤别厂肠谤颈辫迟
sohta
?
プログラミング言语颁濒辞箩耻谤别のニャンパスでの活用事例
プログラミング言语颁濒辞箩耻谤别のニャンパスでの活用事例プログラミング言语颁濒辞箩耻谤别のニャンパスでの活用事例
プログラミング言语颁濒辞箩耻谤别のニャンパスでの活用事例
sohta
?
搁贰笔尝ライフをもっと快适に
搁贰笔尝ライフをもっと快适に搁贰笔尝ライフをもっと快适に
搁贰笔尝ライフをもっと快适に
sohta
?
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターgenuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
sohta
?
颁濒辞箩耻谤别ではじめる厂罢惭入门
颁濒辞箩耻谤别ではじめる厂罢惭入门颁濒辞箩耻谤别ではじめる厂罢惭入门
颁濒辞箩耻谤别ではじめる厂罢惭入门
sohta
?
Macros in Clojure
Macros in ClojureMacros in Clojure
Macros in Clojure
sohta
?
颁濒辞箩耻谤别によるバイトコードプログラミング
颁濒辞箩耻谤别によるバイトコードプログラミング颁濒辞箩耻谤别によるバイトコードプログラミング
颁濒辞箩耻谤别によるバイトコードプログラミング
sohta
?
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
sohta
?
Clojure Language Update (2015)
Clojure Language Update (2015)Clojure Language Update (2015)
Clojure Language Update (2015)
sohta
?
入门颁濒辞箩耻谤别厂肠谤颈辫迟
入门颁濒辞箩耻谤别厂肠谤颈辫迟入门颁濒辞箩耻谤别厂肠谤颈辫迟
入门颁濒辞箩耻谤别厂肠谤颈辫迟
sohta
?
プログラミング言语颁濒辞箩耻谤别のニャンパスでの活用事例
プログラミング言语颁濒辞箩耻谤别のニャンパスでの活用事例プログラミング言语颁濒辞箩耻谤别のニャンパスでの活用事例
プログラミング言语颁濒辞箩耻谤别のニャンパスでの活用事例
sohta
?
搁贰笔尝ライフをもっと快适に
搁贰笔尝ライフをもっと快适に搁贰笔尝ライフをもっと快适に
搁贰笔尝ライフをもっと快适に
sohta
?
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターgenuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
sohta
?
颁濒辞箩耻谤别ではじめる厂罢惭入门
颁濒辞箩耻谤别ではじめる厂罢惭入门颁濒辞箩耻谤别ではじめる厂罢惭入门
颁濒辞箩耻谤别ではじめる厂罢惭入门
sohta
?
Macros in Clojure
Macros in ClojureMacros in Clojure
Macros in Clojure
sohta
?
颁濒辞箩耻谤别によるバイトコードプログラミング
颁濒辞箩耻谤别によるバイトコードプログラミング颁濒辞箩耻谤别によるバイトコードプログラミング
颁濒辞箩耻谤别によるバイトコードプログラミング
sohta
?

入门肠辞谤别.补蝉测苍肠