SlideShare uma empresa Scribd logo
1 de 40
ota42y
2018/07/25
Shinjuku.rb #63
Rails上でのpub/sub
イベントハンドラの扱い
• ota42y
• サーバサイドエンジニア
• rubyとかrustとかgoとかC++とか
• Twitter、github → ota42y
• 最近はサーバレスしたりGPUで遊んだり
ElasticSerachしたり色々…
自己紹介
• 技術書典4でマイクロサービス本を出した
– https://ota42y.com/blog/2018/04/10/mi
croservices_yorozu_book/
– C94の1日目西め06aで再販した本を出します
自己紹介
イベントドリブンアーキテクチャ
イベントドリブンアーキテクチャ
• イベントベースで情報をやりとりするアーキテクチャ
• 送り手はイベントを起こすだけで受け手を知らない
• 受け手はイベントの監視だけで送り手を知らない
• 疎結合に組める
• 詳しくは過去の発表資料を…
• マイクロサービスにおける 非同期アーキテクチ
• https://www.slideshare.net/ota42y/ss-
80254350
• Rails DMの動画も公開されました
• https://www.youtube.com/watch?v=amsQa
PIajqs
イベントドリブンアーキテクチャ
• AWS SNS/SQSを利用したpub/subシステム
• 送り手はSNSにイベントを送る
• 事前に受け手はキュー(SQS)でSNSをsubscribe
SNS/SQSによるイベントドリブン
Lifelog Ranking
Point
AWS SNS
AWS SQS
• AWS SNS/SQSを利用したpub/subシステム
• 送り手はSNSにイベントを送る
• 事前に受け手はキュー(SQS)でSNSをsubscribe
• SNSはイベントをSQSにコピーして送ってくれる
• サーバのworkerがSQSを監視して中身を取り出す
SNS/SQSによるイベントドリブン
Lifelog Ranking
Point
AWS SNS
AWS SQS
• AWS SNS/SQSを利用したpub/subシステム
• 送り手はSNSにイベントを送る
• 事前に受け手はキュー(SQS)でSNSをsubscribe
• SNSはイベントをSQSにコピーして送ってくれる
• サーバのworkerがSQSを監視して中身を取り出す
• 今回はこの取り出す部分の話
SNS/SQSによるイベントドリブン
Lifelog Ranking
Point
AWS SNS
AWS SQS
外部イベントの処理フロー
• WorkerがSQSに入っているイベントを取って処理する
イベントドリブンアーキテクチャ
A MyServer
SNS SQS
Login
Event
• WorkerがSQSに入っているイベントを取って処理する
• キューに入るイベントの種類は一つではない
• 送り手は複数種類のイベントをpublishする
• 複数の送り手のイベントをsubscribeしている
イベントドリブンアーキテクチャ
A MyServer
SNS SQS
Login
Event
B
Buy
Event
Logout
Event
• イベントに対して適切に処理を分けないといけない
• 誰がどうやってそれを管理するか
• イベント事の違いをどこで吸収するか
• 交通整理をするのは誰か?という話
イベントドリブンアーキテクチャ
A MyServer
SNS SQS
Login
Event
B
Buy
Event
Logout
Event
?
• この処理フローはRails wayの外
• ActiveJobとかと違って外部から非同期データが来る
• Model層のような場所は共通化したい
• 既存のRails wayとどう整合性を合わせるか
イベントドリブンアーキテクチャ
A MyServer
SNS SQS
Login
Event
B
Buy
Event
Logout
Event
?
既存のレールを知る
HTTP Requestの処理フロー
• リクエストの処理フロー
• リクエストのパスとメソッドを取り出す
• routes.rbのルールに沿って解釈
HTTP Requestの処理フロー
UserControllershow user
Request
create post
Request
routes.rb
PostController
Model
Model
• リクエストの処理フロー
• リクエストのパスとメソッドを取り出す
• routes.rbのルールに沿って解釈
• 見つけたcontrollerを呼び出す
HTTP Requestの処理フロー
UserControllershow user
Request
create post
Request
routes.rb
PostController
Model
Model
• リクエストの処理フロー
• リクエストのパスとメソッドを取り出す
• routes.rbのルールに沿って解釈
• 見つけたcontrollerを呼び出す
• controllerはパラメータを見たりして処理をする
• 処理自体はmodel層とかが基本(のはず)
HTTP Requestの処理フロー
UserControllershow user
Request
create post
Request
routes.rb
PostController
show user
params Model
Model
create post
params
レールに合流する
非同期イベントの処理フロー
Login
Event
Buy
Event
• イベントの処理フローはリクエストの処理を真似できる
イベントの処理フロー
Model
Model
SQS
Login
Event
Buy
Event
• routes.rbがやっていたこと相当
• 取ってきたEventから種類を判定
• どういった処理を実行するかを決定する
イベントの処理フロー
?
?
routes.rbっぽい
何か
?
Model
Model
controllerっぽ
い何か
Login
Event
Buy
Event
• controllerがやっていたこと相当
• パラメータから必要なデータを取り出して実行
イベントの処理フロー
?
?
routes.rbっぽい
何か
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か
Login
Event
Buy
Event
• パラメータを取り出した先はRailsの普通のフロー
• Railsのレールに合流する
イベントの処理フロー
?
?
routes.rbっぽい
何か
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か ここはいつも通り
Login
Event
Buy
Event
• パラメータを取り出した先はRailsの普通のフロー
• Railsのレールに合流する
• 既存のメタファーを活用
• routes.rbとcontrollerがイベント用に形を変えた
イベントの処理フロー
?
?
routes.rbっぽい
何か
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か ここはいつも通り
イベント処理の実装
workerとhandler層
• イベントのプロトコル
• イベントのフォーマットを決める
• イベントのルーティング
• イベントに対応するHandlerを設定
• イベントを処理するHandler層
• controllerに相当するイメージ
イベント処理の実装
Login
Event
Buy
Event
?
?
routes.rbっぽい
何か
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か
• 送り手が自由すぎると受け手が対応するのがつらい
• HTTPだとパスとメソッドでcontrollerを決定できる
• パラメータも決められたところに設定する
• イベント処理では決まりがない…
• routes.rbの役割を誰がやるのか
ルーティングを解決する
この辺
• raising_dragon
• https://github.com/ota42y/rising_dragon
• イベントのルーティングを解決する役割
• shoryukenベースのSQSを見るワーカー機能
• イベント処理のプロトコルを共通化する
• イベント処理のルーティングをする
RisingDragon
• 送り一定のルールに沿ってイベントを送らせる
• イベントのtype、id、タイムスタンプを必須に
• イベント固有のデータをdataの中に
プロトコルを決める
送り手の自由にできる領域
• 送り一定のルールに沿ってイベントを送らせる
• イベントのtype、id、タイムスタンプを必須に
• イベント固有のデータをdataの中に
• 受け手の処理が楽に
• typeは必ずあることが保証される→自動で処理可能
• 受け手はdataだけ見れば良い
プロトコルを決める
送り手の自由にできる領域
• イベントにはtypeが必ず入る
• これを利用してどのクラスを呼び出すかを決める
• イベント名とHandler(後述)クラスを指定する
ルーティングを設定する
• gemで共通化
• RisingDragon
• 送り手と受け手に入れる
• 共通フォーマットは意識しなくていい
• イベント固有のデータだけ考える
ルーティングの解決まとめ
RisingDragon
Login
Event
Buy
Event
?
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か
• イベントにおけるcontrollerの役割
• 送られてきたデータを取り出す
Handler層
LoginHandler
BuyHandler
Handler
Login
Event
Buy
Event
login event
params Model
Model
buy event
params
RisingDragon
• eventのdataを見て処理する
• 必要なものはdataに全部入ってるはず
• typeでクラスが決まるのでそれは見なくていい
• controllerでpathは普通見ないし
Handler層
LoginHandler
BuyHandler
login event
params Model
Model
buy event
params
Handler
• eventとRailsのレールとの橋渡し役
• この層から先は通常のRailsのフローに乗せる
• Modelとかに処理をさせる
• renderしないcontrollerのような役割
• app/handler以下にファイルを置いてる
Handler層
LoginHandler
BuyHandler
login event
params Model
Model
buy event
params
Handler
まとめ
まとめ
• イベントドリブンアーキテクチャはRailsのレールの外
• Railsのレールにうまく合流したい
• routes.rbとcontrollerのメタファーを利用する
• controller層に相当するhandler層の提案
• eventとhandlerの対応付けを記述する
LoginHandler
BuyHandler
Handler
Login
Event
Buy
Event
login event
params Model
Model
buy event
params
ルーティング層
まとめ
• 送り手〜受け手のイベント形式を決める
• RisingDragon
• 送ってからhandlerまでの処理は自動で行われる
• Handlerの中だけを書けば良くなる
A
SNS SQS
Login
Event
B
Buy
Event
Logout
Event
LoginHandler
BuyHandler
Handler
RisingDragon

