adtech studio

Scala Days 2015 in San Francisco【3日目】

By sangwon

Scala ScalaDays

いよいよカンファレンスの最終日です。

今日のKeynoteではNetflix社のDianneさんからTechnical Leadershipの話がありました。

Netflix社内開発文化からTechnical Leaderとしてどんなことが必要なのかという話でした。

IMG_0837

そのあとは昨日と同じく各自セッションに参加したので、その中でいくつかセッションを紹介します。

1. Some Things Never Change: Immutable Data in the Real World

タイトル 通りにImmutable Dataの説明といくつかのfunctional data structureの説明でした。(Linked, Tree, Trivial, Binary)

Beginnerレベルに分類されていてImmutable Dataとは何かと、その利点の話で初心者には分かりやすい話でしたが、その中でもデータ構造からHeapとGCがどう関係するのかを説明があり、非常に良いセッションでした。

IMG_0840

2. Delimited dependently-typed monadic checked exceptions in Scala (slide)

IOやjson parsing等のプログラミングの共通的なタスクのAPIを提供するRaptureライブラリの作者のJon Pretty(@propensive)氏によるセッション。

Raptureライブラリで補強している Exception Handling やErrorの収集などの内容や実装についての話でした。

modesという概念でexception handling を行い、例えば import rapture.core.modes.returnOption._ すると json.as[String] が正常時は Some[String], 例外時にはNoneにハンドリングされ、import rapture.core.modes.returnEither._ では正常時にRight[String], 例外時にはLeft[DataGetException]にハンドリングされます。

実装の肝は wildcard import を使用していることで、各モードで定義されている同じ名前のimplicitを同時に使おうとした時にコンパイルエラーがでるようになっています。

scalazのValidationやScalaticのOr等で実現されるError収集は、tri-state typeのReturnという型を定義し、正常時のAnswer、予測している失敗時のリストを持つErrata, 予想外の例外をハンドリングするUnexpectedの3状態でError収集と予想外の例外もハンドリングすることができます。

Exception Handlingの手法としてみても、ライブラリの実装内容としても興味深い内容でした。

20150318101440

3. Reasonable RPC with Remotely

発表者はVerizonの中の人二人(一人はscalazのコミッター)

内容はfinagle, thrift, akka, http/REST方式のmessage passing方法のメリット・デメリットを説明しながらRemotelyの説明、宣伝をする感じでしたが途中途中にさすがscalazのコミッターだけあってFPな話がちりばめられていて面白かったです。

Remotelyはnetty4 + scodec (これも発表者が作った こちらは別の人でした)でできていてspray-io + http/jsonよりもかなり早いみたいです。

ただまだbetaなのですぐに使えるわけではないですがマイクロサービス構成などにするときの選択肢として面白いと感じましたので今後キャッチアップしていこうと思いました。

IMG_0844

ランチタイムには、Typesafe社のJohn Mayerhoferさん、Eugene Yokota(@eed3si9n)さんのお誘いで近くのレストランでランチをご一緒しました!

アドテクスタジオでも、なかなか Typesafe Subscription を活用できていないので、有効に活用する方法を伺いました。

Typesafe社としては、よりカスタマーがサブスクリプションを有効活用出来るよう以下のようなサポートを用意する予定とのことでした。

  • サブスクリプション契約が現在の特定の人を対象とするプランから、期間やチームを対象とするなど選べるプランが増える。
  • Typesafe社の新製品や新機能について、カスタマーに対してWebinarを開く。
  • Typesafe社製品(Scala含む)を使ったカスタマーの製品に関して、認定ビルド形式をとり、個別のサポート/パッチ提供を行う。

また、Typesafe社とDatabricks社のパートナー契約により、認定ビルド製品にSparkも追加されるようになったとのこと。

Typesafe社としてはScalaの開発効率向上についてカスタマーの手助けをしたいとのことで、今後アドテクスタジオでもより活用していきたいですね。

20150318094515

(Johnさん、Yokotaさんと)

 

明日から2日間Scala, Akka, Play等のアンカンファレンスとトレーニングが予定されていますが、僕らは日本に帰国します。

今回のScalaDaysの資料や動画は後からアップされるので、気になった方は是非そちらも確認してみてください。

20150318095605