42
“なりたいアタシ”と “イマのアタシ” 設樂 洋爾 [email protected] — Jpmobile: who I wanna be and who I am. 2010年1月12日(火) 浅草jpmobile会議01

Jpmobile: Who I Wanna Be And Who I Am

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Jpmobile: Who I Wanna Be And Who I Am

“なりたいアタシ”と“イマのアタシ”

設樂 洋爾[email protected]

— Jpmobile: who I wanna be and who I am.

2010年1月12日(火) 浅草jpmobile会議01

Page 2: Jpmobile: Who I Wanna Be And Who I Am

しだら ようじ設樂 洋爾

Page 3: Jpmobile: Who I Wanna Be And Who I Am

そもそもの企て:

Page 4: Jpmobile: Who I Wanna Be And Who I Am

“Rubyのm17nフレームワーク上でケータイ絵文字を扱えるようにするためのヒントをnurseさんからいただく”

Page 5: Jpmobile: Who I Wanna Be And Who I Am

ありがとうございますみなさま

Page 6: Jpmobile: Who I Wanna Be And Who I Am

My Goal:

Page 7: Jpmobile: Who I Wanna Be And Who I Am

「この場であれば出来ること」

“イマのアタシ”を見せる。「どうして気に入らないのか」

“なりたいアタシ”を示す。あるいは問う。

“この場”を大切にする。「なりたいアタシに近づき続けるために」

「好きになれない部分」

「どうしたいと思っているのか」「どうなりたいのか自分でもわからない」

Page 8: Jpmobile: Who I Wanna Be And Who I Am

Our Goal?これで十分ですか?

Page 9: Jpmobile: Who I Wanna Be And Who I Am

悩み事マップ

Page 10: Jpmobile: Who I Wanna Be And Who I Am

悩み事絵文字

テスト

プロジェクト

フルスタックすぎ細かい色々

Page 11: Jpmobile: Who I Wanna Be And Who I Am

絵文字

Page 12: Jpmobile: Who I Wanna Be And Who I Am

イマのアタシ‣1.9で動かなそう‣変換自体は汎用のはずだが‣メール処理でも使いたい‣フィルタのコードが汚い‣nkfを使うために必死‣バグも [gh-17]

Page 13: Jpmobile: Who I Wanna Be And Who I Am

なりたいアタシ‣せっかくだから1.9らしく‣色々綺麗になるはず!!

Page 14: Jpmobile: Who I Wanna Be And Who I Am

エンコーディング‣DoCoMo: SJIS, Unicode,

JIS‣au: SJIS, Unicode(公式),

Unicode(内部), JIS‣SoftBank: WEBCODE,

Unicode, JIS

Page 15: Jpmobile: Who I Wanna Be And Who I Am

Encode::JP::Mobile‣ x-sjis-imode‣ x-sjis-softbank‣ x-sjis-softbank-auto‣ x-sjis-kddi-cp932-raw‣ x-sjis-kddi-auto‣ x-iso-2022-jp-kddi‣ x-iso-2022-jp-kddi-auto‣ x-sjis-airedge‣ x-iso-2022-jp-airh‣ x-utf8-docomo, x-utf8-softbank, x-

utf8-kddi,‣ x-sjis-docomo-raw, x-sjis-softbank-

raw, x-sjis-softbank-auto-raw, x-sjis-kddi-cp932-raw, x-sjis-kddi-auto-raw, x-sjis-airh-raw

http://search.cpan.org/~miyagawa/Encode-JP-Mobile-0.26/lib/Encode/JP/Mobile.pm

Page 16: Jpmobile: Who I Wanna Be And Who I Am

フルスタックすぎる

Page 17: Jpmobile: Who I Wanna Be And Who I Am

いまのアタシ‣Railsがバージョンアップすると壊れる機能のせいでjpmobile全体が壊れる‣Railsに依存してない部分は

Rails以外のフレームワークで使いたい、けど使えない

Page 18: Jpmobile: Who I Wanna Be And Who I Am

“Sinatraで使いたい”

“Railsのバージョンあげたらview切り替えが壊れて起動しなくなったけど、その機能オレ使ってないし”

ヒソヒソ・・・

Page 19: Jpmobile: Who I Wanna Be And Who I Am

観察:

‣テンプレート切り替え‣セッション(trans_sid)‣テスト

“Railsのバージョンアップでよく壊れる部分は集中している”→Railsに依存している部分