Mais conteúdo relacionado

Mais procurados

マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay都元ダイスケ Miyamoto
 
RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集akipii Oga
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法yoku0825
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話Shuji Yamada
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナーItsuki Kuroda
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexdItsuki Kuroda
 

Mais procurados (20)

マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
 
RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
大企業アジャイルの勘所(ver1.1) #アジャイルマネジメントセミナー
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd
 

Semelhante a Rails上でのpub/sub イベントハンドラの扱い

なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話ota42y
 
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話ota42y
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いota42y
 
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのかbootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのかota42y
 
goroutineはどうやって動いているのか
goroutineはどうやって動いているのかgoroutineはどうやって動いているのか
goroutineはどうやって動いているのかota42y
 
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点ota42y
 
Rails5クイックスタート
Rails5クイックスタートRails5クイックスタート
Rails5クイックスタートHirata Tomoko
 
個人開発 in フィリピン
個人開発 in フィリピン個人開発 in フィリピン
個人開発 in フィリピンdeeeki
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話R S
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Developmentaktsk
 
SNS 「github」で遊ぼう
SNS 「github」で遊ぼうSNS 「github」で遊ぼう
SNS 「github」で遊ぼうTomohiko Himura
 
ArduinoとMicrosoft AzureでIoTっぽいことをしてみた
ArduinoとMicrosoft AzureでIoTっぽいことをしてみたArduinoとMicrosoft AzureでIoTっぽいことをしてみた
ArduinoとMicrosoft AzureでIoTっぽいことをしてみたKaori Emi
 
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)Itsuki Sakitsu
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景Ryunosuke SATO
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018Yutaka Tachibana
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例Naoto Koshikawa
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係sady_nitro
 
