Ruby Weekly #577: 日本語サマリー
Highlights
Rails コアチームのペアレビュー実況。主にベストなメソッドインタフェースを議論してる。
Articles & Tutorials
Making a GitHub Issue-Style File Uploader Using Stimulus and Active Storage
GitHub のコピペ or D&D だけでファイルアップロード・添付する、超便利機能を Stimulus で実装する方法。
Ruby Weekly #567: 日本語サマリー
Highlights
Privacy-Aware Rails Consoles with console1984 and audits1984
rails console
でユーザの個人情報など匿名化してくれる console1984 gem と、console1984 利用ログをブラウザーで照会できるようにしてくれる audits1984 gem。
Articles & Tutorials
bundle update に強いモンキーパッチの書き方。ざっくりいうと、上書きしている API が変わっていないことをモンキーパッチ内で確認すること。変わった場合は例外を投げること。
大量のメールを deliver_later
しようとしたら、Redis のキューにジョブを積むだけでも長時間がかかり、リクエストがその間ずっと待っている状態。
Sidekiq::Client.push_bulk
使えば一瞬で終わるが、ActionMailer は対応してないから、オレオレ実装せざるを得ない。
Code & Tools
wipe_out: Library for Resetting Data in Rails ActiveRecord Models
ユーザ退会などで個人情報をマスキング・匿名化してくれる gem。
Ruby Weekly #560: 日本語サマリー
Highlights
Security Fix あり。バージョンアップしましょう。
Understanding Factory Bot Syntax by Coding Your Own Factory Bot
オレオレ FactoryBot を実装してみることで FactoryBot の仕組みを理解する。deepL で翻訳できる記事もあれば、おまけに動画もある。
動画は TDD で実装してるスクリーンキャスト。TDD に興味がある人や、英語リスニングに自信がある人はぜひ。
Articles & Tutorials
The Shortest Path to Get Set Up with Automated Accessibility Testing in Rails
RSpec + axe gem で a11y テストを自動化した実装例アプリ。
includes
vs preload
vs eager_load
。
Code & Tools
ActiveRecord のメンテナーの tenderlove 先生が Ruby で実装したアセンブラー。
Heroku の必要な DB コネクション数を計算してくれるツール。
Ruby Weekly #552: 日本語サマリー
Highlights
RSpec 作成者が gem の経歴を振り返った。
- 2001 年に TDD を教えてた仕事がそもそものきっかけ。
- XUnit 表記は分かりづらかった(actual・expected 引数の順番が直感的じゃなかった)から、授業で使える DSL 作った。
- Bob Martin 先生の名言「Testing is about specification not verification」をもとに RSpec と名付けた。
- 実務では
Test::Unit
使うべきだと信じてたから gem 化しなかった。 - RubyConf 2005 にやっと gem としてリリースしてみた。意外とバズった。
- 2006 年に David Chelimsky 先生がコントリビューターとして参戦。
Articles & Tutorials
Some Useful Active Support Features You May Not Have Heard Of
知られざる ActiveSupport 便利機能。
Callbacks
Configurable
CurrentAttributes
MessageVerifier
MessageEncryptor
TDD の際は高レベルテストから書け、というアドバイス。
多数 Sidekiq ジョブの同時実行防止方法。
- フラグで制御
- キューにジョブが積まれてるか確認。
- Sidekiq Enterprise に課金して
sidekiq_options(unique_for:)
設定 - sidekiq-unique-jobs gem(一部 Lua 言語で実装されてる)
ActiveJob の場合は
役に立つ git 裏技。
- 空コミット
- ログを読みやすくする
- 不要なローカルブランチを捨てる
git rebase
などでうっかり消したコミット復元- 部分的
git add
git bisect
自動化
Ruby Weekly #550: 日本語サマリー
Highlights
Rails 7 実装中機能。気になったのは:
- 画像が全部デフォで lazy ロードするように設定できる
has_one :through
アソシエーションもbuild
・create
できる- ActiveRecord カラム暗号化
View Component を Storybook でプレビューする話。view_component_storybook gem で。
Basecamp 社内騒動。あれ以来は社員 1/3 退職しちゃった。
MAKE="make --jobs $(sysctl -n hw.ncpu)"
環境変数を付けると、bundle install
並列実行で高速化できるらしい。
Ruby Weekly #549: 日本語サマリー
Highlights
How to Build An App, Get Acquired by GitHub, Buy An App Back From GitHub and Then Sell It Again
Speaker Deck の経歴。
- Ruby + ImageMagick で実装。
- RubyConf で GitHub CEO に出会った。
- GitHub に買収され、作成者が GitHub 社員となった。
- GitHub では、(作成者に)メンテされてたが、あまり成長してなかった。
- 作成者が GitHub から買収する決意をした。
- GitHub は即刻、作成者が提案した値段よりも 90% 安く売ってくれた。なぜかというと、Microsoft 買収の話が決まってた。SlideShare を商品にしてる Microsoft に Speaker Deck を殺されたくなかったから。
- 作成者は広告収入で運用費を一部賄ったが、コロナで広告収入 0。
- 有料機能実装で初月から黒字化。
- Box Out、Flipper Cloud と同時に運営するのがストレスとなったから、Speaker Deck を売ることにした。
Articles & Tutorials
VCR ようわからん人向けチュートリアル。
ActiveRecord の .scoping
メソッド知らなかった。
Code and Tools
フォームオブジェクトに特化した gem。nested attributes もいい感じにやってくれるらしい。
あったほうがいいインデックスを検知してくれる gem。