くりにっき

フルスタックキュアエンジニアです

RubyKaigi 3日目まとめ #rubykaigi

重要なことなので最初に

家に帰って感想エントリ書くまでがRubyKaigiです

僕はRubyKaigi会期中3日間当日レポうp完了!!!

会期中+αの感想エントリ

Ohayō Rails (おはよう Rails)

弊社から @ さんが登壇していました

  • 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の実装に詳しくない
  • rubyのソースを読むための地図
    • Ruby Under a Microscope
      • ruby2.0なのでそこそこ新しい
      • ruby->AST->バイト構造の説明が詳しい
      • 日本語版の「rubyのしくみ」がオーム社から秋ごろ発売予定だが、営業調整ができてないらしいので詳しいことを出版社に聞くのはNGとのこと
    • Ruby Hacking Guide
      • ruby 1.7.3ベースだけど汎用的なことについて書いてるのですごく役に立つ

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に上げた話

最後に

スタッフの皆さん、登壇者の皆さん、お疲れ様でした!!!

ルビーさんw #rubykaigi #rubykaigiA

*1:元ネタは達人プログラマかクリーンコード辺り