Transcript
Page 1: Scala超入門 - 2014/12/13 Scala関西勉強会

Scala超入門Abe Asami

14年12月14日日曜日

Page 2: Scala超入門 - 2014/12/13 Scala関西勉強会

自己紹介Abe Asami “きの子” (フリーエンジニア)http://nocono.net/Twitter: @aa7th

主な仕事:Java(Androidアプリ開発,Play1)PHP(Yii2 Framework)

14年12月14日日曜日

Page 3: Scala超入門 - 2014/12/13 Scala関西勉強会

とうとう

14年12月14日日曜日

Page 4: Scala超入門 - 2014/12/13 Scala関西勉強会

とうとう

• Scalaのお仕事いただきました!

14年12月14日日曜日

Page 5: Scala超入門 - 2014/12/13 Scala関西勉強会

とうとう

• Scalaのお仕事いただきました!

• Play2.3によるチーム開発

14年12月14日日曜日

Page 6: Scala超入門 - 2014/12/13 Scala関西勉強会

とうとう

• Scalaのお仕事いただきました!

• Play2.3によるチーム開発

•がんばります

14年12月14日日曜日

Page 7: Scala超入門 - 2014/12/13 Scala関西勉強会

今日の内容

14年12月14日日曜日

Page 8: Scala超入門 - 2014/12/13 Scala関西勉強会

今日の内容

• Scalaとは?

14年12月14日日曜日

Page 9: Scala超入門 - 2014/12/13 Scala関西勉強会

今日の内容

• Scalaとは?

•始め方、ツール

14年12月14日日曜日

Page 10: Scala超入門 - 2014/12/13 Scala関西勉強会

今日の内容

• Scalaとは?

•始め方、ツール

•勉強に役立つ本やサイト

14年12月14日日曜日

Page 11: Scala超入門 - 2014/12/13 Scala関西勉強会

今日の内容

• Scalaとは?

•始め方、ツール

•勉強に役立つ本やサイト

•コツ的な話 etc

14年12月14日日曜日

Page 12: Scala超入門 - 2014/12/13 Scala関西勉強会

Scalaとは

14年12月14日日曜日

Page 13: Scala超入門 - 2014/12/13 Scala関西勉強会

Scalaとは

• JVM上で動く言語

14年12月14日日曜日

Page 14: Scala超入門 - 2014/12/13 Scala関西勉強会

Scalaとは

• JVM上で動く言語

•オブジェクト指向であり関数型

14年12月14日日曜日

Page 15: Scala超入門 - 2014/12/13 Scala関西勉強会

Scalaとは

• JVM上で動く言語

•オブジェクト指向であり関数型

•静的型付け、型推論

14年12月14日日曜日

Page 16: Scala超入門 - 2014/12/13 Scala関西勉強会

Scalaとは

• JVM上で動く言語

•オブジェクト指向であり関数型

•静的型付け、型推論

•メリット・・・コードが短い

14年12月14日日曜日

Page 17: Scala超入門 - 2014/12/13 Scala関西勉強会

Scalaとは

• JVM上で動く言語

•オブジェクト指向であり関数型

•静的型付け、型推論

•メリット・・・コードが短い

•デメリット・・・コンパイルが遅い

14年12月14日日曜日

Page 18: Scala超入門 - 2014/12/13 Scala関西勉強会

関数型言語とは

14年12月14日日曜日

Page 19: Scala超入門 - 2014/12/13 Scala関西勉強会

関数型言語とは

•関数(function)を値として扱う言語

14年12月14日日曜日

Page 20: Scala超入門 - 2014/12/13 Scala関西勉強会

関数型言語とは

•関数(function)を値として扱う言語

•「副作用」を極力避ける(Immutable)→ 変数(var)ではなく定数(val)を使う

14年12月14日日曜日

Page 21: Scala超入門 - 2014/12/13 Scala関西勉強会

副作用がないと

14年12月14日日曜日

Page 22: Scala超入門 - 2014/12/13 Scala関西勉強会

副作用がないと

