RailsDevCon2010に行ってきた
今日(というかもう昨日ですね)はRailsDevCon2010に行ってきました。場所はオラクル青山センターです。Rails系のイベントに行くのは久々だったので、いろいろと参考になる情報を得ることができました。
以下、このイベントに関する所感です。
RailsDevCon2010について
RailsDevCon2010に行ってみて感じたことは、Railsを軸にしたカンファレンスはニーズが相当あったのだなということでした。
RailsDevConは以下の問いに答えるために開催されました。
(上記いずれもRailsDevCon2010のページより引用)
イベントの目的をまとめてしまえば、事例の紹介とノウハウやベストプラクティスの共有、あとはエンジニア同士の交流と言うことになるでしょう。日本では、rubyistとRails使いは被ってはいますが、近いようで違う存在なので、切り離したイベントが行われたことには大変意味がありました。
講演者の人選ももエンタープライズ、コンシューマ(ソーシャルゲーム)、TDDというかBDD系の方々とバランスが取れていました。いや、TDDに偏ってるけど(笑)。初回と言うことを考えれば、とてもいい人選だったように思います。達人出版会の対面販売とか、面白い試みもありました。
次回以降も期待ですね。以下、個別のセッションの感想など。
渡米して感じたこと(@masuidriveさん)
ひとことで言うと、海外経験をおもしろおかしく紹介したという感じですが、役立つ話がちらほらと。面白そうなところを以下にピックアップしました。待遇や求められているスキルのところは参考になるところも多いと思います。
Rails情報源の歩き方(仮)(@IT副編集長、西村賢さん)
最新の情報を大量にウォッチしなくてはならない記者が、Rails系をウォッチする際にどのような情報源にあたるのかという点で非常に興味深い発表でした。試しにRailsで記者の業績(各サイトに投稿した記事のはてブ数などの情報が見られる模様)を見られるサービスを作ったりもしているとのこと。
発表名が(仮)のままなんだけど、これでいいのかな・・・?
Railsに関する情報は英語が多いので、英語系の情報源が充実していました。全ては追えませんでしたが、一部を以下に紹介します。
- 公式サイトをチェック:http://rubyonrails.org/
- Ruby on Rails: Screencasts
- Ruby on Rails Guides
- Ruby on Rails Documentation
- ドキュメント上でメソッドの実装がその場で見られるRubyの文化は有り難いとのこと
- 公式ブログ:Riding Rails
- Rails Wiki => Rails Wiki
- 公式リポジトリ:rails's rails at master - GitHub
- 公式BTS(スパム多し):なぜかアクセスできず。。。
- 公式スクリーンキャスト:Ruby on Rails: Rails 3 Screencasts
- 停滞気味だけど、Edge Rails.info :: Articles
- プラグインを探す
- githubでウォッチ数とフォーク数を見るのもいい(200くらいウォッチされていれば、結構いけてる、ただし、更新が停止していないか確認すべし)
- Asakusa.rb
- RubyGems.org | your community gem host
- The Ruby Toolbox - Know your options!
- Rails Plugins Compatibility Tracking - RailsPlugins.org
- Rails情報収集系、教育系
- コミュニティ/カンファレンス系
- その他
- Matzにっきにたまに重要な情報が・・・
これだけ見ても情報のたぐり方が凄いとしか言えません。近々、@ITでRailsの情報ハブとなるサイトが始まるそうです。期待ですね。
とあるソーシャルアプリの開発運用(ドリコム@onkさん)
おそらく、今回の発表でもっとも面白かった発表でした。ソーシャルアプリの開発における問題点を以下の3つにまとめて、工夫した点などを紹介してくださいました。
以下、個別の内容について。
- Social APIを利用したアプリ開発のデバッグ
- net-http-spy gemでロガーを仕込んだり、tcpflowでサーバに来るパケットをチェック
- 困ったらレスポンスをチェック
- 困ったらTCPレイヤーまで降りる
- ユーザー数の急激な増加
- 負荷の見積もり
- DBに関する工夫
- ゲームは更新系のクエリが多いので、レプリケーションだけではmasterのDiskIOが溢れるため、垂直分割必要。これにより、JOIN不能(has_many等が使えない)
- データ量の増加(レコードが増えるクリックを1秒1クリックとしても、毎月260万レコードが増加、普通は数千万レコードが増える)に対応するために、パーティショニング
- 負荷テスト
- 短納期
- 2ヶ月でリリース、1ヶ月に2回の更新などあたりまえ
- Railsらしさを大切にして開発を高速化
- 無駄なドキュメントを作らない
- URL設計書、ER図だけで進める
- ログや現在のサービスの状況を最速で確認できる環境を作って、対応策を素早く
かなり濃かったので、発表資料の公開が待たれます。メモの半分も記事にできませんでした。。。
Railsプロジェクトを成功させるために現場ができること(ukstudioさん)
フリーランスとして活躍されている@ukstudioさんの現場から得た知見を発表とのこと。抽象的な話になってしまっていましたが、概ね頷ける内容だったので、これまでの経験を思い返してあれこれ考える材料になりました。
技術的な負債をため込まないために、開発プロセスに技術的な負債を返す工程を含めようという話。
- TDD
- バージョン管理
- 使わない機能は技術的な負債と同じなので、減らす工夫も必要
思うに、この種の発表はどうしてもふわふわとした内容になりやすいので、技術的な負債の具体的な例、TDDがなぜモジュールの結合度を下げて凝集度を上げるのか、TDDが発生を抑えてくれる負債の例、リファクタリングが解決してくれる負債の例、バージョン管理のポイントなど、どれかに絞った話が聞きたかったかも。
現実の世界で "はじめる!Cucumber"(@moroさん)
Cucumberの導入について、現実的に導入するための手順を丁寧に解説。以下の3つの疑問を軸に、わかりやすく導入方法を紹介していました。
- 日本語の情報がない
- 今のプロジェクトへ適用する作戦が思いつかない
- 日本語のシナリオに使い道がない
実はこの講演が一番実用的だったと思います。
- 誤解、導入に失敗する考え方
- より適した考え方
個人的には、動かないCukeでも、ユースケース記述に近い内容になるので、仕様の共有に有効なドキュメントになり得ると考えています。特にエンタープライズではそうでしょう。それがテストになるなんて素晴らしい世界。一度、実案件で使ってみたいものです。
Rails Add-onsで楽々開発 - youRoomを題材に -(SonicGarden松村さん)
youRoomの開発で使用したプラグイン、ウェブサービスなどの紹介。本業に関係ない独狐炉は外部のサービスなどを活用する姿勢に、共感を感じました。
- プラグイン系
- OmniAuth 認証フレームワーク
- searchlogic gem
- サービス系
- GoogleDocs
- Amazon Web Sevice
- heroku
- Hoptoad: The app error app
- 情報共有基盤
初めてがRuby
始めてさわる言語がRubyという世代が生まれつつあるようで、@a_matsudaさん、@yuumi3さんの教え子達によるパネルディスカッション。
- 質問1 Ruby/Railsをどうやって勉強しましたか?
- 質問2 Ruby/Railsを勉強していて躓いたところは?
- 質問3 わからなかったことがわかるようになった瞬間は?
- まとめ Rubyここがいいよね?
- 質問 最初にこれを教えていてくれたらもっと早くに理解できたのに、というものはありましたか?
若い世代の話で非常に興味深い内容でした。教育を通じてRuby/Rails文化を育てていくということは非常に大切なことです。教育系の人たちの発表は次回以降も聞きたいです。
まとめ
次回以降のイベントも楽しみです。エンタープライズだと契約上難しいところもあると思いますが、そちらの方面の事例の話が入るともっと興味深いと感じました。私はWeb系なのであまり仕事上は関係ないので、ドリコムさんの事例だけで十分満腹でしたけど。
いずれにせよ素晴らしいイベントでした。運営の皆様、お疲れ様でした。ありがとうございました!