Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ChatWorkとScala

2,565 views

Published on

Published in: Technology
  • Be the first to comment

ChatWorkとScala

  1. 1. ChatWorkとScala Yuta Adachi (ChatWork)
  2. 2. 自己紹介 安達 勇太 (あだち ゆうた) • 2014/1∼ • PHPer, セプキャン2009 (Securityコース、Binary解析組) • インフラチーム • 開発環境(Vagrant+Ansible) + CIなど
  3. 3. なぜScalaか…
  4. 4. 言語+フレームワーク選定合宿 3/27∼29 ! • PHP (Laravel4) • Python (Flask) • Scala (Playframework2)
  5. 5. –Johnny Appleseed “ここに引用を入力してください。”
  6. 6. –Johnny Appleseed “ここに引用を入力してください。”
  7. 7. –Johnny Appleseed “ここに引用を入力してください。”
  8. 8. 詳細は
  9. 9. Scalaに決まった理由 ! • ソースコードをシンプルに + 可読性高く • 静的型付け言語を使いたい • スケーラビリティが高そう
  10. 10. Scalaをどう利用していくのか
  11. 11. • 新APIの開発 (6月∼) • ChatWorkを再構築
  12. 12. 1週間Scalaを勉強してみた
  13. 13. 目的 ! • 本当にシンプルに書けるの? • Scalaの勉強って大変じゃない? • スケーラビリティ本当に高いの?
  14. 14. 技術的バックグラウンド ! • PHP、C (Apache module)、Python • LL脳 • インフラエンジニア (特にセキュリティ)
  15. 15. 学習課題 ! • ChatWorkの公開済みのAPIをScala + Play2で 作る
  16. 16. 資料
  17. 17. 一週間勉強してみて…
  18. 18. 良いなと思ったこと
  19. 19. コンパイラの存在 ! • 実行するまでにエラーが分かる
  20. 20. Option型 ! •「nullになるかもしれない」がひと目で分かる • nullチェックしないとコンパイルエラー
  21. 21. 型推論 ! • 型を宣言しなくて良い、ことがある val msg = “寿司行きましょう、藤原さん。”
  22. 22. (おまけ) IntelliJ IDEA ! • 強力な静的解析で警告・エラーだしてくれる • 実行・デバッグが楽ちん
  23. 23. 困ったこと
  24. 24. コンパイル • 遅い
  25. 25. 型パラメータ・変位指定 • 脳みそ破裂しそう • LL脳がいちばん苦しむのはこの辺り? ! ! !
  26. 26. 暗黙の型変換・パラメータ • 魔法に見えた • コードは短いけど、書いていることを全て把 握出来ない
  27. 27. 社内で相談できる人がいない • ハマってもなかなか解決できない  → 「`play clean compile`したらコンパイル通った∼」 • コードレビューやペアプロして欲しい
  28. 28. 勉強の成果 ! • 本当にシンプルに書けるの? → Yes • Scalaの勉強って大変じゃない? → Yes • スケーラビリティ本当に高いの? → ???
  29. 29. 知りたいこと
  30. 30. 運用 • データベースのマイグレーション → Evolutions or Flyway ? ! • デプロイ • IntelliJ IDEAのTips
  31. 31. 興味あること
  32. 32. ライブラリ&フレームワーク • Finatra → Sinatra + Finagle(Scala製RPCフレームワーク) ! • spray → Akkaを使ったWebフレームワーク
  33. 33. まとめ
  34. 34. • LL脳でも書けるようになりそう! → 決して学習コストは低くない、でもコスパ良さそう • Scalaのチームをどうビルドするか
  35. 35. ありがとうございました。

×