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