Ruby Weekly #402: 日本語サマリー
職場の Slack 窓で Ruby Weekly メルマガが毎週配信されます。その中から面白そうなものをピックアップして、日本語で簡単なサマリーを書くようにしています。そのサマリーをここでまとまさせていただきます。くだけた日本語で失礼いたします。
http://rubyweekly.com/issues/402rubyweekly.com
Highlights
Ruby 2.6.0-preview2 リリース。
- JIT 一部最適化
RubyVM::AST
新規追加Kernel#yield_self
のthen
アライアス- 無限 Range
(1..)
- など
Stripe 社が RubyKaigi で発表した、開発中の型チェックツール Sorbet。
筆者お気に入りの HTTP クライアント http.rb の機能紹介、Net::HTTP との比較。
ActiveRecord のメモリ肥大化は、データ型変換の遅延評価でオブジェクト作り過ぎているのが原因。
Ruby 2.6.0-preview2 ベンチマーク。Ruby 2.5.0 より 17.7% 高速化。
Tutorials
知られざる Ruby 標準ライブラリ。
- CLI 引数パース用
GetoptLong
、OptionParser
- 簡易 KVS
DBM
,GDBM
、SDBM
- オブジェクト永続化用
PStore
Observable
DRb
TSort
Math
Abbrev
Zlib
Ryan Davis 先生が自作 graphics gem でモンドリアン絵画風画像を生成してみた話。
Sidekiq ワーカーを書くルール。
- ワーカー内にロジック書くな。
- 実行時間の長いワーカー書くな。マスター・スレーブのワーカーに分けよう。
- ワーカーをディレクトリ別で整理しよう。
- スケジューリングは計画的に。
- 定期的に実行時間を監視し、必要に応じてリファクター。
条件分岐をコールバックで書く DSL 案。
redo
retry
next
の紹介と比較。
Concurrent Ruby の Concurrent::Future
で並行処理を実装した経験談。スレッド内例外が気付きにくくてバグの原因になったが、ラッパーで対応した。
Rails 5.2 Adds allow_other_host Option to redirect_back Method
Rails の redirect_back
メソッドに追加された allow_other_host
オプションで、外部サイトへの遷移が制御できるようになった。
Code & Tools
メソッドを非同期化(別スレッド実行)するマクロを提供してくれる gem。
ネスとされたアソシエーションから一括 pluck
してハッシュ返してくれる ActiveRecord 拡張 gem。select
での自前より高速!