Scala超入門Abe Asami
14年12月14日日曜日
自己紹介Abe Asami “きの子” (フリーエンジニア)http://nocono.net/Twitter: @aa7th
主な仕事:Java(Androidアプリ開発,Play1)PHP(Yii2 Framework)
14年12月14日日曜日
とうとう
14年12月14日日曜日
とうとう
• Scalaのお仕事いただきました!
14年12月14日日曜日
とうとう
• Scalaのお仕事いただきました!
• Play2.3によるチーム開発
14年12月14日日曜日
とうとう
• Scalaのお仕事いただきました!
• Play2.3によるチーム開発
•がんばります
14年12月14日日曜日
今日の内容
14年12月14日日曜日
今日の内容
• Scalaとは?
14年12月14日日曜日
今日の内容
• Scalaとは?
•始め方、ツール
14年12月14日日曜日
今日の内容
• Scalaとは?
•始め方、ツール
•勉強に役立つ本やサイト
14年12月14日日曜日
今日の内容
• Scalaとは?
•始め方、ツール
•勉強に役立つ本やサイト
•コツ的な話 etc
14年12月14日日曜日
Scalaとは
14年12月14日日曜日
Scalaとは
• JVM上で動く言語
14年12月14日日曜日
Scalaとは
• JVM上で動く言語
•オブジェクト指向であり関数型
14年12月14日日曜日
Scalaとは
• JVM上で動く言語
•オブジェクト指向であり関数型
•静的型付け、型推論
14年12月14日日曜日
Scalaとは
• JVM上で動く言語
•オブジェクト指向であり関数型
•静的型付け、型推論
•メリット・・・コードが短い
14年12月14日日曜日
Scalaとは
• JVM上で動く言語
•オブジェクト指向であり関数型
•静的型付け、型推論
•メリット・・・コードが短い
•デメリット・・・コンパイルが遅い
14年12月14日日曜日
関数型言語とは
14年12月14日日曜日
関数型言語とは
•関数(function)を値として扱う言語
14年12月14日日曜日
関数型言語とは
•関数(function)を値として扱う言語
•「副作用」を極力避ける(Immutable)→ 変数(var)ではなく定数(val)を使う
14年12月14日日曜日
副作用がないと
14年12月14日日曜日
副作用がないと
•不具合が減る
14年12月14日日曜日
副作用がないと
•不具合が減る
•並行処理に強い
14年12月14日日曜日
副作用がないと
•不具合が減る
•並行処理に強い
•保守性が高い
14年12月14日日曜日
始め方
14年12月14日日曜日
始め方•必要なもの:JDK
14年12月14日日曜日
始め方•必要なもの:JDK
•方法1. Scalaをインストール
14年12月14日日曜日
始め方•必要なもの:JDK
•方法1. Scalaをインストール
• とりあえずREPLでいいから動かしたい人
14年12月14日日曜日
始め方•必要なもの:JDK
•方法1. Scalaをインストール
• とりあえずREPLでいいから動かしたい人
•方法2. Typesafe Activatorを使う
14年12月14日日曜日
始め方•必要なもの:JDK
•方法1. Scalaをインストール
• とりあえずREPLでいいから動かしたい人
•方法2. Typesafe Activatorを使う
• 何か動くプロジェクトを作ってみたい人
14年12月14日日曜日
始め方•必要なもの:JDK
•方法1. Scalaをインストール
• とりあえずREPLでいいから動かしたい人
•方法2. Typesafe Activatorを使う
• 何か動くプロジェクトを作ってみたい人
• 共に、公式サイトからDL or Homebrewで導入可能
14年12月14日日曜日
Typesafe Activator
14年12月14日日曜日
Typesafe Activator
• Typesafe社提供のアプリ開発ツール
14年12月14日日曜日
Typesafe Activator
• Typesafe社提供のアプリ開発ツール
•プロジェクトひな形生成
14年12月14日日曜日
Typesafe Activator
• Typesafe社提供のアプリ開発ツール
•プロジェクトひな形生成
• IDE
14年12月14日日曜日
Typesafe Activator
• Typesafe社提供のアプリ開発ツール
•プロジェクトひな形生成
• IDE
• activator uiでUI起動
14年12月14日日曜日
sbt
14年12月14日日曜日
sbt
•ビルドツール
14年12月14日日曜日
sbt
•ビルドツール
•コンパイル
14年12月14日日曜日
sbt
•ビルドツール
•コンパイル
•ライブラリ管理
14年12月14日日曜日
sbt
•ビルドツール
•コンパイル
•ライブラリ管理
•シンプルじゃないとか何とか散々な言われよう
14年12月14日日曜日
sbt
•ビルドツール
•コンパイル
•ライブラリ管理
•シンプルじゃないとか何とか散々な言われよう
• Activatorでプロジェクト作成できる
14年12月14日日曜日
IDE
14年12月14日日曜日
IDE
• IntelliJ IDEA
14年12月14日日曜日
IDE
• IntelliJ IDEA
• Scala IDE for Eclipse
14年12月14日日曜日
IDE
• IntelliJ IDEA
• Scala IDE for Eclipse
• Typesafe Activator
14年12月14日日曜日
本
14年12月14日日曜日
本
• Scalaスケーラブルプログラミング(通称:コップ本)
14年12月14日日曜日
本
• Scalaスケーラブルプログラミング(通称:コップ本)
• Scala逆引きレシピ(翔泳社)
14年12月14日日曜日
本
• Scalaスケーラブルプログラミング(通称:コップ本)
• Scala逆引きレシピ(翔泳社)
• Functional Programming scala (英語)
14年12月14日日曜日
動画
14年12月14日日曜日
動画
• Coursera.org(英語)
14年12月14日日曜日
動画
• Coursera.org(英語)
•丁寧なので英語が苦手でもぜひ
14年12月14日日曜日
動画
• Coursera.org(英語)
•丁寧なので英語が苦手でもぜひ
• 0.75倍速再生もできる
14年12月14日日曜日
動画
• Coursera.org(英語)
•丁寧なので英語が苦手でもぜひ
• 0.75倍速再生もできる
• ScalaMatsuri2014
14年12月14日日曜日
動画
• Coursera.org(英語)
•丁寧なので英語が苦手でもぜひ
• 0.75倍速再生もできる
• ScalaMatsuri2014
•ニコニコ動画で1日目のセッションが公開されている
14年12月14日日曜日
その他色々
14年12月14日日曜日
その他色々
•リンクここにまとめました
14年12月14日日曜日
その他色々
•リンクここにまとめました
•bit.ly/scala_kb
14年12月14日日曜日
ここからは「Scalaっぽいコードを書くには」
14年12月14日日曜日
まずはコレクション操作
14年12月14日日曜日
まずはコレクション操作
•絞り込みたいときはfilter、変換したいときはmap、etc,etc
14年12月14日日曜日
まずはコレクション操作
•絞り込みたいときはfilter、変換したいときはmap、etc,etc
•「この操作をしたい時はこれ」というコレクションの操作をまず覚える
14年12月14日日曜日
例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日日曜日
パターンマッチ
14年12月14日日曜日
パターンマッチ
• if/else if じゃなくてmatch文を使う
14年12月14日日曜日
パターンマッチ
• if/else if じゃなくてmatch文を使う
•型でマッチングできたりして便利
14年12月14日日曜日
nullだめ絶対!
14年12月14日日曜日
nullだめ絶対!
• Option型を使う
14年12月14日日曜日
nullだめ絶対!
• Option型を使う
• Some(x)とNone
14年12月14日日曜日
nullだめ絶対!
• Option型を使う
• Some(x)とNone
• get、getOrElse で値を取り出す
14年12月14日日曜日
nullだめ絶対!
• Option型を使う
• Some(x)とNone
• get、getOrElse で値を取り出す
•パターンマッチで値があるときと無い時の処理を書ける
14年12月14日日曜日
個人的な反省
14年12月14日日曜日
個人的な反省
•言語仕様をろくに理解していないくせに、コードを読むことに必死だった
14年12月14日日曜日
個人的な反省
•言語仕様をろくに理解していないくせに、コードを読むことに必死だった
• Playのサンプルコードを調べ調べ読んで、「難しい・・・」ってなってた
14年12月14日日曜日
個人的な反省
•言語仕様をろくに理解していないくせに、コードを読むことに必死だった
• Playのサンプルコードを調べ調べ読んで、「難しい・・・」ってなってた
•で、時間が空いたら忘れてた
14年12月14日日曜日
まとめ
14年12月14日日曜日
まとめ
•とりあえず動くものを書いてみよう
14年12月14日日曜日
まとめ
•とりあえず動くものを書いてみよう
•最初はダサいコードでもいいじゃない!
14年12月14日日曜日
まとめ
•とりあえず動くものを書いてみよう
•最初はダサいコードでもいいじゃない!
•手を動かして体で覚えることが大事
14年12月14日日曜日
まとめ
•とりあえず動くものを書いてみよう
•最初はダサいコードでもいいじゃない!
•手を動かして体で覚えることが大事
•というわけで、みんなどんどんScalaのコードを書きましょう!
14年12月14日日曜日
ご清聴ありがとうございました
14年12月14日日曜日