Page 20: Jpmobile: Who I Wanna Be And Who I Am

なりたいアタシ‣ jpmobile-rack‣ jpmobile-rails‣絵文字変換エンジン

・・・もしくは

Page 21: Jpmobile: Who I Wanna Be And Who I Am

もしかして‣むしろ機能のレベルまで切り分けるべき?‣UAに応じたテンプレート切り替えプラグインもあればよい?

Page 22: Jpmobile: Who I Wanna Be And Who I Am

悩みごと‣ディレクトリ構成は?‣Railsでpluginの依存関係を扱える?

‣リポジトリの切り分けは?‣現行バージョンとの互換性は?

Page 23: Jpmobile: Who I Wanna Be And Who I Am

スマートフォン対応

Page 24: Jpmobile: Who I Wanna Be And Who I Am

イマのアタシ‣時々要望があがり、議論される ものの・・・‣キャリアと直行する‣仕様や命名が悩ましい‣ iPhone, Android だけ特別扱い?‣それ*jp*mobileの仕事?

Page 25: Jpmobile: Who I Wanna Be And Who I Am

Should it be mobile?‣ iPhoneやAndroid は

request.mobile? が true を返すべきなのだろうか?

Page 26: Jpmobile: Who I Wanna Be And Who I Am

EMOBILE端末‣EMOBILEでは端末固有の

IDを取得できるので作った‣User-Agentに規則性がなく泥なテーブル管理

Page 27: Jpmobile: Who I Wanna Be And Who I Am

もしかして‣テンプレートを切り替えたいだけ?‣だとするとテンプレート切り替えを切り出すべき?

Page 28: Jpmobile: Who I Wanna Be And Who I Am

Jpmobile::Mobileのクラス階層

Page 29: Jpmobile: Who I Wanna Be And Who I Am

イマのアタシ‣継承関係でいいのか‣機能の上書きには便利‣Jphone < Vodafone <

Softbank < AbstractMobile‣Ddipocket < Willcom <

AbstractMobile

Page 30: Jpmobile: Who I Wanna Be And Who I Am

テンプレート切替

Page 31: Jpmobile: Who I Wanna Be And Who I Am

イマのアタシ‣ファイル名の命名規則がよくない‣かなり無理をしてパッチを当てている‣Railsと仲が悪い

Page 32: Jpmobile: Who I Wanna Be And Who I Am

なりたいアタシ‣分離したほうがよい?‣ファイル名の命名規則をよくしたい(カスタマイズ可能なほうがよい?)‣Railsの機能を使ってもう少し綺麗にならないかなぁ・・・

Page 33: Jpmobile: Who I Wanna Be And Who I Am

テスト

Page 34: Jpmobile: Who I Wanna Be And Who I Am

イマのアタシ‣Test::Unit, RSpecが混在‣粒度の違うテストが混在‣単体テストがRailsに依存

Page 35: Jpmobile: Who I Wanna Be And Who I Am

なりたいアタシ‣単体テスト: Rackだけで可能な範囲をテストする‣結合テスト: 空のRailsアプリを結合してjpmobileのAPIを叩く‣総合テスト: テスト用の

Rails appを外側から叩く

Page 36: Jpmobile: Who I Wanna Be And Who I Am

テーブル類

Page 37: Jpmobile: Who I Wanna Be And Who I Am

イマのアタシ‣ハードコードされてる‣テーブルがソースリポジトリに入っている‣アップデートスクリプトがバラバラ

Page 38: Jpmobile: Who I Wanna Be And Who I Am

なりたいアタシ‣ユーザがテーブルを差し替え/スクリプトでアップデートできる機構を入れる?‣スクリプトではなくRakeタスクにしたい

Page 39: Jpmobile: Who I Wanna Be And Who I Am

この場でできそうなこと

Page 40: Jpmobile: Who I Wanna Be And Who I Am

イマだからできること‣要らない機能が実はけっこうあるのでは‣Issuesを整理したい‣Collaborators募集‣分割するとしてそのレイアウトを議論したい

Page 41: Jpmobile: Who I Wanna Be And Who I Am

イマだからできること‣インストール手順でscript/pluginを使わない理由って何でしたっけ‣0.0.7タグ打ってもいいですか‣気になるバグ

Page 42: Jpmobile: Who I Wanna Be And Who I Am

要らない?‣GeoKit連携‣ディスプレイ情報‣GetTextのlocale自動設定機能切った方が良いかも