Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pocochaを盛り上げるイベント開発の裏側

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for gotomo gotomo
February 05, 2019

 Pocochaを盛り上げるイベント開発の裏側

Avatar for gotomo

gotomo

February 05, 2019
Tweet

Other Decks in Programming

Transcript

  1. 自己紹介 2011年新卒入社 FP/SP向けソーシャルゲーム数本開発 2011~2015年 Perlでサーバーサイド デジタルカードゲーム(DUELS X MACHINA)の開発 カードゲーム好きが高じて参画 2015~2018年

    Unity(C#)でクライアント全般 Pocochaチームイベントエンジニア 2018年5月~ Rubyでサーバーサイド 効率化大臣を名乗ってます 3
  2. 昨年の10月あたりから急増 2018年 月 1 2 3 4 5 6 7

    8 9 10 11 12 本数 1 1 1 1 3 1 1 2 2 6 8 13 8
  3. 効率よく、安全に、ストレスなく作る 項目 Before After 報酬の記載 ベタ書き マスターデータから生成 マスターデータ 生成 企画が作ったスプレッドシートを

    見ながら手動でデータ化 スプレッドシートからスクリプ トでgitにインポート マスターデータ の本番反映 管理画面上で手入力 gitからスクリプトで反映 *デバッグ時の 時間の扱い 手動で全て修正 一括で変更可能 実装 前回イベントを頑張ってコピペ スクリプト一発でイベントの雛 形作成 検証 自分たちで項目書作って検証 項目書も含めてQAさんにお任 せ *コンフリクト つらい 一瞬で解決 *あとで説明する項目 12
  4. 一気にズラす time_offsetを設定して利用 def parse(time_str) # time_offset はズラしたい時間(DB などに格納して共通で読み込む) Time.zone.parse(time_str) +

    time_offset end モデルでoverrideして根本で対応 # events.rb def started_at EventTime.parse(self[:started_at].to_s) end def ended_at EventTime.parse(self[:ended_at].to_s) end 17
  5. event_rewardsテーブル(eventsの子テーブル) ブランチA id event_id name 1 1 コイン 2 1

    広告出演権1 3 2 コイン 4 2 広告出演権2 5 2 シール ブランチB id event_id name 1 1 コイン 2 1 広告出演権1 3 3 コイン 4 3 広告出演権3 21
  6. ブランチAにブランチBをマージ _人人人人人人人人_ > コンフリクト <  ̄Y^Y^Y^Y^Y^Y^Y ̄ 修正が大変(他のマスターデータも同様…) ‑3,2, コイン #

    イベントID 2 ‑4,2, 出演権2 # イベントID 2 ‑5,2, シール # イベントID 2 +3,3, コイン # イベントID 3 +4,3, 出演権3 # イベントID 3 22
  7. ID体系の工夫 IDに意味をもたせて子テーブル以下のコンフリクトを解消 仮にコンフリクトしてもカット & ペーストで済むので解決が容易 根本のID(eventsテーブルのID)だけは関係者で調整する必要がある スプレッドシートで別途管理 1_00010 # events

    テーブルのID 1_00010_01 # 子テーブルのID( 末尾二桁連番) 1_00010_01_01 # 孫テーブルID( 末尾二桁連番) 1_00020_01,1_00020, コイン # イベントID: 1_00020 1_00020_02,1_00020, 出演権2 # イベントID: 1_00020 1_00020_03,1_00020, シール # イベントID: 1_00020 +1_00030_01,1_00030, コイン # イベントID: 1_00030 +1_00030_02,1_00030, 出演権3 # イベントID: 1_00030 23