■BBBの作り直しについて
ひとつめは、データ構造の見直し。 リリースが黎明期なのもあり、臆病なデータ構造(最低限の構成)で骨子を作っていたBBB。エアバによるパーツ評価のパラダイムシフトをはじめとした、現状ある要素・今後ありそうな要素を考えに含めつつ、もう少し割り切った具体的な骨子を作りたい。運用してみた感じ、全部のデータをRDBMSで扱う必要もないので、Arelの親和性も高そう。
ふたつめは、処理や画面仕様の見直し。場当たりや、俺都合でリッチにしてきた画面仕様について、パーツの充実、エアバ化による重要ステータスの変遷だったりで、設計レベルでリファインしたほうがよさそうなところがかなり出てきた。
さいごは、API提供の想定。 ちょいちょいいろんな人と部分的にデータを渡して・・みたいな話で盛り上がりつつ、実装を先送りにしてた申し訳ないポイントがあったので、設計レベルでこのあたりの要求に素早く応えられるようにしておきたい。
■RESTfulなアーキテクチャスタイルについて
大きな理由としては、モデルとアクション間の依存をなくして。API提供的な開発の壁をちょっとでも薄くしたい。というところ。
webアプリとして、アクションに基づいたURI空間と、エンティティに基づいたURIを明確に区別できる点も、副次的なメリットとして大きいはず。
調べてみるとwebサービスとしてのURI、触れるEntityとしてのURI、APIとしてのURI・・・みたいなところの兼ね合いで結構苦労するようなので、その辺の機微もまとめておべんきょうしてみたい。
やべー、曖昧な忙しさに感けて何もしてなかった。動く。
大きなお題:
- BBB(http://bbb.xandbox.jp)を、Rails3バージョンで作り直す
- 新しめで触ってなかった技術・考え方シリーズは必ず触ってから採用を検討する
小さなお題:
- 開発に入る前に設計を起こす
- 設計について何を問題にしてるか、何を調べたか、どうすることにしたかをここに書く
- パーツ・武装のデータ構造予想に従い、既存データ構造をリファイン&移行
- 特に武装は込み入ったデータを保持するようにしておく
- 問題ないか検討したうえで、コアをRESTfulに作りなおす
- 流行りの脆弱性はツブす
- 開発前にテストケース書く
- 昼休みの飯以外の時間はここに使う
こんなものか。次は大まかな青写真を書こう。
飲み会で「Unicornいいよ!いい!」という話になったので、細かい考査はさておき使ってみたくなってまいりました。
既にRails2.xで稼動してるdebian 5.0.5サーバなので、
- rvmで、ユーザ環境別にRubyのバージョンを使い分ける(既存を生存させる)
- Rubyのソースはそれぞれのユーザが共通の実体を使う(個別にインストールしない)
という前提のもとに環境づくり開始。
まずはrvmのインストールから。参考にしたのは、
- http://blog.yakitara.com/2010/04/rvm-tips-install-rubies-as-root-use.html
- http://rvm.beginrescueend.com/deployment/system-wide/
- http://www.os.cis.iwate-u.ac.jp/~karino/wikky/wikky.cgi?RVM
の3つぐらい。
sudo aptitude install git-core # 下準備その1
sudo aptitude install curl # 下準備その2
sudo aptitude install bison # 下準備その3
sudo bash < <( curl -L http://bit.ly/rvm-install-system-wide ) # インストールrvm list known # 取り扱ってるRubyのバージョンをチェック
sudo rvm install 1.8.6 # 既存環境(Rails2)用
sudo rvm install 1.9.2 # Rails3用(状況次第では開発環境用)# 個人環境で、rvmパスを設定(bashの場合)
vi ~/.bashrc
if [[ -s /usr/local/lib/rvm ]] ; then source /usr/local/lib/rvm ; fi
次はrvmでrubyを1.9.2に変えて、1.9.2のgem経由でもろもろのインストール
rvm use 1.9.2 # 1.9.2固有のRubyGemsを使うことにもなる
sudo gem install rails
sudo gem install unicorn
だいたいのプロジェクトでsqlite3を使うと思うんだけど、Rails3のsqlite3-rubyは結構新しいバージョン(3.6.65+?)のsqlite3を要求してくれちゃいます。 当時のdebianのaptitudeだと届いてませんでした。
一応既存のsqlite3があったので、別の場所にsqlite3 v3.7.5をインストールして、1.9.2のgem installをかける流れを記述します。が、人によっては特に問題にならないと思います。
/opt/ 配下に個別のディレクトリを作ってインストールする前提です。
cd /opt
sudo wget http://www.sqlite.org/sqlite-autoconf-3070500.tar.gz
sudo tar vxzf sqlite-autoconf-3070500.tar.gz
cd sqlite-autoconf-3070500
sudo ./configure —prefix=/opt/sqlite-autoconf-3070500
sudo make
sudo make installsudo gem install sqlite3 —- —-with-sqlite3-dir=/opt/sqlite-autoconf-3070500
あとは、プロジェクトルートでbundle installすれば動く、はず。
cd $PROOT # パスは適当です
bundle install
unicorn-rails -E development -p 3000
# デフォルトのポートが3000なので、意味ないですがコマンド例として
これでいつものRailsページが表示されたと思います。表示された・・よね・・?
負荷もろもろや、開発環境は次のポストに回します。さーてどうしよう。
題名長いね。 息抜きついでに環境作ってるのでメモメモ。
VMware Playerはまあいいとして、Ubuntu10.04はCDイメージから簡易インストール。 ホストOSから開発中のページを見たいかなーと思って、ホストオンリー用の設定と、NATの設定を作ったけど、動作自体はUbuntuで確認できるから、常用モードはNATになると思う。
ブロアCにて。 後半の調子は悪いけど比較的上手くいった気がする。
TUMOI!TUMOI!TUMOI!TUMOIぅぅうううわぁああああああああああああああああああああああん!!!
あぁああああ…ああ…あっあっー!あぁああああああ!!!TUMOITUMOITUMOIぅううぁわぁああああ!!!
あぁクンカクンカ!クンカクンカ!スーハースーハー!スーハースーハー!いい匂いだなぁ…くんくん
んはぁっ!TUMOIインダストリーの桃色クーガーの耳をクンカクンカしたいお!クンカクンカ!あぁあ!!
間違えた!モフモフしたいお!モフモフ!モフモフ!耳耳モフモフ!カリカリモフモフ…きゅんきゅんきゅい!!
クーガーII型のTUMOIたんかわいかったよぅ!!あぁぁああ…あああ…あっあぁああああ!!ふぁぁあああんんっ!!
エンフォーサーロールアウトされて良かったねTUMOIたん!あぁあああああ!かわいい!TUMOIたん!かわいい!あっああぁああ!
エンフォーサーIII型も発売されて嬉し…いやぁああああああ!!!にゃああああああああん!!ぎゃああああああああ!!
ぐあああああああああああ!!!クーガーなんてBRじゃない!!!!あ…マスターズガイドもフィギュアもよく考えたら…
T U M O I ち ゃ ん は 現実 じ ゃ な い?にゃあああああああああああああん!!うぁああああああああああ!!
そんなぁああああああ!!いやぁぁぁあああああああああ!!はぁああああああん!!エイオースォぁああああ!!
この!ちきしょー!やめてやる!!現実なんかやめ…て…え!?見…てる?大破したTUMOIちゃんが僕を見てる?
大破したTUMOIちゃんが僕を見てるぞ!TUMOIちゃんが僕を見てるぞ!ピロピロされてるTUMOIちゃんが僕を見てるぞ!!
38式構えたTUMOIちゃんが僕に話しかけてるぞ!!!よかった…世の中まだまだ捨てたモンじゃないんだねっ!
いやっほぉおおおおおおお!!!僕にはTUMOIちゃんがいる!!やったよツェーブラ!!ひとりでできるもん!!!
あ、キメラアセンのTUMOIちゃああああああああああああああん!!いやぁあああああああああああああああ!!!!
あっあんああっああんあエッジ様ぁあ!!ケ、ケーファー!!ヘヴィガードぉああああああ!!!シュライクァぁあああ!!
ううっうぅうう!!俺の想いよTUMOIへ届け!!エイオースのTUMOIへ届け!!
ダッキャン(強襲兵装限定)
- 補助武器(近接武器)を構えておく
- ブーストゲージがなくなる直前までダッシュ
- 最後の1回分を残したダッシュ時にACon
- ACダッシュ斬りを出した直後にACoff
- ACダッシュ斬り発動時点からブースト回復&SP消費量は発動コスト+α程度
メリットは「操作が比較的簡単で、安定したスピードが出せる」、デメリットは「剣振り中は隙が大きく、視線方向に直進しか出来ない」
ステキャン(強襲兵装限定)
- 1~2回ダッシュする
- 最後のダッシュを少し長めに出してる途中にACon
- ちょっとでもSPを消費したらダッシュを離す
- 慣性移動中にACoff
- SP消費時点からブースト回復&SP消費量はダッキャンより少ない
メリットは「SP効率がもっとも良く、ダッキャン相当のスピードが出る」、デメリットは「操作難度が高く、下方向の武器チェンジ頻度から視線を維持しにくい」
屈キャン(全兵装)
- 2~3回ダッシュする
- 最後のダッシュの減速が始まったあたりで、アクションボタン→ダッシュと素早く入力
- 屈伸運動が終わったら再度ダッシュ、以降繰り返し
- アクションボタンが押された時点からブースト回復&SP消費無し
メリットは「全兵装・全方向OK、視線維持が容易」、デメリットは「ステキャン・ダッキャンほどのスピードが出ない」