ScalaMatsuri 2016
概要
ScalaMatsuri 2016に参加した感想です。
DAY 1
Refactoring in Scala
僕のスライドこちらです。スクリーンが見づらい場合はお手元でご確認ください https://t.co/MtTi7m7DE5 #ScalaMatsuri #sm_a
— がくぞ (@gakuzzzz) January 30, 2016
- Tagged Type便利そう。
- IsoやPrismの概念、関数型っぽい。
- 確かにLong型よりもUserId型(Value Type)を定義すると分かりやすかったりbugの埋め込みを減らせる気もするけれども、それが原因でDBとの境界に気を使ってコード量を増やしたりパフォーマンスに気を使ったする箇所を増やしたりするのトレードオフだなって感じだった。
なぜリアクティブは重要か
本日の資料です。毎度ながら詰め込み過ぎなのでバンバン流していきます…。ぜひお手元で見ながらお聞き下さい。 https://t.co/anE0sH8mFc #ScalaMatsuri #sm_a
— Yuta Okamoto (@okapies) January 30, 2016
- okapiesさんのスライドわかりやすい。
- Reactiveなシステムって文脈をProgramming model, Runtime Engine, Architectureに分けて説明したの良かった。
- Reactiveなシステムの設計の概要とそこにおけるApache Dataflowのポジションがクリアーになったのが良かった。これから標準化がどう進むのか見ものだ。
- 分散処理系はまだまだ発展の余地があってとても話を聞いていて楽しい。
- WebサービスのオーケストレーションにもReactiveなシステムの適応余地があるのでは?って話の詳細聞こうと思っていたけど忘れてた。
- この発表聞いていたおかげでTypesafeメンバーのパネルディスカッションの話も分かりやすくなったと思う。
猫という考え方
「猫という考え方」 の発表資料です #ScalaMatsuri #sm_c - https://t.co/LWC5f6Xhqq
— eugene yokota (@eed3si9n_ja) January 30, 2016
- トークの最初にHardとSoftの話半分くらいしますと言っていたように、環境を含めたCatsの概要を理解するのに良かった。
- 「softwareは真空状態にあるものではない」
- Scalaで関数型で行うための障壁を取り除くのがCatsの目標。それは技術的な複雑さ、職場で未知への恐怖、社会的な障壁。 長期的で協力的なコミュニティを促進していく。
- スライド中に猫が箱に頭突っ込んでいる画像が頻出するのウケた。
- 最初に聞いたとき、型を指定しないことで実装が制限させるところがよくわからなかった。
@satoshihirose Intには値があるから値を元に分岐できるけど、値がなければ分岐できないのです。(関数型としてはキャストは考えないので、型がわからないと同じ型を返す実装はそのまま返すしかないです。)
— かず(原材料に小麦粉を含む) (@kazzna) January 30, 2016
- Constraints Liberate, Liberties Constrainが印象的。制限と自由の話、Typesafeの人が好んで使っていた。
バッチを Akka Streams で再実装したら100倍速くなった話
13:40〜の講演資料はこちらです! | バッチを Akka Streams で再実装したら100倍速くなった話 https://t.co/Dc9VPKXWF1 #ScalaMatsuri #sm_a
— Negoro Kazuki (@negokaz) January 30, 2016
- TISとTypesafeの関係知らなかった。
- レガシーなバッチ処理をAkka Streamsで置き換えたら295倍になったとのこと。
- これ別にAkka Streamsじゃなくても100倍とかにはなっていたんじゃないかという気はするけれどまあご愛嬌。
ScalaコードはJVMでどのように表現されているのか
#ScalaMatsuri 2016 1/30(土) 14:30 - 14:45 「ScalaコードはJVMでどのように表現されているのか」で使用したスライドを公開しました!https://t.co/yJvz4EhAqF
— じゅくちょー Koichi Sakata (@jyukutyo) 2016, 1月 30
- javapの話。
- バイトコード読んだ経験特になかったのでまあ勉強になった。
- こんな使い方するとのこと。他にどんなとき読みたくなるんだろうか。パフォーマンスとか気にするとき?
Scala使いは皆、javapにも習熟するものと思っていたけど違うようだ。例えばSparkのnon-serializable系のエラーの解決には、javapでコード確認して$outerに紛れ込んでいるオブジェクトを見つけるなどが必要 #ScalaMatsuri
— Taro L. Saito (@taroleo) January 30, 2016
レジリエンスが無ければ、他は無いも同じ
Here is the full 1 h version of my #ScalaMatsuri talk today (without translation) /cc @momotas210 https://t.co/NRbrKXVjuM
— Jonas Bonér (@jboner) January 30, 2016
- TypesafeのCTOのトークが今回一番印象深かった。システム論っぽい感じ。思想的。
- ドメイン知識がシステムそのものなんだろうなって感じ。
- レジリエンスは設計方針。
- Actorとベンディングマシーンの例わかりやすかった。(よく使われる例なのだろうか?)
- 造船時の防水隔壁パターンの話。タイタニックは障害のカスケーディングの典型例。事故の原因は故障した部品ではなく、部品どうしの関係性にある。
- システムのレジリエンスをどうやって実現するかって話。actorごとにboundaryを設けて、障害の伝搬を防ぐ。threadでもmachineでも良い。
- トークの最初と最後にロッキーのテーマを流してたけど好きなのかな。
The Zen of Akka
Published my slides for the #zen of #akka talk at #ScalaMatsuri, どぞ: https://t.co/lE8it9l2hx
— Konrad Malawski (@ktosopl) January 31, 2016
- Zen。味があるトークだった。
- Akkaのロゴを山水画の山に透過させて描いていたのウケたんだけど、ロゴの由来だったりするの???
- Actorは1つの責務に特化させるべし。他と強調して動くべし。
- Errorはビジネスロジックの問題。Failureはインフラの問題。
- Akka Clusterの話も一般的な問題の話っぽくて面白かった。
- AkkaはFrameworkではなくToolkit。適切に使え。
- Constraints Liberate, Liberties Constrain(制限は私達を自由にする。自由は私達を制限する)
- 元ネタ
- Happy HAkking, Community!
DAY 2
Kafka Tuning
#ScalaMatsuri #sm_b 資料ですhttps://t.co/rQuUaTLGZj
— Kenji Yoshida (@xuwei_k) January 31, 2016
"Apache Kafkaを使ったマイクロサービス基盤"
- ドワンゴの社内マイクロサービス基盤?ではAt Least Once。Exactory Onceや順序保証はなし。
- RabbitMQやめた理由。そこまでスケールを意識していない設計になっている?
- 既存のクライアント(Reactive-kafkaとか)は要件を満たさず使っていない。
- 通信は独自のバイナリプロトコル。httpアダプタを自作。既存のhttpアダプタは無いの?コンフルエントが出しているけれど、機能少ないという判断で使うの辞めた。
- kafka 0.8当時consumerのjarが作りかけなのにmaven centralにpublishされていた…?(ガクブル)
- コードの辛みと運用の設定値チューニングの辛み。ブログとかMLとか読み込んだとのこと。
- 最後の質問でクラウドサービスは検討しなかったの?って聞いたら、オンプレあるししなかったって言われた。ですよね。
Scalaz入門
- よしださんともみあげさんとがくぞさんのハンズオン?パネルディスカッション?
- 最初はEitherとかFolderbleとかValidation
- Scalazは道具だから目的になるなって話でとりあえず釘をさしていた。
- FP in Scalaの第一章は素晴らしいのでそれだけでも読みましょうとのこと。
- 関数型プログラミングではサブタイピングによるポリモーフィズムを避けようって話があるので、OOPと組み合わせるとimplicitがバッティングすることがあったりもするとのこと。
- 参考
リアクティブシステム入門
Typesafe Reactive Platformで作るReactive System入門https://t.co/ukCt8ltzdX
— にわタコ (@niwatako) January 31, 2016
#ScalaMatsuri #sm_c
- 昨日のJonas氏のトークを日本語で要約した感じ。Reactive Platformのコンポーネントのその中での役割をちょっと具体的に説明している。
- デモ。ソーラーファームを運営しているお客様。一万枚のパネルの発電状況をモニタ。故障検知。1msも無駄にしたくない。リアルタイムで。MQTT, Akka, Play, WebSocket。
- TISはSIでもTypesafe Reactive Platformを適用出来ないか頑張っているとのこと。すばらし。
Typesafeの人にリアクティブについて聞こう/Reactive adoption with Typesafe members
- Typesafeの四人が登壇して、質問に答える形式。
- 質問:金融とかクリティカルなとこではどうなの?
金融業界ではReactiveSystemという概念が出る前からそのような仕組みが作られていた #ScalaMatsuri #sm_a
— にわタコ (@niwatako) January 31, 2016
#ScalaMatsuri 分散トランザクションを求められるが、実際は金融ではそうではないと。各金融機関間でメッセージのやり取りをして決済をするので、実は非常にReativeに向く。
— Kimura Sotaro (@kimutansk) January 31, 2016
#ScalaMatsuri システム全体として重複を除去できれば問題ないと。そういう考えは面白い。トランザクションで思考停止していた感があります。
— Kimura Sotaro (@kimutansk) January 31, 2016
- 質問:GoogleもDataflowとか標準化しようとしているけれどどう戦ってくの?
#ScalaMatsuri GoogleのDataflowとどう伍する?>GoogleのDataflowとSparkと補完的な立ち位置にある。Akka Streamの本質は適切なBack Pressure。サポートチケットの大半はロード超過
— Kimura Sotaro (@kimutansk) January 31, 2016
- okapiesさんのReactive Streamに関する質問とスライド使ったファシリテーション素晴らしかった。
- これ期待
@huntchr Thanks for participating the panel discussion! I'm looking forward to blog posts about "reactive database" about ES #scalamatsuri
— Yuta Okamoto (@okapies) 2016, 1月 31
- 録画見てちゃんと理解したい。
Scala.js コンパイル・パイプライン
- どうやってScalaのコードをJSに理解させるコードに置き換えているかの講義だった。
- 後半はよくわからなかった。
- 同じ感想。いきいきと話す人だった。
今回の #ScalaMatsuri の一番大きい収穫は、Scala.jsの開発者は相当本気で、やっぱりProduction readyだったということがわかったことですね。
— はちさん (@armorik83) January 31, 2016
パネルディスカッション:Scala社内教育
- Scalaは色んなレベルの人が色々な書き方が出来るので、その人の背景とかレベルに応じた教育方針がそれぞれあって面白かった。
- 一日目にドワンゴの新人研修資料が公開された。
- hatenaの新人研修資料は最初の年に海外の秋採用の新人を使ってdebugしたとのこと。 github.com
大学教育とScala
- 最近から弊社にインターンシップに来始めた学生が発表していたので顔出してみた。
「大学教育とScala」の発表スライドです https://t.co/fmIAJkTfCu #ScalaMatsuri
— みっちょん (@3tty0n) 2016, 1月 31
Scala 転職・年収
- 各社の年収状況
ScalaMatsuri来場者の年収分布(左端列が海外) #ScalaMatsuri #sm_h pic.twitter.com/9ZKPAwqp1r
— りあくてぃぶ (@nyamngo) January 31, 2016
全体の感想とまとめ
Typesafe
- Typesafeの方々のトークを直に聞けたのがとても良かった。
- またeed3si9nさんにTypesafeの概要とかの話を聞けたのも良かった。
運営
- 一日目の最初に技術カンファレンスの行動規範についてののビデオが流れたけれどもとても良く出来ていた。
技術カンファレンスの行動規範の講義始まったいた。 pic.twitter.com/FB4rKjbGVE
— さとしお (@satoshihirose) January 30, 2016