SlideShare a Scribd company logo
1 of 24
Scala初心者が
Playframework/Scalaで
ロックなWebアプリを作ったお話
~ 実戦での Scala ~ 6つの事例から知る Scala の勘所 ~ LT
2015年02月21日
@omiend
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
プロフィール
名前
@omiend
趣味
・映画
・ジョギング
・音楽
・ライブ
・娘(7ヶ月)の相手(NEW!)
育った環境
姉、姉、僕、妹、妹の5人兄弟
それでも僕は女心が分からない
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
大好きなあのアーティ
ストがこの時間に!
あのアーティストと時
間がかさなってる!
本当だ!
どっち観に行く?
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
お酒の力を借りながら作ってみた
ドリンク・ドリブン・デベロップメント
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
マイタイテ!(Beta)
http://mytite.herokuapp.com/
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
タイムテーブルを自由に
作成することができる
稼働環境
などなど
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
こんな感じ
①PUSH
②HOOK
③sbt test
テストエラー時
メール配信
④PUSH
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
全部ひっくるめて無料稼働!
•Heroku :1xDynos
•ClearDB :Ignite
•Codeship:100build/M
※無料枠
学習方法
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Scalaの学習方法
•まずはHelloWorld
•書籍で学習
•Webなどで
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Playの学習方法
JavaでCRUDな
アプリを実装し
Scalaで焼き直す
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
マイタイテの実装
Javaで実装し
Scalaで焼き直す
Scalaでしか出来ない
実装方法があれば
修正してみる
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
マイタイテの実装
•パターンマッチ
•immutableに
•Optionを使ったり
•関数を使ってみたり
(mapとかforeachとかcollectとかとか)
•などなど
辛かった事
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
辛かったと感じた事
学習コストが高かった
REPL?Tuple?implicit ?無名関数?カリー化?部分適用?ク
ロージャ?immutable?=>ってなに?->とはちがうの?
→ 一つずつ調べて動かして試してみるし
かない
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Anormを使った事
→ Slickで書きなおしてみた
ソースコード量が1/5くらいに
→ ScalikeJDBCも気になっている
辛かったと感じた事
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Javaライクに書けてしまう
→ Javaエンジニアが行き当たりばっ
たりで実装出来ちゃうのは、いつの間
にかアンチパターンにハマってるん
じゃないか?と、危険だと感じている
辛かったと感じた事
それでも
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
今でもScalaを
書いていて
楽しい!
と感じている
Scalaの学習は継続し
マイタイテ!は今後も
機能追加・改善を目指し
ともに少しずつ
成長して/させていきます!
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話
マイタイテ!(Beta)
http://mytite.herokuapp.com/
ご清聴
ありがとう
ございました
Scala初心者がPlayframework/ScalaでWebアプリを作ったお話

More Related Content

Viewers also liked

Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでHideaki Miyake
 
めんどくさくない Scala #kwkni_scala
めんどくさくない Scala #kwkni_scalaめんどくさくない Scala #kwkni_scala
めんどくさくない Scala #kwkni_scalaKazuhiro Sera
 
Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編takeuchi-tk
 
Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門yujiro_t
 
Scala勉強会
Scala勉強会Scala勉強会
Scala勉強会omi end
 
altJSの選び方
altJSの選び方altJSの選び方
altJSの選び方terurou
 
