平凡なエンジニアの独り言 はてなブログ出張所

ピアノをこよなく愛するエセRubyistが適当に書き綴ります

RailsDevCon2010に行ってきた

今日(というかもう昨日ですね)はRailsDevCon2010に行ってきました。場所はオラクル青山センターです。Rails系のイベントに行くのは久々だったので、いろいろと参考になる情報を得ることができました。

以下、このイベントに関する所感です。

RailsDevCon2010について

RailsDevCon2010に行ってみて感じたことは、Railsを軸にしたカンファレンスはニーズが相当あったのだなということでした。

RailsDevConは以下の問いに答えるために開催されました。

  • 皆さんRailsを使っていますか?
  • Railsを上手く活用していますか?

(上記いずれもRailsDevCon2010のページより引用)

イベントの目的をまとめてしまえば、事例の紹介とノウハウやベストプラクティスの共有、あとはエンジニア同士の交流と言うことになるでしょう。日本では、rubyistRails使いは被ってはいますが、近いようで違う存在なので、切り離したイベントが行われたことには大変意味がありました。

講演者の人選ももエンタープライズ、コンシューマ(ソーシャルゲーム)、TDDというかBDD系の方々とバランスが取れていました。いや、TDDに偏ってるけど(笑)。初回と言うことを考えれば、とてもいい人選だったように思います。達人出版会の対面販売とか、面白い試みもありました。

次回以降も期待ですね。以下、個別のセッションの感想など。

渡米して感じたこと(@masuidriveさん)

ひとことで言うと、海外経験をおもしろおかしく紹介したという感じですが、役立つ話がちらほらと。面白そうなところを以下にピックアップしました。待遇や求められているスキルのところは参考になるところも多いと思います。

  • 海外ではスタートアップや新規案件にRubyがよく使われていること
  • Ruby系の求人はJavaPHPと比べれば少ないものの、新規案件が多く、条件がいいものが多い
    • Ruby/Rails3年、Facebookアプリ開発経験、RSpec、Cucambar、NoSQL経験ありとかだと、10万ドル〜17.5万ドル位の待遇
    • rubyistはスキルが高いという思い込みもある?
  • Ruby/Railsの技術は世界で通用する
  • 働き方など待遇面は交渉する余地がある
  • 仕事が日本に縛られることがないので、海外の仕事経験を持っておくと精神的に楽

Rails情報源の歩き方(仮)(@IT副編集長、西村賢さん)

最新の情報を大量にウォッチしなくてはならない記者が、Rails系をウォッチする際にどのような情報源にあたるのかという点で非常に興味深い発表でした。試しにRailsで記者の業績(各サイトに投稿した記事のはてブ数などの情報が見られる模様)を見られるサービスを作ったりもしているとのこと。

発表名が(仮)のままなんだけど、これでいいのかな・・・?

Railsに関する情報は英語が多いので、英語系の情報源が充実していました。全ては追えませんでしたが、一部を以下に紹介します。

これだけ見ても情報のたぐり方が凄いとしか言えません。近々、@ITRailsの情報ハブとなるサイトが始まるそうです。期待ですね。

とあるソーシャルアプリの開発運用(ドリコム@onkさん)

おそらく、今回の発表でもっとも面白かった発表でした。ソーシャルアプリの開発における問題点を以下の3つにまとめて、工夫した点などを紹介してくださいました。

  • Social APIを利用したアプリ開発のデバッグ
  • ユーザー数の急激な増加
  • 短納期

以下、個別の内容について。

  • Social APIを利用したアプリ開発のデバッグ
    • net-http-spy gemでロガーを仕込んだり、tcpflowでサーバに来るパケットをチェック
    • 困ったらレスポンスをチェック
    • 困ったらTCPレイヤーまで降りる
  • ユーザー数の急激な増加
    • 負荷の見積もり
      • アクティブユーザー10万として、1人100imp/day = 1000万imp/day
      • 230imp/sec(平均を取って、ピーク時を考慮して2倍)
      • 1秒に1リクエストを返すのなら、unicornインスタンスが230必要
      • memcache、DBともに1000 〜 2000qps必要
      • Webメモリ8GBのマシンが5台、memcacheは1台でOK、DBそれなりのマシンなら1台でOK・・・とはならない
    • DBに関する工夫
      • ゲームは更新系のクエリが多いので、レプリケーションだけではmasterのDiskIOが溢れるため、垂直分割必要。これにより、JOIN不能(has_many等が使えない)
      • データ量の増加(レコードが増えるクリックを1秒1クリックとしても、毎月260万レコードが増加、普通は数千万レコードが増える)に対応するために、パーティショニング
    • 負荷テスト
      • JMeterスループット、DiskIO、connection数をチェック
      • 50万ユーザーが3ヶ月遊んだデータを作ってテストを実施
      • faker gemなどを使うとテストデータを作りやすい
  • 短納期
    • 2ヶ月でリリース、1ヶ月に2回の更新などあたりまえ
    • Railsらしさを大切にして開発を高速化
    • 無駄なドキュメントを作らない
      • URL設計書、ER図だけで進める
    • ログや現在のサービスの状況を最速で確認できる環境を作って、対応策を素早く