•不具合が減る

14年12月14日日曜日

Page 23: Scala超入門 - 2014/12/13 Scala関西勉強会

副作用がないと

•不具合が減る

•並行処理に強い

14年12月14日日曜日

Page 24: Scala超入門 - 2014/12/13 Scala関西勉強会

副作用がないと

•不具合が減る

•並行処理に強い

•保守性が高い

14年12月14日日曜日

Page 25: Scala超入門 - 2014/12/13 Scala関西勉強会

始め方

14年12月14日日曜日

Page 26: Scala超入門 - 2014/12/13 Scala関西勉強会

始め方•必要なもの:JDK

14年12月14日日曜日

Page 27: Scala超入門 - 2014/12/13 Scala関西勉強会

始め方•必要なもの:JDK

•方法1. Scalaをインストール

14年12月14日日曜日

Page 28: Scala超入門 - 2014/12/13 Scala関西勉強会

始め方•必要なもの:JDK

•方法1. Scalaをインストール

• とりあえずREPLでいいから動かしたい人

14年12月14日日曜日

Page 29: Scala超入門 - 2014/12/13 Scala関西勉強会

始め方•必要なもの:JDK

•方法1. Scalaをインストール

• とりあえずREPLでいいから動かしたい人

•方法2. Typesafe Activatorを使う

14年12月14日日曜日

Page 30: Scala超入門 - 2014/12/13 Scala関西勉強会

始め方•必要なもの:JDK

•方法1. Scalaをインストール

• とりあえずREPLでいいから動かしたい人

•方法2. Typesafe Activatorを使う

• 何か動くプロジェクトを作ってみたい人

14年12月14日日曜日

Page 31: Scala超入門 - 2014/12/13 Scala関西勉強会

始め方•必要なもの:JDK

•方法1. Scalaをインストール

• とりあえずREPLでいいから動かしたい人

•方法2. Typesafe Activatorを使う

• 何か動くプロジェクトを作ってみたい人

• 共に、公式サイトからDL or Homebrewで導入可能

14年12月14日日曜日

Page 32: Scala超入門 - 2014/12/13 Scala関西勉強会

Typesafe Activator

14年12月14日日曜日

Page 33: Scala超入門 - 2014/12/13 Scala関西勉強会

Typesafe Activator

• Typesafe社提供のアプリ開発ツール

14年12月14日日曜日

Page 34: Scala超入門 - 2014/12/13 Scala関西勉強会

Typesafe Activator

• Typesafe社提供のアプリ開発ツール

•プロジェクトひな形生成

14年12月14日日曜日

Page 35: Scala超入門 - 2014/12/13 Scala関西勉強会

Typesafe Activator

• Typesafe社提供のアプリ開発ツール

•プロジェクトひな形生成

• IDE

14年12月14日日曜日

Page 36: Scala超入門 - 2014/12/13 Scala関西勉強会

Typesafe Activator

• Typesafe社提供のアプリ開発ツール

•プロジェクトひな形生成

• IDE

• activator uiでUI起動

14年12月14日日曜日

Page 37: Scala超入門 - 2014/12/13 Scala関西勉強会

sbt

14年12月14日日曜日

Page 38: Scala超入門 - 2014/12/13 Scala関西勉強会

sbt

•ビルドツール

14年12月14日日曜日

Page 39: Scala超入門 - 2014/12/13 Scala関西勉強会

sbt

•ビルドツール

•コンパイル

14年12月14日日曜日

Page 40: Scala超入門 - 2014/12/13 Scala関西勉強会

sbt

•ビルドツール

•コンパイル

•ライブラリ管理

14年12月14日日曜日

Page 41: Scala超入門 - 2014/12/13 Scala関西勉強会

sbt

•ビルドツール

•コンパイル

•ライブラリ管理

•シンプルじゃないとか何とか散々な言われよう

14年12月14日日曜日

Page 42: Scala超入門 - 2014/12/13 Scala関西勉強会

sbt

•ビルドツール

•コンパイル

