2008-10-26 (Sun)
▲ Rails勉強会@東京#34に参加
Rails勉強会@東京#34に参加してきました。写真は、勉強会とは名ばかりで実はRails社交界だった現場の激写ではなく、1Fで開催していた大変華々しいイベントの様子。
これだけでは疑われてしまうのでid:moroさんのフォーマルな司会姿もアップしておきます。
セッション内容は、
- Rails 2.2をほげる (松田さん)
- Scaffoldの半歩先へ (Yuumiさん)
- Railsのリファレンスをたんたんと読む (Yuguiさん)
- Railsプラグイン事情について (及川さん)
といずれも先進的だったり実戦的だったり、たいへんためになるもの。
参加したセッションについてメモしました。
Rails 2.2をほげる
- ついにリリースされたRails 2.2RC1を検証する
- リリースノートが過去ないぐらい丁寧にまとめられているのでこれを見るといいよ
- リリースノートにRuby 1.9対応と書いてあるけど動くわけがない。1.9に対応したコードはAsakusa.rbが寄贈した部分だけ。Asakusa.rbの成果をもってRuby 1.9対応と書いてる可能性大。Asakusa.rbすげぇ!++
- Asakusa.rbは来月くらいに第4回目を開催するよ
- I18Nが入ったよ。詳細は割愛
- 全体的にチューニングされて高速化されてるよ。Railsをバージョンアップするだけで速くなるかも
- スレッドセーフになったよ。でもデフォルトではオフになってるよ。environment.rbで設定できるよ>config.threadsafe!
- コネクションプーリングが導入されてるよ。database.ymlで設定するよ。デフォルトで5個だよ
- ActiveSupportで地味だけど細々拡張されてるよ。Date#today?とか
- Shallow Route Nestingというコントローラの拡張は意味わからんね?
- Ruby on Rails Guidesができたよ。Rails 2.2の前後あたりからすごくドキュメントが充実してきたよ。全部読みたい!
- Migrationのファイル命名規則が不評だったのでまた変わるよ。でもデフォルトは現状維持だよ。config.active_record.timestamped_migrations = falseすると1.0のころの番号付けに戻るよ
説明を割愛されたI18N機能に関してはYuumi3さんが実際にためしているのでこちらを参照に。素晴らしい。
プラグインとの付き合いかた
後半のセッションでは及川さんが自身の苦労を元に、バージョンアップが速すぎるRailsや、多種多様でカオスになっているプラグイン郡とのSIerでの付き合い方、SIerならでは苦労についてディスカッションしました。わたし自身も会社での取り組みもまじえながらいくつかコメントさせてもらいました。
困っている点をざっくり整理すると
- 開発効率を上げたいためにプラグインを探すけれども、情報が分散していて見つからない
- RubyForgeだったりいつのまにかGitHubになったり
- GitHubにあってもいろんな人がforkしていてオリジナルがどれかわからない
- Railsのバージョンアップによって動かないプラグインやサポートされなくなるプラグインが出るがそういった情報もわからない
- 自分以上に他人に勧めるときにとても困る。特に仕事上で他人に勧めなくてはならないとき。自分も常時トラッキングできるわけではないからサポートしきれない
- プラグインで、開発効率あがんないんじゃね?
ということだと理解しました。
会場から出た意見としては、
- プラグインの選定は自己責任がとれる範囲で、最悪なくなっても自分でなんとかできる範囲で使っているよ
- そういう意味では長い目でみると開発効率は上がんないかもね
- どんどんよくしていくRubyやRailsの雰囲気は大事にしたい
- たくさんforkされていて迷ったらオリジナルに当たるのがいいよ
- Rails 2.1からgemパッケージでも完全にRailsプラグインの機能をサポートできるようになったので、今後のプラグイン配布はgemに集約されていくんじゃない
- おすすめgemパッケージを集めて配布用のオレオレgemリポジトリをたてようとしてるよ
- ちょうどgemパッケージを紹介するレイティングサイトが札幌Ruby会議で紹介されてたよ> http://gemspec.info/
などが出されてました。
及川さんは、
公開するプラグインはテストコードを付属させることを徹底してほしい
ということもおっしゃっていたと思うのですが、これに対してその場ではうまく言えなかったのでブログでまとめてみます。
まずひとつに他人の行動を制御することはできないことを指摘します。ナニナニをしないと公開しちゃダメということよりも、たくさんのソースコードが公開されている世界のほうが好きです。検索性に関しては検索する側の技術や道具によって改善していきたいですね。先のgemパッケージのポータルサイトもそうですし、GitHubでforkしている祖先を追いかけたりする手順とかです。
もうひとつ、テストコード自体はこの問題に対して支援してくれるかもしれないけれど、解決にはならないと思います。 逆にテストコードによって黄金のパターンを築いたプロジェクトは開発サイクルが早くなりバージョンアップも頻繁になるかも...^^
TDDにおけるテストコードは、健全な開発サイクルを進めるために有用ですが、 やはりソースコードには違いないわけで、他人のソースコードを読みたがらない人々にとっては、 ドキュメント代わりにはならないのではないかと思うのです。
SIerとしてテストが重要だから「テストが無いなら公開するな」というよりも、SIerから重要だと認識しているテストコードを寄贈するというほうがお互いに歩み寄れる気がしています。
安定した品質のよいプラグインやgemパッケージについての情報の集約と共有がみんなでできる環境を作っていけるとよいですね。
最後に松田さんから聞いたRails国際化の総帥が言っていたという言葉で締めくくります。
「最もstableなRailsとはEdge Railsだ」
SliceHost
最後に出た「最近おすすめのRailsホスティング環境は」という話題でYuumi3さんといっしょにSliceHostをがっつりと宣伝してきたのでアサマシリンクしときますね><
# takai [MT-Safe対応についてほげってないのかー。]
# ko [takai先生の登場が待たれます。]
# Yuumi3 [SliceHost社 Rackspace Hostingに買収されたんですね・・・]
# takedasoft [いいレポートだなぁ。koはもっと己の文才を発揮したらいいですね]
# lazyw0rkers [松田さんの最後の言葉、フォローありがとうございます。 stableだったのか。Steveと聞こえてたので誰だとばかり..]