2日目
High Performance Rails(Issei Naruta氏)
クックパッドでRailsアプリケーションの高速化を担当されている@mirakui氏のお話。
以下はメモです。
- レスポンスタイム200msが速い、遅いの指標
- ログのレスポンスタイムを見るときにX-Runtimeを見るべき。この値はアプリケーションサーバーの最も外側に位置するRackが計測しているので実測値に近い
- チューニングの大前提は「Rubyに処理をさせない」。特にActiveRecordオブジェクトの生成が重い
- ルーティングはcontroller名、アクション名を指定せず名前付きルートを使ったほうが高速
- スロークエリはArproxyを使ってfluentdに記録している
Continuous gem dependency updating with Jenkins and Pull Request(NAGAE KENSUKE氏)
刺身ブーメランさんの依存したGemのアップデートをJenkinsで行おうというお話。
技術的な点だけでなく
- 人力で依存性を解決するという「やる気」に依存する作業は長続きしない
- メール通知だと「義務感に欠ける」
など心理的な面を強調していたのが印象的でした。
Jenkins氏のアイコンがついたユーザーからプルリクを送るというのはとてもいいアイデアだと思いました。
Concerning `Applications'(諸橋恭介氏)
moroさんのAcitveSupport::Concernのお話。
以下はメモ
- AcitveSupport::ConcernとはRubyのmoduleを拡張してるもの
- Rails4ではConcernの置き場所も決まっている
- 共通処理をまとめる。名前をつけてその性質を切り出す
- ただ分けるだけじゃなくて、リファクタリングすること
- refinementsを使えばベースクラスを汚染すること無く 機能を拡張できる
このお話を聞いた後、テンションが高くなった私はホテルでプロジェクトのコードをリファクタリングしてModelの共通処理をConcernに切り出しました。今までは独自の方法で動的に作成されてたメソッド群が本来のレールに乗った感じ。月曜日にテストしてマージするのが楽しみだ!