• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Dev love関西 forslideshare
 

Dev love関西 forslideshare

on

  • 4,955 views

DevLOVE関西2012 でのセッションで使ったスライドです。

DevLOVE関西2012 でのセッションで使ったスライドです。

Statistics

Views

Total Views
4,955
Views on SlideShare
2,444
Embed Views
2,511

Actions

Likes
7
Downloads
18
Comments
0

12 Embeds 2,511

http://nocono.net 1080
http://daiksy.blogspot.jp 423
http://d.hatena.ne.jp 417
http://www.scoop.it 337
http://meetuposaka.seesaa.net 198
http://kamatamadai.hatenablog.com 32
http://daiksy.blogspot.com 10
http://dev.nocono.net 7
http://uokada.tumblr.com 3
http://webcache.googleusercontent.com 2
http://daiksy.blogspot.sg 1
http://www.tumblr.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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

Dev love関西 forslideshare Dev love関西 forslideshare Presentation Transcript

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