Successfully reported this slideshow.
Your SlideShare is downloading. ×

Dev love関西 forslideshare

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Play勉強会 第3回
Play勉強会 第3回
Loading in …3
×

Check these out next

1 of 92 Ad

More Related Content

Similar to Dev love関西 forslideshare (20)

More from Daisuke Kasuya (20)

Advertisement

Recently uploaded (20)

Dev love関西 forslideshare

  1. 1. 乙女ゲー を支える技術 Play2.0 + Scalaの開発事例紹介 daiksy 2012-11-10 DevLOVE関西 2012 Drive A-1
  2. 2. このセッションの目的
  3. 3. このセッションの目的 最新のトレンドを見ると ポストJavaの流れが 見受けられる
  4. 4. このセッションの目的 関数型言語 など
  5. 5. このセッションの目的 事例紹介を通じて 現場に新しい技術を 採用する手助けに
  6. 6. このセッションの目的 事例紹介を通じて 現場に新しい技術を 採用する手助けに ※技術的に深い話はしません
  7. 7. このセッションの目的 技術的な補完はこちらで!
  8. 8. 自己紹介 5
  9. 9. 自己紹介 @daiksy 粕谷 大輔 フリュー株式会社 プログラマ
  10. 10. 自己紹介 乙女ゲー 作ってます!
  11. 11. 構成 Amazon EC2 Amazon RDS Play2.0 MySQL nginx Amazon S3 Amazon EC2 backup Play2.0 Fluentd nginx 10
  12. 12. 開発概要
  13. 13. 開発概要 期間:
  14. 14. 開発概要 期間: 2012年2月∼5月末 (4ヶ月)
  15. 15. 開発概要 期間: 2012年2月∼5月末 (4ヶ月) チーム構成:6名
  16. 16. 開発概要 期間: 2012年2月∼5月末 (4ヶ月) チーム構成:6名 Play2.0 + Scalaの 開発は会社として初めて
  17. 17. 開発概要 FW:Play2.0
  18. 18. 開発概要 FW:Play2.0 開発言語:Scala
  19. 19. 開発概要 FW:Play2.0 開発言語:Scala ORM:Squeryl
  20. 20. 開発概要 FW:Play2.0 開発言語:Scala ORM:Squeryl DB:MySQL バージョン管理は Git
  21. 21. Playframework 2.0 15
  22. 22. Playframework 2.0 フルスタックな Web フレームワーク
  23. 23. Playframework 2.0 フルスタックな Web フレームワーク Railsライク
  24. 24. Playframework 2.0 フルスタックな Web フレームワーク Railsライク XML地獄にならない
  25. 25. Playframework 2.0 ちょっとコンパイルが遅い
  26. 26. Playframework 2.0 開発言語にScalaを使うなら これがオススメ
  27. 27. Playframework 2.0 サーバ処理を共通化し、 Viewのみの差し替えなど容易
  28. 28. Playframework 2.0 ユーザエージェントで View出力のみ切り替え
  29. 29. Playframework 2.0 ガラケー & スマフォ同時 リリースを短期間で実現
  30. 30. Playframework 2.0 開発当初はPlay2.0 RC1
  31. 31. Playframework 2.0 開発当初はPlay2.0 RC1 途中で正式リリース
  32. 32. Playframework 2.0 開発当初はPlay2.0 RC1 開発途中で何度かVer Up
  33. 33. Playframework 2.0 開発当初はPlay2.0 RC1 開発途中で何度かVer Up _人人人人人人人人人人人人人人人_ > コンパイルエラーとの戦い! <  ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  34. 34. Playframework 2.0 ガラケー対応のために 文字コードなどで独自の 拡張が必要だった
  35. 35. Playframework 2.0 docomo Windows-31J au Windows-31J SoftBank UTF-8
  36. 36. Playframework 2.0 docomo Windows-31J au Windows-31J SoftBank UTF-8 絵文字対応とか...
  37. 37. Playframework 2.0 PCのブラウザや スマートフォンのみを ターゲットするなら 問題ないはず
  38. 38. 今回開発の注意点 20
  39. 39. 今回開発の注意点 メンバー全員 Scala 初めて
  40. 40. 今回開発の注意点 メンバー全員 Scala 初めて メンバー全員 Play 初めて
  41. 41. 今回開発の注意点 メンバー全員 Scala 初めて メンバー全員 Play 初めて メンバー全員 Git 初めて
  42. 42. 今回開発の注意点 メンバー全員 Scala 初めて メンバー全員 Play 初めて メンバー全員 Git 初めて メンバー全員 AWS 初めて
  43. 43. 今回開発の注意点 メンバー全員 Scala 初めて メンバー全員 Play 初めて メンバー全員 Git 初めて メンバー全員 AWS 初めて メンバー全員 nginx 初めて
  44. 44. 今回開発の注意点 メンバー全員 Scala 初めて メンバー全員 Play 初めて メンバー全員 Git 初めて メンバー全員 AWS 初めて メンバー全員 nginx 初めて ぼくは入社2日目から参画
  45. 45. 今回開発の注意点 エクストリームすぎるだろ
  46. 46. Scalaはじめて 始業前勉強会
  47. 47. Scalaはじめて 始業前勉強会 毎週:月、水、金 各30分
  48. 48. Scalaはじめて 始業前勉強会 毎週:月、水、金 各30分 コップ本輪読会
  49. 49. Scalaはじめて 始業前勉強会 毎週:月、水、金 各30分 コップ本輪読会 リリース後も 続いていたw
  50. 50. Scalaはじめて 始業前勉強会 当初は朝勉強したことをさっ そく昼に実践する的なエクス トリームっぷり
  51. 51. Scalaはじめて 始業前勉強会 学習したことをみんなで議論 したり、直後に実践するの で、吸収しやすい
  52. 52. Scala JVMで動作 25
  53. 53. Scala JVMで動作 関数型プログラミング
  54. 54. Scala JVMで動作 関数型プログラミング コード量が少なくなる
  55. 55. Scala JVMで動作 関数型プログラミング コード量が少なくなる でも難しいんでしょ・・・?
  56. 56. Scala var hoge : String = “” if (fuga >= 10) { hoge = “Hello” } else { hoge = “Good Bye” }
  57. 57. Scala var hoge : String = “” if (fuga >= 10) { hoge = “Hello” } else { hoge = “Good Bye” } val hoge : String = if (fuga >= 10) { “Hello” } else { “Good Bye” }
  58. 58. Scala var hoge : String = “” if (fuga >= 10) { hoge = “Hello” } else { hoge = “Good Bye” } こっちの方がScalaっぽい val hoge : String = if (fuga >= 10) { “Hello” } else { “Good Bye” }
  59. 59. Scala var hoge : String = “” if (fuga >= 10) { hoge = “Hello” 最初はこっちのスタイルでも良い } else { hoge = “Good Bye” } val hoge : String = if (fuga >= 10) { “Hello” } else { “Good Bye” }
  60. 60. Scala 最初はJavaのように、 手続き型と オブジェクト指向の 書き方で良い
  61. 61. Scala 少しずつ慣れていこう
  62. 62. Scala 僕らはどうやったか?
  63. 63. Scala 開発当初 30
  64. 64. Scala 開発当初 ・担当者が実装
  65. 65. Scala 開発当初 ・担当者が実装 ・全員でレビュー
  66. 66. Scala 開発当初 ・担当者が実装 ・全員でレビュー ・レビューを反映
  67. 67. Scala 開発当初 ・担当者が実装 1機能の実装に時間がかかる ・全員でレビュー ・レビューを反映
  68. 68. Scala 改善 ・実装は原則ペア
  69. 69. Scala 改善 ・実装は原則ペア ・レビューと同じ効果
  70. 70. Scala 改善 ・実装は原則ペア ・レビューと同じ効果 ・課金など重要機能は 全員レビュー
  71. 71. Scala 改善 ・朝の勉強会も有効に作用
  72. 72. Scala 2ヶ月もすれば、 メンバー全員違和感なく Scalaは扱えるように
  73. 73. Scala 結局、Scalaってどうよ
  74. 74. Scala Javaプログラマが 関数型プログラミングを 身に付けるには最適
  75. 75. Scala コード量も減る
  76. 76. Scala val xs = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) for(x <- xs) { if(x >= 5) { println(x) } }
  77. 77. Scala val xs = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) for(x <- xs) { if(x >= 5) { println(x) } } val xs = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) xs.filter(_ >= 5) foreach println
  78. 78. Scala 既存資産の活用
  79. 79. Scala アバター機能
  80. 80. Scala +
  81. 81. Scala Javaで作られた 画像処理ライブラリを使用
  82. 82. Scala これまで自社で蓄積された ライブラリが そのまま使える
  83. 83. チャレンジの所感
  84. 84. チャレンジの所感 学習コストはかかった
  85. 85. チャレンジの所感 学習コストはかかった 最初の1ヶ月は ひとつの機能をひたすら リファクタリング
  86. 86. チャレンジの所感 保守はしやすい
  87. 87. チャレンジの所感 保守はしやすい コード量が減り、 見通しが良い
  88. 88. チャレンジの所感 保守はしやすい 追加機能の実装は 比較的容易
  89. 89. チャレンジの所感 メンバーの士気は重要
  90. 90. チャレンジの所感 メンバーの士気は重要 限られた期日で 技術を習得する必要がある
  91. 91. チャレンジの所感 チャレンジは楽しい!
  92. 92. Thank You! ご清聴 ありがとうございました!

Editor's Notes

  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

×