以前に所属していた会社であるワイズノットで「10分で作るRailsアプリ for Windows」でおなじみので増井さんによるrails講習会があるというメールを頂いて行ってきました。
rails講習会メモ
日本語化
- ActiveHeart or GetText-Ruby(better)
DBの変更管理
- Migration
- rake migrate
- rake migrate VERSION=3 (古い状態に戻せる)
- rake remote:migrate (サーバでmigrate)
デプロイ管理
- カピストラーノ capistrano (deploy管理) (元SwitchTower)
- commandひとつでデプロイサーバ再起動
- rake deploy
- rake rollback
仕事で使う場合の障壁
- Railsで作れる人がいない
- デザイナはSmartyしかわからない(でも意外と問題無い)
helperをなるべく使わないとか - 近々デザイナ向けRails本が出るらしい
- DreamweaverのSmarty向けextentionとかもちょっと変えれば対応できる
- サーバがRailsに対応してない
- 安定して稼働できるか(やっぱりノウハウが必要)
- lighttpd+FastCGIはlighttpdが結構固まる事がある(lighttpdは開発が停滞)
- Apache2+mod_fcgid(経験無いが不安定らしい)
- Apache1.3+mod_fastcgiがいまのとこ一番安定している(稼働実績も多い)
- mod_rubyだと複数アプリが使えない(プロセス間でメモリが共有されちゃう)
- mangrel+Apache2.2 mod_proxy_balancer(最近の定番)
- 実際遅い(動的生成が超多い)
- cachingをたくさん使う
- それでも遅ければスケールアウトできる(mangrel+mod_proxyでスケールアウト)
質疑応答
- Q: scafoldからどれぐらい書き換える?
A: それほど書き換えない(完成コード自体短い) - Q: UnitTestはどのくらいの粒度でやるの?
A: Controllerはテストし辛いのであんまり。seleniumでのテストに注力。 - Q: 大人数での開発は?
A: みんなせいぜい2?3人。 - Q: DB設計で気を付ける点は? A: railsのサポート関数を考えたテーブル分割を考えたりします。
- Q: rails対応レンタルサーバは?
A: textdrivesが多い
rubyはメモリ制限ができないので共有サーバで動かしずらい - Q: DBの定義はいつ取ってるの?
A: productionモードでは起動時にメモリ上にキャッシュしてます。 - Q: 帳票アプリ向き?
A: PDF吐くやつはあるけど、気合いでどうにかする。
基本的な事項が聴けて凄く良かったです。やっぱりdeploy管理が気になります!