rastam on rails

東京在住のマレーシア人 Rubyist

Ruby Weekly #485: 日本語サマリー

rubyweekly.com

Highlights

Modern Ruby Serializers

ActiveModel::Serializer より軽量・高速な SimpleAMS gem の紹介。

Rails is Fast: Optimize Your View Performance

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

URI.escape is Obsolete? What Now?

obsolete となった URI.escape URI.encode の代替案。素 Ruby では、クエリパラメータのみ URI.encode_www_form_componentURI.encode_www_formエスケープ。RailsHash#to_query Hash#to_param で。

Changing a UI Control and DB Schema on a Production Rails App

ゼロダウンタイムで belongs_to or has_many のプルダウンを HABTM のチェックボックスに移行する手順。

  1. HABTM 用テーブル作成。
  2. コールバック or DB トリガーデ HABTM 用テーブルに書き込む。
  3. 旧データを HABTM ようテーブルに書き込む。
  4. 新旧データ整合性確認。
  5. has_and_belongs_to_many アソシエーション、チェックボックスに切り替える。
  6. 不要なカラム、コールバック、トリガー削除。

Ruby 2.7 Allows Placing of Comment Lines Between Fluent Dots

Class
  # コメント
  .method

Ruby 2.7 以降は、こういう行間コメントが書けるようになった。

The Basics of Migrating to Strong Parameters

Rails 3 以前の attr_accessible attr_protected をストロングパラメータに移行する作業を一部自動化してくれる rails_upgrader gem の紹介。

Rails Flaky Spec Solutions

flaky テスト解消練習用 rails_flaky_spec_examples リポジトリーの紹介。

Code and Tools

ruby-warning: Add Custom Processing for Warnings

指定した警告を無視 or カスタム処理定義できるようにしてくれる gem。

Byebug: A TracePoint-Powered Ruby Debugger

今週 Ruby 2.7 に対応するようになった、デバッグ用 gem。

crass: A Ruby CSS Parser Compliant with the CSS Syntax Level 3 Spec

CSS パース用 gem。

Cache Crispies: A Fast, Flexible Rails Serializer

キャッシングを優先したシリアライザー gem。メンテ状態があやふやとなった ActiveModel::Serializer の代替案。

Quickbooks-Ruby: Use the Quickbooks Online REST API V3 from Ruby

Quickbooks Online API クライアント gem。

Commander: A One Stop Shop for Building Command Line Tools

CLI ツール用フレームワーク gem。

Truemail 1.5.1: A Configurable Plain Ruby Email Validator

メアド validation 用 gem。

Loaf: Manage and Display Breadcrumb Trails in Rails Apps

パンくず用 gem。