•ライブラリ管理

•シンプルじゃないとか何とか散々な言われよう

• Activatorでプロジェクト作成できる

14年12月14日日曜日

Page 43: Scala超入門 - 2014/12/13 Scala関西勉強会

IDE

14年12月14日日曜日

Page 44: Scala超入門 - 2014/12/13 Scala関西勉強会

IDE

• IntelliJ IDEA

14年12月14日日曜日

Page 45: Scala超入門 - 2014/12/13 Scala関西勉強会

IDE

• IntelliJ IDEA

• Scala IDE for Eclipse

14年12月14日日曜日

Page 46: Scala超入門 - 2014/12/13 Scala関西勉強会

IDE

• IntelliJ IDEA

• Scala IDE for Eclipse

• Typesafe Activator

14年12月14日日曜日

Page 47: Scala超入門 - 2014/12/13 Scala関西勉強会

14年12月14日日曜日

Page 48: Scala超入門 - 2014/12/13 Scala関西勉強会

• Scalaスケーラブルプログラミング(通称:コップ本)

14年12月14日日曜日

Page 49: Scala超入門 - 2014/12/13 Scala関西勉強会

• Scalaスケーラブルプログラミング(通称:コップ本)

• Scala逆引きレシピ(翔泳社)

14年12月14日日曜日

Page 50: Scala超入門 - 2014/12/13 Scala関西勉強会

• Scalaスケーラブルプログラミング(通称:コップ本)

• Scala逆引きレシピ(翔泳社)

• Functional Programming scala (英語)

14年12月14日日曜日

Page 51: Scala超入門 - 2014/12/13 Scala関西勉強会

動画

14年12月14日日曜日

Page 52: Scala超入門 - 2014/12/13 Scala関西勉強会

動画

• Coursera.org(英語)

14年12月14日日曜日

Page 53: Scala超入門 - 2014/12/13 Scala関西勉強会

動画

• Coursera.org(英語)

•丁寧なので英語が苦手でもぜひ

14年12月14日日曜日

Page 54: Scala超入門 - 2014/12/13 Scala関西勉強会

動画

• Coursera.org(英語)

•丁寧なので英語が苦手でもぜひ

• 0.75倍速再生もできる

14年12月14日日曜日

Page 55: Scala超入門 - 2014/12/13 Scala関西勉強会

動画

• Coursera.org(英語)

•丁寧なので英語が苦手でもぜひ

• 0.75倍速再生もできる

• ScalaMatsuri2014

14年12月14日日曜日

Page 56: Scala超入門 - 2014/12/13 Scala関西勉強会

動画

• Coursera.org(英語)

•丁寧なので英語が苦手でもぜひ

• 0.75倍速再生もできる

• ScalaMatsuri2014

•ニコニコ動画で1日目のセッションが公開されている

14年12月14日日曜日

Page 57: Scala超入門 - 2014/12/13 Scala関西勉強会

その他色々

14年12月14日日曜日

Page 58: Scala超入門 - 2014/12/13 Scala関西勉強会

その他色々

•リンクここにまとめました

14年12月14日日曜日

Page 59: Scala超入門 - 2014/12/13 Scala関西勉強会

その他色々

•リンクここにまとめました

•bit.ly/scala_kb

14年12月14日日曜日

Page 60: Scala超入門 - 2014/12/13 Scala関西勉強会

ここからは「Scalaっぽいコードを書くには」

14年12月14日日曜日

Page 61: Scala超入門 - 2014/12/13 Scala関西勉強会

まずはコレクション操作

14年12月14日日曜日

Page 62: Scala超入門 - 2014/12/13 Scala関西勉強会

まずはコレクション操作

•絞り込みたいときはfilter、変換したいときはmap、etc,etc

14年12月14日日曜日

Page 63: Scala超入門 - 2014/12/13 Scala関西勉強会

まずはコレクション操作

•絞り込みたいときはfilter、変換したいときはmap、etc,etc

•「この操作をしたい時はこれ」というコレクションの操作をまず覚える

