重要なことなので最初に
家に帰って感想エントリ書くまでがRubyKaigiです
僕はRubyKaigi会期中3日間当日レポうp完了!!!
会期中+αの感想エントリ
Ohayō Rails (おはよう Rails)
弊社から @onk さんが登壇していました
- Railsはスタートアップが楽
- ディレクトリ構成とか決まってる
- 毎回似たようなコマンド叩いていけばおk
- デプロイやテストの環境もそろってる
- Railsがひいたレールは他の言語やフレームワークに影響を与えている
- ActireRecord
- Arelが賢いからあれの対抗馬が出ない(作れない)
- ARで書いていればクエリはある程度きれいになる
- 他のフレームワークだとORM周りは微妙に足りないことが多いので、Arelの枠内でなんでもできるのがすごい
- テストでメジャーなのはfactory_girl。あとはfabrication
- エコシステムが充実してる反面、覚えなきゃいけないことが多い
- padrinoはみんな知ってるし使ってるけど、productionで使ってる人は少ない
- privateなgemリポジトリがある会社は、gemを手直ししたい場合publicからgemをforkしてprivateのgemサーバにうpするのが多い
- ただしupstreamに貢献しないとあとで大変(本家に追従できないし、コントリビュートした方がみんな幸せになる)
- あまりgemが更新されてない場合、「gem更新してないんだった権限くれよ!」って言って権限貰ったこともある反面、華麗にスルーされるケースもある
- gemを全世界に公開すると全世界からマサカリが飛んでくるのでそれが障壁
- gemをは気軽に入れるけど使わなくなっても消し忘れることが多い
- セキュリティ部門が厳しいとコードを社外に出せないので、プライベートな時間でgemを作って社内にとりこむ
- 「こんなgemがあったんですよ!!!」
- railsはhtmlを返すのに一番適したアプリなので、json返すだけだとrails不要説
- 最近の若者は趣味はrails以外書いて、railsは仕事のフレームワークと割り切ってることが多い
- railsを書きたくない若くない人とどうやってサービスを作ればいいか心配
おまけ
みんなブックマークコメントで遊びすぎw
Speeding up Rails 4.2
- Aaronがたこ焼き仮面というのは秘密なので誰にも言ってはいけない
- https://github.com/evanphx/benchmark-ips は1秒間に5回実行したベンチマーク計測をする
- 不要なコードを削ることで最終的に何もなくなることがある。一番速いのは存在しないコード *1
- 一番大切なのは測って測って測ること
- 測らないと何が改善されたのか分からない
Practical meta-programming in Application
- rubyはリフレクションAPIが充実してるのでメタプロしやすい
- メタプロを使う時は問題領域をメタな観点からみつめる
- 例えばrailsのhas_manyはコードを直接返すのではなく、親子の関連性を返す
- まとめ
- メタな視点で抽出してコードをシンプルに書く
- リフレクションAPIでうすくラップする
Walking around ruby forest more deeply
Ruby で何か知りたいことがあれば #asakusarb っていう meetup があるので来るとよいです #rubykaigi #rubykaigiB
— SHIBATA Hiroshi (@hsbt) 2014, 9月 20
tending the ruby ecosystem
rubyのエコシステムに貢献するためにgemにContributeすることについての話
- gemが古くて自分でメンテしたい場合はまずプロジェクトオーナーを探して、見つけてメールしてみる
- 短期的な目的、長期的な目的をメールに添える
- メールはHelloで始めてThank youで終わろう
- メールを送ってもダメだったらforkして名前を変えて公開する、ライセンスは変えない
- travisのようなCIで複数のrubyのバージョンでテストするのが大事
Ruby 2.1 in Production
http://github.com/ をruby 1.8.7から2.1.2に上げた話
- githubは150 Model , 200 Controllers, 毎秒3000リクエスト, API 100ms, Web 300msくらい
- @tmm1 がgithubにJOINした時の構成がrails 2.3, ruby 1.8.7
- current/binにapp-rubyを入れてunicorn restartでバージョン切り替えるようにしてる
- 紹介されてたgem
最後に
スタッフの皆さん、登壇者の皆さん、お疲れ様でした!!!