Ruby Weekly #490: 日本語サマリー
Highlights
Hanami の API 用フレームワーク登場。パフォーマンスが速いらしい。
Ruby 2.7 も使えるようになった AWS Lambda。
4 月の RubyKaigi 2020 スケジュール発表。
Articles & Tutorials
Jekyll 静的サイトのリンクが全て遷移できるかどうかを、Capybara でテストした話。
ダウンタイムをうっかり起こしちゃう方法。
ActiveRecord::Base.transaction
乱用- 重い処理うっかり囲いがち
- 長時間の
RowExclusiveLock
がマルチスレッド環境でデッドロック起こしたりするから - rails-pg-extras gem で PostgreSQL のデッドロックを検知・強制終了
rails console --sandbox
- 終了までトランザクション張っちゃう
- 重い migration
- strong_migrations の README を参考にしよう
- DB コネクションプール不足
- puma、sidekiq などの設定が config/database.yml の
pool
を超えないように要注意 - PostgreSQL の
max_connections
は PGTune で調整
- puma、sidekiq などの設定が config/database.yml の
Rails Has Added a 'Strict Loading' Mode to Prevent Lazy Loading
N+1 防止用 Rails 6.1 の strict_loading
。includes
付け漏れたら ActiveRecord::StrictLoadingViolationError
を投げてくれる。
Rubocop の新規 cop の Enabled
フラグを明示的に設定するまでは警告を出力するようになった。
rackup
コマンドのコードリーディング。.ru ファイルは Rack::Builder
オブジェクトの binding で eval
される。
Heroku CI でテストを並列実行するように設定する手順。。
Code and Tools
エラー調査に役立つ画面を表示してくれる Rack ミドルウェア gem。
プッシュ通知用 gem。
will_paginate 3.3: A Pagination library for Rails, Sinatra, and More
ページネーション用 gem の Ruby 2.7・Rails 6 に対応したマイナーバージョン。
ActiveRecord 表示準操作用 gem。