新宿Scala座2014 3月号スライド
-
Upload
cosmo0920 -
Category
Technology
-
view
1.610 -
download
6
Transcript of 新宿Scala座2014 3月号スライド
![Page 1: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/1.jpg)
Scalaを書く時にはまったこと@cosmo__
![Page 2: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/2.jpg)
誰HN: コスモ, cosmo
仕事はRubyだったりAction Script3だったり。
趣味では割とHaskell、最近Scala書いてる
いわゆる最近の人(?)風な関数型erの一人
Twitter: @cosmo__
Blog: http://cosmo0920.wordpress.com/
Github: https://github.com/cosmo0920
![Page 3: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/3.jpg)
Scalaを始めたきっかけ
Haskellを使った関数プログラミングはしっく
り来た
でもOOPな人たちにいきなり勧めるのって
どーよ?
→そんな時にScalaに出会った
![Page 4: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/4.jpg)
Scalaの進捗ダメですorz
![Page 5: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/5.jpg)
sbt
![Page 6: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/6.jpg)
sbt in Linux
やっぱり避けては通れないsbt
コップ本にはscalaコンソールで解説されていた
ネットの情報を頼るしか無い!
http://scalajp.github.io/sbt-getting-started-guide-ja/
![Page 7: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/7.jpg)
sbt in OSX
homebrewでいれる…は良いがOut of Memoryが頻発
実は~/.sbtconfigで設定が必要で悩んだ
こんなの書く:
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
![Page 8: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/8.jpg)
Scalaって意外とOOP…
![Page 9: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/9.jpg)
引数の順番
Haskell比で大体逆。
mapとかfoldとか…
括弧が省略できる条件をいまい把握してない
タイプ数多い ※Haskell比
![Page 10: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/10.jpg)
sbtから引っ張れるjar is どこ
sonatypeとかbintrayとかmavenとか聞くまで
知らなかった。
先人のgithubのbuild.sbtを参考にしつつ…
![Page 11: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/11.jpg)
ScalaでJSON今は情報が混在していて探すのが大変だった
HTTPリクエストやJSONを扱うにはdispatchが今はい
いらしい
http://dispatch.databinder.net/Dispatch.html
タイプセーフに書ける
使ってみた→ https://github.com/cosmo0920/
Garakuta/tree/master/Json4s_Test
![Page 12: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/12.jpg)
使ってみた感想
確かにタイプセーフになる
想定していないJSONがくるとスタックト
レースが流れる
パターンマッチのありがたみ
![Page 13: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/13.jpg)
便利なものはScalazに通じる
Scalazを知った時は感動した…が、巨大すぎ
ませんか…
Battery Includedとはこのことか!
![Page 14: 新宿Scala座2014 3月号スライド](https://reader034.fdocument.pub/reader034/viewer/2022042504/559c1bea1a28ab0a158b45c2/html5/thumbnails/14.jpg)
まとめScalaは関数型とOOPのハイブリットというけれど
Scalazを使わないとOOPかも
Scalaの言語仕様はかなり巨大ということがわかった
関数プログラミングの入門には良いかも
Haskellと違ってソースまで読まないとちょっと怖い
Scalazにもっと慣れないと…