ドリコム的Railsアプリ開発流儀

15,611 views

Published on

【エンジニアカフェEvent】エンジニアカフェ× ドリコム技術勉強会~月間50億PVのソーシャルゲームを支える技術~

http://www.facebook.com/events/216511125103989/

see alse:
* http://www.slideshare.net/drecom/ss-11667563

1 Comment
80 Likes
Statistics
Notes
No Downloads
Views
Total views
15,611
On SlideShare
0
From Embeds
0
Number of Embeds
760
Actions
Shares
0
Downloads
105
Comments
1
Likes
80
Embeds 0
No embeds

No notes for slide

ドリコム的Railsアプリ開発流儀

  1. 1. ドリコム的 Railsアプリ 開発流儀2012/02/16 エンジニアカフェEvent ソーシャルゲーム事業本部 制作2部 大仲 能史 a.k.a. onk Copyright © DRECOM Co., Ltd All Rights Reserved.
  2. 2. 自己紹介 ソーシャルゲーム事業本部 制作2部 大仲 能史 @onk 2 Copyright © DRECOM Co., Ltd All Rights Reserved.
  3. 3. 自己紹介アプリケーション エンジニア 3 Copyright © DRECOM Co., Ltd All Rights Reserved.
  4. 4. 自己紹介 開発環境 vimFirefox Nightly (13.0a1) 4 Copyright © DRECOM Co., Ltd All Rights Reserved.
  5. 5. 自己紹介 先月の実績 5 Copyright © DRECOM Co., Ltd All Rights Reserved.
  6. 6. 自己紹介 Rails歴 約3年 Rails 2.2以降 6 Copyright © DRECOM Co., Ltd All Rights Reserved.
  7. 7. 今日の話 今日の話 7 Copyright © DRECOM Co., Ltd All Rights Reserved.
  8. 8. 今日の話 ドリコム的 Railsアプリ 開発流儀 8 Copyright © DRECOM Co., Ltd All Rights Reserved.
  9. 9. 今日の話ドリコムで仕事をした気になる のをゴール 9 Copyright © DRECOM Co., Ltd All Rights Reserved.
  10. 10. 今日の話よろしくお願い いたします 10 Copyright © DRECOM Co., Ltd All Rights Reserved.
  11. 11. ドリコムの事業ドリコムの事業 11 Copyright © DRECOM Co., Ltd All Rights Reserved.
  12. 12. ドリコムの事業ソーシャルゲーム広告ラーニング 12 Copyright © DRECOM Co., Ltd All Rights Reserved.
  13. 13. ソーシャルゲーム事業ソーシャルゲー ムを運営する 13 Copyright © DRECOM Co., Ltd All Rights Reserved.
  14. 14. ソーシャルゲーム事業ビジネスモデル 14 Copyright © DRECOM Co., Ltd All Rights Reserved.
  15. 15. ソーシャルゲーム事業 毎日ユーザが 訪れて 15 Copyright © DRECOM Co., Ltd All Rights Reserved.
  16. 16. ソーシャルゲーム事業ゲームをプレイ して 16 Copyright © DRECOM Co., Ltd All Rights Reserved.
  17. 17. ソーシャルゲーム事業 お金を落とす 17 Copyright © DRECOM Co., Ltd All Rights Reserved.
  18. 18. ソーシャルゲーム事業ユーザが飽きたら 18 Copyright © DRECOM Co., Ltd All Rights Reserved.
  19. 19. ソーシャルゲーム事業 売上 激減 19 Copyright © DRECOM Co., Ltd All Rights Reserved.
  20. 20. ソーシャルゲーム事業飽きさせない 20 Copyright © DRECOM Co., Ltd All Rights Reserved.
  21. 21. ソーシャルゲーム事業 至上 命題 21 Copyright © DRECOM Co., Ltd All Rights Reserved.
  22. 22. 飽きさせないためにそのための施策 22 Copyright © DRECOM Co., Ltd All Rights Reserved.
  23. 23. 飽きさせないためにユーザ間インタ ラクションの 強化? 23 Copyright © DRECOM Co., Ltd All Rights Reserved.
  24. 24. 飽きさせないために 毎日の地道な 修正/更新? 24 Copyright © DRECOM Co., Ltd All Rights Reserved.
  25. 25. 飽きさせないために もちろん大事 だけど 25 Copyright © DRECOM Co., Ltd All Rights Reserved.
  26. 26. 飽きさせないために 定期的なイベ ントやキャン ペーンが有効 26 Copyright © DRECOM Co., Ltd All Rights Reserved.
  27. 27. 飽きさせないために 期間限定の アイテム 27 Copyright © DRECOM Co., Ltd All Rights Reserved.
  28. 28. 飽きさせないために 期間限定のダンジョン 28 Copyright © DRECOM Co., Ltd All Rights Reserved.
  29. 29. 飽きさせないために 期間限定の ボス 29 Copyright © DRECOM Co., Ltd All Rights Reserved.
  30. 30. 飽きさせないために通常のゲームは ゴールがない ので 30 Copyright © DRECOM Co., Ltd All Rights Reserved.
  31. 31. 飽きさせないために イベントで 近くのゴール を提示する 31 Copyright © DRECOM Co., Ltd All Rights Reserved.
  32. 32. 飽きさせないために コミュニケー ションの盛り 上がりを作る 32 Copyright © DRECOM Co., Ltd All Rights Reserved.
  33. 33. 飽きさせないためにそんなイベント を月2回実施 33 Copyright © DRECOM Co., Ltd All Rights Reserved.
  34. 34. 飽きさせないために 34 Copyright © DRECOM Co., Ltd All Rights Reserved.
  35. 35. 大事なことなのでもう一度 月2回 中規模リリース 必須 35 Copyright © DRECOM Co., Ltd All Rights Reserved.
  36. 36. 飽きさせないために どのぐらいの 開発が必要な のか 36 Copyright © DRECOM Co., Ltd All Rights Reserved.
  37. 37. 飽きさせないためにイベント開発工 程を実際に体 験してみます 37 Copyright © DRECOM Co., Ltd All Rights Reserved.
  38. 38. イベント開発企画 製造画面遷移図 作りこみ画面詳細 テストER図 リリース 38 Copyright © DRECOM Co., Ltd All Rights Reserved.
  39. 39. イベント開発 画面数20弱 39 Copyright © DRECOM Co., Ltd All Rights Reserved.
  40. 40. イベント開発Railsエンジニア2~4名で開 発します 40 Copyright © DRECOM Co., Ltd All Rights Reserved.
  41. 41. イベント開発1アプリにつき10~20名 41 Copyright © DRECOM Co., Ltd All Rights Reserved.
  42. 42. イベント開発 – 企画まずは概要説明 ミーティング (通称:腹落ちMTG) 42 Copyright © DRECOM Co., Ltd All Rights Reserved.
  43. 43. イベント開発 – 企画このイベントを選んだ背景社会の状況ユーザへの想定負荷KPIへの影響/目標スケジュール 43 Copyright © DRECOM Co., Ltd All Rights Reserved.
  44. 44. イベント開発 – 企画 イベントの 根幹を一番 表している ペラ1資料 44 Copyright © DRECOM Co., Ltd All Rights Reserved.
  45. 45. イベント開発 – 画面遷移 どこの会社にもある壁一面の ホワイトボード 45 Copyright © DRECOM Co., Ltd All Rights Reserved.
  46. 46. イベント開発 – 画面遷移さっきの画面をまず書いて、ここから 遷移を考えていきます 46 Copyright © DRECOM Co., Ltd All Rights Reserved.
  47. 47. イベント開発 – 画面遷移 勝ったとき、負けたときに演出が必要→swfで表現 結果画面は表示項目多そう→HTMLで表現 47 Copyright © DRECOM Co., Ltd All Rights Reserved.
  48. 48. イベント開発 – 画面遷移 そもそもボスの出現条件は? 出現時にインパクトを与えたい→ボス出現swfが必要 48 Copyright © DRECOM Co., Ltd All Rights Reserved.
  49. 49. イベント開発 – 画面遷移そもそもイベントの存在を認識させるためのラン ディングページが必要 49 Copyright © DRECOM Co., Ltd All Rights Reserved.
  50. 50. イベント開発 – 画面遷移 イベント詳細は必要だよねランキングある?報酬とか一覧ページ要るよね 50 Copyright © DRECOM Co., Ltd All Rights Reserved.
  51. 51. イベント開発 – 画面遷移 複数人で戦うなら一覧画面要るよね 履歴あるなら「もっとみる」要るよね 51 Copyright © DRECOM Co., Ltd All Rights Reserved.
  52. 52. イベント開発 – 画面遷移仲間が参戦するためにはまず呼ばなきゃいけない 52 Copyright © DRECOM Co., Ltd All Rights Reserved.
  53. 53. イベント開発 – 画面遷移 呼ばれた人が参加する導線が要る 53 Copyright © DRECOM Co., Ltd All Rights Reserved.
  54. 54. イベント開発 – 画面遷移 課金導線 54 Copyright © DRECOM Co., Ltd All Rights Reserved.
  55. 55. イベント開発 画面遷移図完成 55 Copyright © DRECOM Co., Ltd All Rights Reserved.
  56. 56. レールに乗る ここから エンジニアの ターン 56 Copyright © DRECOM Co., Ltd All Rights Reserved.
  57. 57. レールに乗る 僕らの 基本原則 57 Copyright © DRECOM Co., Ltd All Rights Reserved.
  58. 58. レールに乗るRide on Rails? 58 Copyright © DRECOM Co., Ltd All Rights Reserved.
  59. 59. レールに乗るレールに乗ると いうこと 59 Copyright © DRECOM Co., Ltd All Rights Reserved.
  60. 60. レールに乗る Railsは 哲学的な基盤 Opinionated Software 60 Copyright © DRECOM Co., Ltd All Rights Reserved.
  61. 61. レールに乗るDRYCoCMVCGenerator / ScaffoldWrite Less CodeRESTful 61 Copyright © DRECOM Co., Ltd All Rights Reserved.
  62. 62. REST REST 62 Copyright © DRECOM Co., Ltd All Rights Reserved.
  63. 63. REST 必読 63 Copyright © DRECOM Co., Ltd All Rights Reserved.
  64. 64. RESTWebアプリケーションの機能をリソースに対するCRUD操作 とみなす考え方 64 Copyright © DRECOM Co., Ltd All Rights Reserved.
  65. 65. RESTすべてのリソースはURIで表現される一意なアドレスを持つ 65 Copyright © DRECOM Co., Ltd All Rights Reserved.
  66. 66. REST Webページの表示 = リソースに対する GET操作 66 Copyright © DRECOM Co., Ltd All Rights Reserved.
  67. 67. REST 操作は HTTPの メソッドで 表現可能 67 Copyright © DRECOM Co., Ltd All Rights Reserved.
  68. 68. REST GET=副作用なしGET以外=副作用あり 68 Copyright © DRECOM Co., Ltd All Rights Reserved.
  69. 69. REST Railsでは? 69 Copyright © DRECOM Co., Ltd All Rights Reserved.
  70. 70. REST$ rails g scaffold ¥ entry ¥ title body:text 70 Copyright © DRECOM Co., Ltd All Rights Reserved.
  71. 71. REST config/routes.rb resources :entries 71 Copyright © DRECOM Co., Ltd All Rights Reserved.
  72. 72. REST$ rake routes entries GET /entries(.:format) entries#index POST /entries(.:format) entries#create new_entry GET /entries/new(.:format) entries#newedit_entry GET /entries/:id/edit(.:format) entries#edit entry GET /entries/:id(.:format) entries#show PUT /entries/:id(.:format) entries#update DELETE /entries/:id(.:format) entries#destroy 72 Copyright © DRECOM Co., Ltd All Rights Reserved.
  73. 73. REST これが基本形 73 Copyright © DRECOM Co., Ltd All Rights Reserved.
  74. 74. RESTRESTを意識する ことでURLが自 然と決まる 74 Copyright © DRECOM Co., Ltd All Rights Reserved.
  75. 75. REST 更にRails特有の文化 75 Copyright © DRECOM Co., Ltd All Rights Reserved.
  76. 76. REST Modelと Controllerが 1:1対応 (異論は認める) 76 Copyright © DRECOM Co., Ltd All Rights Reserved.
  77. 77. Railsでは RouteとActionとDBが 協調動作 77 Copyright © DRECOM Co., Ltd All Rights Reserved.
  78. 78. RESTURLを見ればどのテーブルにアクセ スするか分かる 78 Copyright © DRECOM Co., Ltd All Rights Reserved.
  79. 79. REST 閑話休題 79 Copyright © DRECOM Co., Ltd All Rights Reserved.
  80. 80. イベント開発 画面遷移図 80 Copyright © DRECOM Co., Ltd All Rights Reserved.
  81. 81. イベント開発 – ER図 画面仕様から ER図を作成 81 Copyright © DRECOM Co., Ltd All Rights Reserved.
  82. 82. イベント開発 – ER図ユーザがボスを呼び出す 82 Copyright © DRECOM Co., Ltd All Rights Reserved.
  83. 83. イベント開発 – ER図 参戦者と攻撃履歴 83 Copyright © DRECOM Co., Ltd All Rights Reserved.
  84. 84. イベント開発 – ER図 参戦依頼 84 Copyright © DRECOM Co., Ltd All Rights Reserved.
  85. 85. イベント開発 – ER図 ランキング 85 Copyright © DRECOM Co., Ltd All Rights Reserved.
  86. 86. イベント開発 – ER図 テーブル名はRailsの規則に従う(habtmは複数形をアルファベット 順で繋げる等) 86 Copyright © DRECOM Co., Ltd All Rights Reserved.
  87. 87. イベント開発 – ER図カラムは開発中に変更/追加されるので深追いしない 87 Copyright © DRECOM Co., Ltd All Rights Reserved.
  88. 88. イベント開発 – ER図関連さえ記載されていれば大体どこ にあるか分かる 88 Copyright © DRECOM Co., Ltd All Rights Reserved.
  89. 89. イベント開発 – ER図 foreign_keyもRailsの規則に従う ので記載不要 (belongs_to => [model]_id) 89 Copyright © DRECOM Co., Ltd All Rights Reserved.
  90. 90. イベント開発 – ER図 レールに乗ると ドキュメントが シンプルになる 90 Copyright © DRECOM Co., Ltd All Rights Reserved.
  91. 91. イベント開発 – URL設計 Modelが決まり画面表示内容が決まれば URLが決まる 91 Copyright © DRECOM Co., Ltd All Rights Reserved.
  92. 92. イベント開発 – URL設計RESTの原則に 従う 92 Copyright © DRECOM Co., Ltd All Rights Reserved.
  93. 93. イベント開発 – URL設計 副作用を与えるActionは Post -> Redirect -> Get 93 Copyright © DRECOM Co., Ltd All Rights Reserved.
  94. 94. イベント開発 – URL設計 攻撃する=> 攻撃履歴リソースを作る 94 Copyright © DRECOM Co., Ltd All Rights Reserved.
  95. 95. イベント開発 – URL設計どちらのリソースを操作するかは フィーリングで決める (URLの対象性を意識することが多い) 95 Copyright © DRECOM Co., Ltd All Rights Reserved.
  96. 96. イベント開発 – URL設計全画面についてURLを考える 96 Copyright © DRECOM Co., Ltd All Rights Reserved.
  97. 97. イベント開発 – 開発 開発開始 97 Copyright © DRECOM Co., Ltd All Rights Reserved.
  98. 98. イベント開発 – 開発 決定した Action、Model をGenerate 98 Copyright © DRECOM Co., Ltd All Rights Reserved.
  99. 99. イベント開発 – 開発$ rails g model RaidBoss ¥ event_id:integer name$ rails g controller raids show 99 Copyright © DRECOM Co., Ltd All Rights Reserved.
  100. 100. イベント開発 – 開発Railsの思想に従いGeneratorで開発 をDrivenする 100 Copyright © DRECOM Co., Ltd All Rights Reserved.
  101. 101. イベント開発 – 開発 画面間を繋ぐ 101 Copyright © DRECOM Co., Ltd All Rights Reserved.
  102. 102. イベント開発 – 開発 あとはほぼ Modelを書く だけ 102 Copyright © DRECOM Co., Ltd All Rights Reserved.
  103. 103. イベント開発 – 開発Skinny Controller, Fat Model の原則に従う 103 Copyright © DRECOM Co., Ltd All Rights Reserved.
  104. 104. イベント開発 – 開発1Actionあたり 30min~8h 104 Copyright © DRECOM Co., Ltd All Rights Reserved.
  105. 105. イベント開発 – 開発 3日ぐらいで 最低限遊べる 状態を作る 105 Copyright © DRECOM Co., Ltd All Rights Reserved.
  106. 106. イベント開発 – 開発 リリースまで あと7日 106 Copyright © DRECOM Co., Ltd All Rights Reserved.
  107. 107. イベント開発 – 作りこみ 残りの期間を 作りこみに当 てる 107 Copyright © DRECOM Co., Ltd All Rights Reserved.
  108. 108. イベント開発企画 製造画面遷移図 作りこみ画面詳細 テストER図 リリース 108 Copyright © DRECOM Co., Ltd All Rights Reserved.
  109. 109. イベント開発 – 作りこみユーザの動きを 想像する 109 Copyright © DRECOM Co., Ltd All Rights Reserved.
  110. 110. イベント開発 – 作りこみ 不要な遷移を 取り除く 110 Copyright © DRECOM Co., Ltd All Rights Reserved.
  111. 111. イベント開発 – 作りこみ 不要な機能を 取り除く 111 Copyright © DRECOM Co., Ltd All Rights Reserved.
  112. 112. イベント開発 – 作りこみよりイベントが 盛り上がるよ うな機能追加 112 Copyright © DRECOM Co., Ltd All Rights Reserved.
  113. 113. イベント開発 – テスト前日はまるまる テスト (が理想) 113 Copyright © DRECOM Co., Ltd All Rights Reserved.
  114. 114. イベント開発 – テスト 社員に対して リリースして 遊んでもらう 114 Copyright © DRECOM Co., Ltd All Rights Reserved.
  115. 115. イベント開発 – テスト 不満を改善 115 Copyright © DRECOM Co., Ltd All Rights Reserved.
  116. 116. イベント開発 – リリース リリース 116 Copyright © DRECOM Co., Ltd All Rights Reserved.
  117. 117. イベント開発 – リリースログと2chとコ ミュニティに 張り付き 117 Copyright © DRECOM Co., Ltd All Rights Reserved.
  118. 118. イベント開発 – リリース ユーザの声や データの声を 聴きながら 118 Copyright © DRECOM Co., Ltd All Rights Reserved.
  119. 119. イベント開発 – リリース 即修正 即deploy 119 Copyright © DRECOM Co., Ltd All Rights Reserved.
  120. 120. イベント開発 – リリース 打ち上げ! 120 Copyright © DRECOM Co., Ltd All Rights Reserved.
  121. 121. 次のイテレーションへを2週間単位で 繰り返す運営 スケジュール 121 Copyright © DRECOM Co., Ltd All Rights Reserved.
  122. 122. 次のイテレーションへ 繰り返す 122 Copyright © DRECOM Co., Ltd All Rights Reserved.
  123. 123. 次のイテレーションへPDCAサイクル 123 Copyright © DRECOM Co., Ltd All Rights Reserved.
  124. 124. 次のイテレーションへの話はこの後の セッションで 124 Copyright © DRECOM Co., Ltd All Rights Reserved.
  125. 125. まとめ おさらい 125 Copyright © DRECOM Co., Ltd All Rights Reserved.
  126. 126. まとめレールに乗るこ とで共通認識 が得られる 126 Copyright © DRECOM Co., Ltd All Rights Reserved.
  127. 127. まとめ1枚の企画書からすぐに行動 に移れる画面遷移とER図、URLさえ あれば開発可能Railsの規約・原則を意識する 127 Copyright © DRECOM Co., Ltd All Rights Reserved.
  128. 128. まとめ開発は最速で行い、データをもとに改善を回す 128 Copyright © DRECOM Co., Ltd All Rights Reserved.
  129. 129. まとめ それがドリコム的Railsアプリ開発流儀 129 Copyright © DRECOM Co., Ltd All Rights Reserved.
  130. 130. 仲間募集ドリコムでは一緒のレールに乗れるエンジニアを募集 しています 130 Copyright © DRECOM Co., Ltd All Rights Reserved.
  131. 131. おしまい ご清聴 ありがとう ございました 131 Copyright © DRECOM Co., Ltd All Rights Reserved.

×