14年12月14日日曜日

Page 64: Scala超入門 - 2014/12/13 Scala関西勉強会

例val list = Range(1, 10).toList

// 奇数だけのリスト生成後、// 前0をつけた文字列に変換したリストを生成list.filter(_ % 2 != 0) .map(n => s"00$n")

List[String] = List(001, 003, 005, 007, 009)

【結果】

14年12月14日日曜日

Page 65: Scala超入門 - 2014/12/13 Scala関西勉強会

パターンマッチ

14年12月14日日曜日

Page 66: Scala超入門 - 2014/12/13 Scala関西勉強会

パターンマッチ

• if/else if じゃなくてmatch文を使う

14年12月14日日曜日

Page 67: Scala超入門 - 2014/12/13 Scala関西勉強会

パターンマッチ

• if/else if じゃなくてmatch文を使う

•型でマッチングできたりして便利

14年12月14日日曜日

Page 68: Scala超入門 - 2014/12/13 Scala関西勉強会

nullだめ絶対!

14年12月14日日曜日

Page 69: Scala超入門 - 2014/12/13 Scala関西勉強会

nullだめ絶対!

• Option型を使う

14年12月14日日曜日

Page 70: Scala超入門 - 2014/12/13 Scala関西勉強会

nullだめ絶対!

• Option型を使う

• Some(x)とNone

14年12月14日日曜日

Page 71: Scala超入門 - 2014/12/13 Scala関西勉強会

nullだめ絶対!

• Option型を使う

• Some(x)とNone

• get、getOrElse で値を取り出す

14年12月14日日曜日

Page 72: Scala超入門 - 2014/12/13 Scala関西勉強会

nullだめ絶対!

• Option型を使う

• Some(x)とNone

• get、getOrElse で値を取り出す

•パターンマッチで値があるときと無い時の処理を書ける

14年12月14日日曜日

Page 73: Scala超入門 - 2014/12/13 Scala関西勉強会

個人的な反省

14年12月14日日曜日

Page 74: Scala超入門 - 2014/12/13 Scala関西勉強会

個人的な反省

•言語仕様をろくに理解していないくせに、コードを読むことに必死だった

14年12月14日日曜日

Page 75: Scala超入門 - 2014/12/13 Scala関西勉強会

個人的な反省

•言語仕様をろくに理解していないくせに、コードを読むことに必死だった

• Playのサンプルコードを調べ調べ読んで、「難しい・・・」ってなってた

14年12月14日日曜日

Page 76: Scala超入門 - 2014/12/13 Scala関西勉強会

個人的な反省

•言語仕様をろくに理解していないくせに、コードを読むことに必死だった

• Playのサンプルコードを調べ調べ読んで、「難しい・・・」ってなってた

•で、時間が空いたら忘れてた

14年12月14日日曜日

Page 77: Scala超入門 - 2014/12/13 Scala関西勉強会

まとめ

14年12月14日日曜日

Page 78: Scala超入門 - 2014/12/13 Scala関西勉強会

まとめ

•とりあえず動くものを書いてみよう

14年12月14日日曜日

Page 79: Scala超入門 - 2014/12/13 Scala関西勉強会

まとめ

•とりあえず動くものを書いてみよう

•最初はダサいコードでもいいじゃない!

14年12月14日日曜日

Page 80: Scala超入門 - 2014/12/13 Scala関西勉強会

まとめ

•とりあえず動くものを書いてみよう

•最初はダサいコードでもいいじゃない!

•手を動かして体で覚えることが大事

14年12月14日日曜日

Page 81: Scala超入門 - 2014/12/13 Scala関西勉強会

まとめ

•とりあえず動くものを書いてみよう

•最初はダサいコードでもいいじゃない!

•手を動かして体で覚えることが大事

•というわけで、みんなどんどんScalaのコードを書きましょう!

14年12月14日日曜日

Page 82: Scala超入門 - 2014/12/13 Scala関西勉強会

ご清聴ありがとうございました

14年12月14日日曜日


Recommended