Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Scala

Yukiyan
April 21, 2020

Introduction to Scala

2020/04/21 社内LT
Scala入門

Yukiyan

April 21, 2020
Tweet

More Decks by Yukiyan

Other Decks in Technology

Transcript

  1. Scala をやる動機 データエンジニアリングをしていると Scala や Java 製のプロダクトを利用することが多い • 大規模分散処理系のプロダクトで採用事例が多い ◦

    apache/spark ◦ apache/kafka ◦ apache/flink ◦ apache/beam • データ処理に便利 ◦ NULL 安全なエラーハンドリング (大規模データ処理で数時間待ってヌルポはきつい ) ◦ 型を生かした豊富なコレクションライブラリ ◦ 柔軟な非同期処理 • Java の資産を利用できる ◦ treasure-data/digdag, embulk/embulk のプラグインを Scala で書ける ◦ spotify/scio
  2. • jenv/jenv • scalaenv/scalaenv • Language Server ◦ scalameta/metals ◦

    R.I.P ENSIME IDE は必ずしも必要ではない REPL もちゃんとある (sbt console) 環境構築
  3. 面白かった機能 • ケースクラス • トレイト • 高階関数 • implicit parameter

    • パターンマッチ • Option, Either, Try • コレクション(for 内包表記)
  4. • ジェネリクス ◦ class Foo[A] • 変位指定 ◦ class Foo[+A]

    ◦ class Foo[-A] • 型境界 ◦ class Foo[A <: B] ◦ class Foo[A >: B] • Future ◦ andThen ◦ recover, recoverWith ◦ result, ready ...etc 次回予告