かなり濃かったので、発表資料の公開が待たれます。メモの半分も記事にできませんでした。。。

Railsプロジェクトを成功させるために現場ができること(ukstudioさん)

フリーランスとして活躍されている@ukstudioさんの現場から得た知見を発表とのこと。抽象的な話になってしまっていましたが、概ね頷ける内容だったので、これまでの経験を思い返してあれこれ考える材料になりました。

技術的な負債をため込まないために、開発プロセスに技術的な負債を返す工程を含めようという話。

  • TDD
  • バージョン管理
  • 使わない機能は技術的な負債と同じなので、減らす工夫も必要

思うに、この種の発表はどうしてもふわふわとした内容になりやすいので、技術的な負債の具体的な例、TDDがなぜモジュールの結合度を下げて凝集度を上げるのか、TDDが発生を抑えてくれる負債の例、リファクタリングが解決してくれる負債の例、バージョン管理のポイントなど、どれかに絞った話が聞きたかったかも。

現実の世界で "はじめる!Cucumber"(@moroさん)

Cucumberの導入について、現実的に導入するための手順を丁寧に解説。以下の3つの疑問を軸に、わかりやすく導入方法を紹介していました。

  • 日本語の情報がない
  • 今のプロジェクトへ適用する作戦が思いつかない
  • 日本語のシナリオに使い道がない

実はこの講演が一番実用的だったと思います。

  • 誤解、導入に失敗する考え方
    • 完璧なCuke → 完璧なRSpec → 実装 → RSpecパス → Cukeパス
  • より適した考え方
    • それっぽいCuke → 必要十分なRSpec → 実装 → RSpecパス
    • 動かないCukeを書いて、動くように変更
    • 必要十分なCuke → 必要十分なRSpec → 実装 → RSpecパス → Cukeパス

個人的には、動かないCukeでも、ユースケース記述に近い内容になるので、仕様の共有に有効なドキュメントになり得ると考えています。特にエンタープライズではそうでしょう。それがテストになるなんて素晴らしい世界。一度、実案件で使ってみたいものです。

Rails Add-onsで楽々開発 - youRoomを題材に -(SonicGarden松村さん)

youRoomの開発で使用したプラグイン、ウェブサービスなどの紹介。本業に関係ない独狐炉は外部のサービスなどを活用する姿勢に、共感を感じました。

初めてがRuby

始めてさわる言語がRubyという世代が生まれつつあるようで、@a_matsudaさん、@yuumi3さんの教え子達によるパネルディスカッション。

  • 質問1 Ruby/Railsをどうやって勉強しましたか?
  • 質問2 Ruby/Railsを勉強していて躓いたところは?
  • 質問3 わからなかったことがわかるようになった瞬間は?
  • まとめ Rubyここがいいよね?
  • 質問 最初にこれを教えていてくれたらもっと早くに理解できたのに、というものはありましたか?

若い世代の話で非常に興味深い内容でした。教育を通じてRuby/Rails文化を育てていくということは非常に大切なことです。教育系の人たちの発表は次回以降も聞きたいです。

そういえば、Ruby系の人は優しいという話がありましたが・・・rubyistは恐いというのが定説だったのに!(笑)

まとめ

次回以降のイベントも楽しみです。エンタープライズだと契約上難しいところもあると思いますが、そちらの方面の事例の話が入るともっと興味深いと感じました。私はWeb系なのであまり仕事上は関係ないので、ドリコムさんの事例だけで十分満腹でしたけど。

いずれにせよ素晴らしいイベントでした。運営の皆様、お疲れ様でした。ありがとうございました!