ネタじゃないScala.js
ネタじゃないScala.jsネタじゃないScala.js
ネタじゃないScala.jstakezoe
 
Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cythonfuzzysphere
 
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!	[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化! ichigotake .
 
2016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri20162016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri2016Yasuyuki Sugitani
 
No te comas la coma
No te comas la comaNo te comas la coma
No te comas la comaPablo Rico
 
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間Haruki Okada
 
Androidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradleAndroidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradleamayaw9
 
AndroidでScalaを使う際の問題点と対策
AndroidでScalaを使う際の問題点と対策AndroidでScalaを使う際の問題点と対策
AndroidでScalaを使う際の問題点と対策Mogi Isamu
 
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7Hitoshi Asai
 
ScalaプログラマのためのHaskell入門
ScalaプログラマのためのHaskell入門ScalaプログラマのためのHaskell入門
ScalaプログラマのためのHaskell入門Yasuaki Takebe
 
Hpcビジネスコンテンスト発表資料
Hpcビジネスコンテンスト発表資料Hpcビジネスコンテンスト発表資料
Hpcビジネスコンテンスト発表資料Hironori Nakajo
 
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発Mogi Isamu
 

Viewers also liked (20)

Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
 
めんどくさくない Scala #kwkni_scala
めんどくさくない Scala #kwkni_scalaめんどくさくない Scala #kwkni_scala
めんどくさくない Scala #kwkni_scala
 
Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編
 
Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門
 
Scala勉強会
Scala勉強会Scala勉強会
Scala勉強会
 
Full Stack Scala
Full Stack ScalaFull Stack Scala
Full Stack Scala
 
altJSの選び方
altJSの選び方altJSの選び方
altJSの選び方
 
ネタじゃないScala.js
ネタじゃないScala.jsネタじゃないScala.js
ネタじゃないScala.js
 
Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cython
 
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!	[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
 
2016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri20162016 Android × Scala @ScalaMatsuri2016
2016 Android × Scala @ScalaMatsuri2016
 
No te comas la coma
No te comas la comaNo te comas la coma
No te comas la coma
 
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間
 
Androidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradleAndroidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradle
 
AndroidでScalaを使う際の問題点と対策
AndroidでScalaを使う際の問題点と対策AndroidでScalaを使う際の問題点と対策
AndroidでScalaを使う際の問題点と対策
 
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
 
ScalaプログラマのためのHaskell入門
ScalaプログラマのためのHaskell入門ScalaプログラマのためのHaskell入門
ScalaプログラマのためのHaskell入門
 
Hpcビジネスコンテンスト発表資料
Hpcビジネスコンテンスト発表資料Hpcビジネスコンテンスト発表資料
Hpcビジネスコンテンスト発表資料
 
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
 
Pythonについて
PythonについてPythonについて
Pythonについて
 

Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話

Editor's Notes

  1. お疲れ様です、それでは Scala初心者がPlayframeworkとScalaでロックなWebアプリを作ったお話 をさせていだきます
  2. 初めまして、遠藤と申します。 業務では、なんかJavaっぽいものを書いている、妻と娘とお酒とロックを愛するしがないエンジニアです。 Scala歴は1年ちょっとのまだまだ初心者ですが、自分なりに普及させようと社内勉強会を主催したりとがんばってます 趣味は映画観賞や、音楽が大好きで、ライブにも良く行きます 特にロックフェスティバルというものが好きです
  3. ロックフェスティバルというのはですね、 複数のステージと多数のアーティストが出演してライブをするというようなもので ステージごとの演奏スケジュールを”タイムテーブル”と呼んだりします これは昨年行われたとある夏フェスのタイムテーブルです
  4. このタイムテーブルを友達と囲んで アレ見に行くコレ見に行くなんて感じでワイワイやるのが まあ一つのだいご味だったりするわけでして そんなタイムテーブルを好きなアーティストだけで自作して 友達と共有できたら楽しいだろうなと思って
  5. お酒を飲みながら作ってみました! ダブルでロックです はい
  6. ソレがコレです。 名前を「マイ タイムテーブル」、略して「マイタイテ!」と呼びます。
  7. 自由にタイムテーブルを作成することができますので このアプリで自分だけのオリジナルフェスを作って お友達とワイワイ遊んでもらえたらいいなーなんて思っています。
  8. 業務でとなると微妙かもしれませんが 学習・趣味がてら作ったアプリを動かす上では、十分でした。 Bitbucketさんにプッシュして、Codeshipさんにフックして、テストを回して OKだったらHerokuさんにプッシュして動作させています CodeshipさんとかHerokuさんの設定をちょっとしてあげるだけで あとは、僕がやることはBitbucketさんにプッシュするだけなのでコーディングに専念できます
  9. これで、今のところ無料で稼働させています まあ、非力なのですぐに落ちと思いますが、ご愛嬌デス
  10. まあ、あまり面白いものではないかもですが どうやってScalaとPlayを学習したかといった話です
  11. Scalaについて、まあ大したことはありませんね ハロワーやって、書籍を購入して1ページずつめくって試して あとはネットの情報を読み漁ってます コップ本はですね、えーっと、嫁稟議がなかなか通らなくて、ですね まだ読んでません ごめんなさい
  12. Playの方もだいたい一緒ですね Javaには慣れ親しんでいるので、まずはJavaでCRUDなアプリを作成してみました そこでつかんだ流れをもとに、Scalaで再度同じ処理を実装して行きました 手間ですけど、僕にとってはこれが一番分かりやすいとおもいました
  13. 基本的にここまでやれば、マイタイテの実装も出来るだろうということで、 同じように、手間ではありますが、初めはJavaで実装し、そこからScalaで焼きなおしてました あと、その中で、Scalaの特徴といいますが、Scalaでしか出来ない実装方法があれば、都度修正してみました 具体的ですが
  14. パターンマッチを使ったり Nullを徹底的に排除してみるためOptionを使ったり 関数を使ってみたり などなどといった具合です 修正した結果、微妙だったら戻したり
  15. やっぱり学習コストが高いと感じました 初めは分からないことだらけなのですが 一つずつ動かして覚えていくしかないですね
  16. 初めはデータベースのアクセス周りにAnormを使ってたのですが 分かりやすいのは良いのですが、コード量がすごく多くなってメンテナンスが大変でした なので、Slickに載せ替えてみました コード量で言うと1/5くらいになって、良い感じです あと、ScalikeJDBCも気になっています
  17. これが一番つらいです Javaに慣れてるので、もしかしたら知らないうちにScalaのアンチパターンに陥ってるんじゃないか?って思ってます もちろんコレが正解!ってのは無いと思ってるので、いっぱい書いて覚えていくしかないんでしょうかね
  18. Javaエンジニアからしてみると、Scalaの書き方ってすごくトリッキーに見えて、その実とてもスマートといいますか 「こういう書き方もあるのか!」と気づくのが面白いです 初めて1年ちょっととかになるのですが、今でもScalaを書いていて楽しいと感じます
  19. とまあ、こういった感じで、今後も機能追加・改善を目指し少しずつ成長させていきます。
  20. 最後に ロックを聴きつつロックなお酒飲みながら作ったものですので大したものではありませんが 気になる方が居れば、是非一度のぞいてみてください!
  21. ご清聴ありがとうございました。