Ruby Weekly #485: 日本語サマリー
Highlights
ActiveModel::Serializer より軽量・高速な SimpleAMS gem の紹介。
Rails ビュー軽量化戦略。
- SQL の N+1 解消。
- 不要なカラムなど DB からロードしない。
- ビューから直接 DB 叩いてるクエリをコントローラに移す。重複しているクエリに気づいきやすくなる。
- ページネーション。
- Turbolinks で HTML レンダリング減らす。
- AJAX で HTML レンダリング減らす。
- WebSocket で HTML レンダリング減らす。
- ビューをキャッシュ。
- SQL クエリをキャッシュ。
- DB インデックスを張る。
ReverseCoverage: Find Which Tests Execute Which Lines of Code
コードをカバーしているテスト特定用 ReverseCoverage gem 紹介。
Articles & Tutorials
obsolete となった URI.escape
URI.encode
の代替案。素 Ruby では、クエリパラメータのみ URI.encode_www_form_component
や URI.encode_www_form
でエスケープ。Rails は Hash#to_query
Hash#to_param
で。
Changing a UI Control and DB Schema on a Production Rails App
ゼロダウンタイムで belongs_to
or has_many
のプルダウンを HABTM のチェックボックスに移行する手順。
- HABTM 用テーブル作成。
- コールバック or DB トリガーデ HABTM 用テーブルに書き込む。
- 旧データを HABTM ようテーブルに書き込む。
- 新旧データ整合性確認。
has_and_belongs_to_many
アソシエーション、チェックボックスに切り替える。- 不要なカラム、コールバック、トリガー削除。
Ruby 2.7 Allows Placing of Comment Lines Between Fluent Dots
Class # コメント .method
Ruby 2.7 以降は、こういう行間コメントが書けるようになった。
Rails 3 以前の attr_accessible
attr_protected
をストロングパラメータに移行する作業を一部自動化してくれる rails_upgrader gem の紹介。
flaky テスト解消練習用 rails_flaky_spec_examples リポジトリーの紹介。
Code and Tools
指定した警告を無視 or カスタム処理定義できるようにしてくれる gem。
今週 Ruby 2.7 に対応するようになった、デバッグ用 gem。
crass: A Ruby CSS Parser Compliant with the CSS Syntax Level 3 Spec
CSS パース用 gem。
キャッシングを優先したシリアライザー gem。メンテ状態があやふやとなった ActiveModel::Serializer の代替案。
Quickbooks-Ruby: Use the Quickbooks Online REST API V3 from Ruby
Quickbooks Online API クライアント gem。
メアド validation 用 gem。
パンくず用 gem。