初めてつくる Webアプリの開発戦略
初めてつくる Webアプリの開発戦略初めてつくる Webアプリの開発戦略
初めてつくる Webアプリの開発戦略Masato Koishi
 
Thin reports再び
Thin reports再びThin reports再び
Thin reports再びsy250
 

Semelhante a Rails上でのpub/sub イベントハンドラの扱い (20)

なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話
 
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのかbootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのか
 
goroutineはどうやって動いているのか
goroutineはどうやって動いているのかgoroutineはどうやって動いているのか
goroutineはどうやって動いているのか
 
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点
 
Rails5クイックスタート
Rails5クイックスタートRails5クイックスタート
Rails5クイックスタート
 
個人開発 in フィリピン
個人開発 in フィリピン個人開発 in フィリピン
個人開発 in フィリピン
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Development
 
Ruby with My Life
Ruby with My LifeRuby with My Life
Ruby with My Life
 
SNS 「github」で遊ぼう
SNS 「github」で遊ぼうSNS 「github」で遊ぼう
SNS 「github」で遊ぼう
 
ArduinoとMicrosoft AzureでIoTっぽいことをしてみた
ArduinoとMicrosoft AzureでIoTっぽいことをしてみたArduinoとMicrosoft AzureでIoTっぽいことをしてみた
ArduinoとMicrosoft AzureでIoTっぽいことをしてみた
 
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係
 
初めてつくる Webアプリの開発戦略
初めてつくる Webアプリの開発戦略初めてつくる Webアプリの開発戦略
初めてつくる Webアプリの開発戦略
 
Thin reports再び
Thin reports再びThin reports再び
Thin reports再び
 

Mais de ota42y

ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ota42y
 
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方ota42y
 
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説ota42y
 
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話ota42y
 
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守るota42y
 
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究HCI分野の紹介と最新研究
HCI分野の紹介と最新研究ota42y
 

Mais de ota42y (6)

ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
 
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方
 
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説
 
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
 
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る
 
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
 

Rails上でのpub/sub イベントハンドラの扱い

Notas do Editor

  1. この中に、マイクロサービスアーキテクチャを知ってる人どれくらいいますか? ありがとうございます、以外と少なくて資料作った会がありました…
  2. この中に、マイクロサービスアーキテクチャを知ってる人どれくらいいますか? ありがとうございます、以外と少なくて資料作った会がありました…