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
賢太郎 前多
PPTX, PDF
710 views
【LT】akka receive とScala Javaの違い
2017/3/21 アドテクスタジオ×Scala 勉強会 LT。 https://adtechstudio.connpass.com/event/50607/
Software
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 12
2
/ 12
3
/ 12
4
/ 12
5
/ 12
6
/ 12
7
/ 12
8
/ 12
9
/ 12
10
/ 12
11
/ 12
12
/ 12
More Related Content
PPTX
Akkaの翻訳みんなでやろう Let's translate akka doc
by
賢太郎 前多
PDF
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
PDF
akka-doc-ja
by
TIS Inc.
PPTX
Akka actorを何故使うのか?
by
Nyle Inc.(ナイル株式会社)
PDF
Akka-Streams in Production
by
Kazunobu Raita
PDF
Akka入門
by
Masashi (Jangsa) Kawaguchi
PDF
WebSocket+Akka(Remote)+Play 2.1 Java
by
Kazuhiro Hara
PDF
Akka meetup 2014_sep
by
masahitojp
Akkaの翻訳みんなでやろう Let's translate akka doc
by
賢太郎 前多
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
akka-doc-ja
by
TIS Inc.
Akka actorを何故使うのか?
by
Nyle Inc.(ナイル株式会社)
Akka-Streams in Production
by
Kazunobu Raita
Akka入門
by
Masashi (Jangsa) Kawaguchi
WebSocket+Akka(Remote)+Play 2.1 Java
by
Kazuhiro Hara
Akka meetup 2014_sep
by
masahitojp
What's hot
PDF
実践Akka
by
Huy Do
PDF
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
by
TanUkkii
PDF
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
PDF
Servlet と Future の関わり方 #scala_ks
by
Kazuhiro Sera
PDF
Real world android akka
by
Taisuke Oe
PDF
Scala警察のすすめ
by
takezoe
PDF
JavaからScalaへ
by
takezoe
PDF
Developing an Akka Edge6
by
saaaaaaki
PPTX
Developing an Akka Edge1-3
by
saaaaaaki
PDF
ScalaにまつわるNewsな話
by
Yosuke Mizutani
PPTX
Scala.jsはじめました!
by
K Kinzal
PPTX
Scala.jsはじめました?
by
K Kinzal
PDF
SIerでScalaを使うために私がしたこと
by
takezoe
PDF
ネタじゃないScala.js
by
takezoe
PDF
実戦Scala
by
Yuto Suzuki
PDF
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
by
Kazuhiro Sera
PDF
AWSオンリーで実現するIoTクラウド基盤
by
Godai Nakamura
PDF
Single Command Deployのための gradle-aws-plugin講座
by
都元ダイスケ Miyamoto
PDF
ScalaでAndroidアプリ開発
by
papamitra
PPTX
Developing an Akka Edge4-5
by
saaaaaaki
実践Akka
by
Huy Do
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
by
TanUkkii
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
Servlet と Future の関わり方 #scala_ks
by
Kazuhiro Sera
Real world android akka
by
Taisuke Oe
Scala警察のすすめ
by
takezoe
JavaからScalaへ
by
takezoe
Developing an Akka Edge6
by
saaaaaaki
Developing an Akka Edge1-3
by
saaaaaaki
ScalaにまつわるNewsな話
by
Yosuke Mizutani
Scala.jsはじめました!
by
K Kinzal
Scala.jsはじめました?
by
K Kinzal
SIerでScalaを使うために私がしたこと
by
takezoe
ネタじゃないScala.js
by
takezoe
実戦Scala
by
Yuto Suzuki
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
by
Kazuhiro Sera
AWSオンリーで実現するIoTクラウド基盤
by
Godai Nakamura
Single Command Deployのための gradle-aws-plugin講座
by
都元ダイスケ Miyamoto
ScalaでAndroidアプリ開発
by
papamitra
Developing an Akka Edge4-5
by
saaaaaaki
Viewers also liked
PPTX
明日から業務で使うScala
by
martin_lover_ca
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC
by
disc99_
PDF
ホットペッパービューティーアプリリプレイスとMVCP
by
Recruit Lifestyle Co., Ltd.
PPTX
ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016
by
Yota Ishida
PPTX
【講演資料】激変する自動車業界におけるクルマ屋の戦略
by
naoto kyo
PDF
リクルートにおける画像解析事例紹介
by
Recruit Technologies
PPTX
Architecture of Falcon, a new chat messaging backend system build on Scala
by
TanUkkii
PDF
Kotlinで関数拡張しちゃうぞ![修正版]
by
Shinichi Kozake
PDF
DSLの使い所
by
disc99_
PPT
Smart World
by
Azamat Abdoullaev
PDF
Akka stream
by
Masaki Toyoshima
PDF
Proxies are Awesome!
by
Brendan Eich
PPTX
Apache Spark チュートリアル
by
K Yamaguchi
PDF
Intelligent world
by
Azamat Abdoullaev
PDF
Prestoクエリログの保存/分析機能の構築 #yjdsnight
by
Yahoo!デベロッパーネットワーク
PDF
Presto in Yahoo! JAPAN #yjdsnight
by
Yahoo!デベロッパーネットワーク
PDF
AWS Black Belt Online Seminar Antipattern
by
Amazon Web Services Japan
PDF
AWS初心者向けWebinar 失敗例を成功に変える AWSアンチパターンのご紹介
by
Amazon Web Services Japan
PDF
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
by
Yahoo!デベロッパーネットワーク
PDF
Why Zsh is Cooler than Your Shell
by
jaguardesignstudio
明日から業務で使うScala
by
martin_lover_ca
マイクロサービスバックエンドAPIのためのRESTとgRPC
by
disc99_
ホットペッパービューティーアプリリプレイスとMVCP
by
Recruit Lifestyle Co., Ltd.
ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016
by
Yota Ishida
【講演資料】激変する自動車業界におけるクルマ屋の戦略
by
naoto kyo
リクルートにおける画像解析事例紹介
by
Recruit Technologies
Architecture of Falcon, a new chat messaging backend system build on Scala
by
TanUkkii
Kotlinで関数拡張しちゃうぞ![修正版]
by
Shinichi Kozake
DSLの使い所
by
disc99_
Smart World
by
Azamat Abdoullaev
Akka stream
by
Masaki Toyoshima
Proxies are Awesome!
by
Brendan Eich
Apache Spark チュートリアル
by
K Yamaguchi
Intelligent world
by
Azamat Abdoullaev
Prestoクエリログの保存/分析機能の構築 #yjdsnight
by
Yahoo!デベロッパーネットワーク
Presto in Yahoo! JAPAN #yjdsnight
by
Yahoo!デベロッパーネットワーク
AWS Black Belt Online Seminar Antipattern
by
Amazon Web Services Japan
AWS初心者向けWebinar 失敗例を成功に変える AWSアンチパターンのご紹介
by
Amazon Web Services Japan
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
by
Yahoo!デベロッパーネットワーク
Why Zsh is Cooler than Your Shell
by
jaguardesignstudio
【LT】akka receive とScala Javaの違い
1.
Akkaのreceiveと Scala・Javaの違い 前多賢太郎 @kencharos
2.
内容 自己紹介 Akka
の receive は何? 部分関数とは Akka (Java)のreceiveについて
3.
自己紹介 前多賢太郎 (@kencharos)
ウルシステムズ株式会社所属 Javaプログラマー 最近の仕事 Spring(boot)のアプリケーション構築・教育 Playframework(Java) + Cassandra 案件の技術コンサル 好きなAWSサービス: Lambda 仕事以外 Scala 独学中 akka-doc-jaに参加中(みなさんもぜひ) https://github.com/akka-ja/akka-doc-ja
4.
akka の receive
を見たとき 俺の知ってる 関数の定義と何か違う いきなり始まる case とパターンマッチ メッセージを処理する関数なのに引数は? 戻り値は? パターンマッチに該当しない場合の処理は? // Actor#receive def receive = { case "ping" => { sender ! "pong" } } // 普通の関数 def func(x:String) = { "Hello" + x }
5.
def receive の定義
receiveは Receive型の戻り値を返す引数なしの抽象メソッド Receive型は, PartialFunction[Any, Unit] 型のエイリアス つまり、 receiveの中身は、PartialFunction の定義 PartialFunction? def receive: Actor.Receive type Receive = PartialFunction[Any, Unit]
6.
PartialFunction(部分関数) とは? 特定の引数について任意の処理を行うオブジェクト
特定の引数と処理の組を、パターンマッチの一覧で定義 できる 通常の関数のように呼び出せるが、マッチしない引数だ とエラー def pfSample:PartialFunction[String, Unit] = { case "John" => println("hello Jhon") case "Tony" => println("Get out! Tony") } pfSample("Jhon") // "hello!" pfSample("Tony") // "get out!" pfSample("Michel") // 実行時エラー
7.
PartialFunctionの便利機能 マッチしない引数の確認やデフォルト処理を設定できる Akka
の場合、 applyOrElse で、receiveで処理できないメッ セージをunhandled メソッドで処理している unhandledを通して、アクターの終了検知やデッドレター送付など共通処 理を行っている if (pfSample.isDefinedAt("Michel")) { pfSample("Michel") } else { "strange!" } pfSample.applyOrElse("Michel", (name:String) => s"${name} is stranger!") protected[akka] def aroundReceive(receive: Actor.Receive, msg: Any): Unit = receive.applyOrElse(msg, unhandled)
8.
PartialFunctionであることを生かす PartialFunctionは合成できる 各アクターを横断して行うメッセージの処理を
traitなどで 定義して、各アクターのreceiveに合成できる 詳しくは↓ http://doc.akka.io/docs/akka/current/scala/actors.html#Extendi ng_Actors_using_PartialFunction_chaining trait CommonProcess { this: Actor => val greeting :Receive = { case "Greeting" => sender ! s"Hello! I am ${self.path.name}" } } class SomeActor extends Actor with CommonProcess{ def receive = greeting orElse { case "ping" => { sender ! "pong" } } }
9.
Java版だとどうなの?
10.
Java の場合 unhandledを自分で呼ぶ
Java(UntypedActor)の場合、unhandledの明示的な呼び出 しが必要 Scalaと同じように書けなくてつらい でもAkkaでunhandledを呼ばせるには、メッセージ判定と メッセージ処理の2つの抽象メソッドをほぼ同じ内容で定 義する必要がある @Override public void onReceive(Object message) throws Exception { if ((message instanceof String) && ((String)message).equals("Ping")) { getSender().tell("Pong", getSelf()); } else { unhandled(message); } }
11.
将来的には改善されるかも? lambda support
(experimental) で、パターンマッチ相当 の機能が提供されるかも http://doc.akka.io/docs/akka/current/java/lambda-actors.html
12.
まとめ Akka (Scala)
は Scala の文法や機能を駆使して、書き易 いAPI を提供している パターンマッチ、PartialFunction、Implicit parameter, traitなど Akka (Java) もがんばってはいるが、型推論とパターン マッチがないと書いていてつらい unhandledの明示も抜けを防ぐ仕組みが無いのでつらい 私見だがScala・Java を使い分けるなら次のような感じ 全面的に Akka を採用するアプリケーション => Scala 既存Javaシステムの一部にAkka を組み込む => Java
Editor's Notes
#11
Instanceof は割愛
Download