アイマス駆動開発 #shinjukurb

24
アアアアアアアア 2016.02.24 Shinjuku.rb #34 @treby006

Upload: treby

Post on 16-Apr-2017

1.382 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: アイマス駆動開発 #shinjukurb

アイマス駆動開発2016.02.24 Shinjuku.rb #34

@treby006

Page 2: アイマス駆動開発 #shinjukurb

自己紹介• treby (Hiroaki Ninomiya) @treby006

• Portfolio: treby.info

• Space Market, Inc

• ユニークな場所でイベントやりたい等ありましたらお気軽に!• Shinjuku.rb 世話役

• LT では枠と時間が余った時に登場します

Page 3: アイマス駆動開発 #shinjukurb

アイマス駆動開発とは• 2013 年頃にノリで提唱

• アイマス ( 私の場合ミリオン寄り ) 好きな気持ちを開発モチベに利用• 結構響き(とウケ)が良いので、事あるごとに使っている表現• 多分この辺が初出: http://labs.gree.jp/blog/2013/12/10049/

• 最近の仕事上の実績 → アイマス曲を聴きながら作業 → アイマス駆動開発• 自分よし、会社よし、ユーザーよしの三方よし• まさしく Happy Hacking!! ヽ (•̀ω•́ ) ゝ

Page 4: アイマス駆動開発 #shinjukurb

◯◯ 駆動開発• 「◯◯」に自分が好きなものを入れる• それがコンテンツであれば一次供給者 ( 公式 ) がある程度継続して企画してくれるものの方が長くワークしやすいかも

• 第三者に分かってもらえやすいため ( 承認欲求のような )

• その点でアイマスはコンテンツとして 10 年続いています• 二次創作分野 ( 同人 ) のネタ決めにも近い

• 「好きな気持ち」を仕事や趣味開発のモチベにできる• Web スクレイピングや Twitter bot などはアイマスへのモチベから

Page 5: アイマス駆動開発 #shinjukurb

アイマス駆動開発の結果を記事に

Page 6: アイマス駆動開発 #shinjukurb

その反応

Page 7: アイマス駆動開発 #shinjukurb

アイマス駆動開発はいいぞ• 本質は単なる言葉遊び

• コミュニティでわいやわいやするのも含めて楽しい• どちらか片方の素質 ( アイマス/開発 ) を持つ人と話すのは楽しい• 両方の素質を兼ね備えている人と話すと超楽しい

• 結果として人生が面白くなったり何らかの貢献ができるのであれば良いのではないか• というわけで、今日はアイマス駆動開発メソッドで作った rubimas について紹介します

Page 8: アイマス駆動開発 #shinjukurb

rubimas について• アイドルマスター ( アイマス ) のアイドルの基本情報を ruby ちっくに取得できる Gem

• https://github.com/imas/rubimas

• 中身は YAML で定義された情報を hashie 使ってメソッドちっくに参照• rubicure に inspire

• rubicure → プリキュアの Gem

• https://github.com/sue445/rubicure

• もともとは rubicure を写経 → 実装面にも強く影響

Page 9: アイマス駆動開発 #shinjukurb

デモ

Page 10: アイマス駆動開発 #shinjukurb

rubimas の利用• http://mlborder.com/

• アイマスのゲームについてのサイト / Rails 製• 月間 10,000PV ほど → Heroku の Free dyno 上で運用• アイドルの情報が必要なところで利用• 実質的に rubimas はこのサイトで使いやすくするために改修している感がある……

Page 11: アイマス駆動開発 #shinjukurb

rubimas の利用

Page 12: アイマス駆動開発 #shinjukurb

アイドルの名前問題• 従来の rubimas における「アイドルの名前」の取り扱い

• あくまで一要素、中身は単なる String

• 姓と名の間にスペースを入れておき、「名前」部分を取りたいときは split して取り出す。• 大部分のアイドルはこのメソッドで問題なかった

• ただし、 50 人いるアイドルのうち、一部に例外があった• 本名不詳なパターン• 本名とアイドル活動時の名前が異なるパターン

Page 13: アイマス駆動開発 #shinjukurb
Page 14: アイマス駆動開発 #shinjukurb
Page 15: アイマス駆動開発 #shinjukurb
Page 16: アイマス駆動開発 #shinjukurb
Page 17: アイマス駆動開発 #shinjukurb
Page 18: アイマス駆動開発 #shinjukurb

対策:名前を class に• Idol::Name という class を準備

• アイドルの名前に関わるメソッドを持たせる• 苗字・名前や読み仮名など (#family や #given など )

• 本名とアイドル名が違う場合は a.k.a という概念でサポート• to_s メソッドで欲しい名前を定義

• そのまま Idol::Name を画面表示などで String に変換しようとした際に適切な表現となるように。

Page 19: アイマス駆動開発 #shinjukurb
Page 20: アイマス駆動開発 #shinjukurb
Page 21: アイマス駆動開発 #shinjukurb

Rails側の対応• 変える前

• 変えた後

Page 22: アイマス駆動開発 #shinjukurb

Rails側の対応• 元々 ActiveHash で wrap

• 単純なハッシュという感じでもなくなったので (Idol::Name)

• method_missing なものを rubimas側に移譲• Rails からは ARライクにアイドル情報を扱える

• 冗長なところ多いけど、まあメモリ上に展開されているデータだしいいか、みたいな

Page 23: アイマス駆動開発 #shinjukurb

まとめ• 話したこと

• アイマス駆動開発• アイドルを愛でるための gem, rubimas

• 何か作っていると業務にも応用ききそうな問題にぶつかることがある• ただし、趣味の場合は仕事と無関係に自分のペースで行えるのでやらなくても良いが、やれば自分の力に。• そのきっかけをくれる点で◯◯駆動開発メソッドは強力だと思う。

Page 24: アイマス駆動開発 #shinjukurb

Happy Hacking!!