2025/10/16に開催した RailsTokyo #1 で発表した資料です。 https://railstokyo.connpass.com/event/363339/
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Guardrails Are Not Code Smells | byroot’s blog 原文公開日: 2025/02/09 原著者: byroot -- Railsコアコミッター、Rubyコミッターであり、ShopifyのRuby/Railsインフラチームのシニアスタッフエンジニアです 日本語タイトルは内容に即したものにしました。 私がやりたいのは、Pitchforkに関する記事を書いて、これがどんな理由でできたのか、なぜ現在のような形になったのか、そして今後どうなるのかについて説明することです。しかしその前に解説しておく必要があることがいくつかあります。今回は「レジリエンス(resilience: 回復力)」についてです。 数年前、unicorn-worker-killer gemには重大なコードの臭い(code smel
週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Ruby 🔗 Rubyの可変長アロケーションプロジェクトがフェーズIIに Really excited to reveal the next phase
さて、どこからお話を始めましょうか。ここに到達するまでに長い長い旅路をたどりました。かつて私は開発にVagrantを使っていましたが、当時のVMは私の4GB RAMのノートPCでは少々重すぎました。そして2017年にコンテナへの乗り換えを決意したときに、やっとDockerを使い始めました。 しかしDockerで問題がたちまち解決したという気持ちではありません。自分自身やチーム、そしてすべての人々にとって完璧な設定を追求し続けてきましたが、「これでよし」と言える究極の設定はありません。標準的なアプローチを見出すまでにかなりの時間を要しました(2019年に本記事を最初に公開した時点でも相当の時間を費やしていました)。 本記事を最初に公開して私の秘密を隅々までオープンにして以来、多くのRailsチームや開発者が私の手法を採用し、さらに改良や貢献にもご協力をいただきました。 前置きはこのぐらいにし
概要 原著者Chris Salzbergさんの許諾を得て翻訳・公開いたします。 英語記事: A Packwerk Retrospective | Rails at Scale 原文公開日: 2024/01/26 原著者: Gannon McGibbon、Chris Salzberg 日本語タイトルは内容に即したものにしました。また、一部のパラグラフを分割しています。 CC BY-NC-SA 4.0 Deed | 表示 - 非営利 - 継承 4.0 国際 | Creative Commons Rails: モジュール化強制ツールPackwerkの導入を振り返る(翻訳) 2020年、ShopifyのチームはPackwerkという名前のRuby gemをリリースしました(関連記事)。Packwerkは、Railsアプリケーション内で境界を強制的に定めてモジュール化するツールです。Packwerk
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Don't Use Floats and Use the Ruby Money Gem to Represent Currencies - Andy Croll 原文公開日: 2021/11/15 著者: Andy Croll 日本語タイトルは内容に即したものにしました。 アプリケーションで金額を管理しなければならなくなることはざらにあります。何の話かというと、Rubyコミュニティにある素晴らしいオープンソースのソリューションを使えば、自分で開発するよりもずっと良い結果を得られるのです。 以下のようにするのではなく 金額を表現するときにFloatやBigDecimalを使う。 # マイグレーション add_column :products, :price, :decimal class Product < Application
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Active Record Encryption-- hint.io 原文公開日: 2021/07/06 原著者: Jason Dinsmore サイト: hint.io 日本語タイトルは内容に即したものにしました。 Rails 7のActive Recordに、実にクールな新機能が導入されることになりました。モデル内で使える強力なencrpyts宣言によって呼び出される、アプリケーションレベルの暗号化機能です。この新機能は、アプリケーションコードとデータベースの間に暗号化の層を提供します。要するに、ActiveRecord::Encryptionを用いたデータがActive Recordオブジェクトに読み込まれると平文になり、データベースに置かれると暗号化されます。 本記事では、この新機能の使い方の概要を説明し、いくつかの優秀な
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: What It Took to Build a Rails Integration for Rodauth | Janko's Blog 原文公開日: 2022/10/12 原著者: Janko Marohnić 日本語タイトルは内容に即したものにしました。 参考: 週刊Railsウォッチ20221025 RodauthをRailsと統合するのに必要だったこと 以下のrodauth-rails READMEもどうぞ。 Rails: 認証gem ‘rodauth-rails’ README(翻訳) Rodauthが登場した当時の既存のソリューションは、Rails(DeviseやSorceryの場合)か少なくともActive Record(Authlogicの場合)が必要だったので、ついにRailsに縛られないフル機能の認証フレームワ
はじめに 本記事ではこんなおとぎ話をします。私はOctokitに自動キャッシュ機構を追加したのですが、まったくうまくいきませんでした。しかしそのときの冒険が素晴らしかったので、それを元にHTTPキャッシュとFaradayミドルウェアのしくみ、それらを活用してAPI呼び出しを自動キャッシュする方法について本記事で解説します。 私は土手でパソコンの前に腰掛けてAPIレスポンスの手動キャッシュを繰り返しているうちに、何だかひどく疲れを感じ始めました。RFC 7234を1度2度眺めてみたものの、そこには挿絵も会話も書かれていないのです。"絵もおしゃべりもない本なんて何の意味もないわよね"と思いました。 しかし実を言うと、ある顧客のStackBlitzプロジェクトがすべての始まりだったのです。StackBlitzはブラウザで動くIDEで、(Octokit gemの助けを借りて)GitHub APIを
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Domain Events over Active Record Callbacks | Arkency Blog 原文公開日: 2016/05/03 著者: Robert Pankowecki サイト: Arkency Blog 参考: Domain Event 参考: ドメイン イベント: 設計と実装 | Microsoft Docs 2018/08/03: 初版公開 2022/09/27: 更新 最近Marcinの書いた「Railsアプリの最大のコードの臭いはActiveRecordのコールバックである」記事にあるように、コールバックはあっという間に制御不能になってしまう可能性があります。この記事がRedditに投稿された後、コメントで実に興味深いやりとりを見かけました。 重要なモデルがひとつあり、そこにはビジネス上重大な
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Rails now uses error_highlight to locate the columns where an error is present | Saeloun Blog 原文公開日: 2022/09/20 原著者: Swaathi Kakarla サイト: Saeloun Blog 参考: 週刊Railsウォッチ(20220920) Ruby 3.1のerror_highlight機能でエラー発生位置が詳しく表示されるようになった #45818は、現時点ではmainブランチにのみマージされており、7-0-stableブランチには含まれていません。また、error_highlightはRuby 3.1以降でのみ有効になります。 Ruby 3.1で導入されたerror_highlightと呼ばれる新機能によって、エ
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: How I migrated a Rails app from Webpack to esbuild and got smaller and faster JS builds | Arkency Blog 原文公開日: 2022/08/29 原著者: Jakub Kosiński サイト: Arkency 原文の章立ての一部を訳文で変更しています。 先週、私はJavaScriptコードが30万行を超えるかなり大規模なプロジェクトで、Webpack 4をesbuildに移行する作業を担当しました。私たちのRailsプロジェクトではJavaScriptスタックをメインアプリケーションに統合するのにWebpackerを使っていました。ここ数か月はもっぱら長時間のビルドと格闘し続け、さらにWebpackerが推奨ライブラリでなくなったこ
Ruby on Rails 7.0.3.1、6.1.6.1、6.0.5.1、5.2.8.1がリリースされました。 Happy Tuesday everyone! A set of releases has occurred! These releases address an important security issue, so please check it out! More information is here: https://t.co/EpxnsTJ3xt — Ruby on Rails (@rails) July 12, 2022 リリース情報: Ruby on Rails — Rails Versions 7.0.3.1, 6.1.6.1, 6.0.5.1, and 5.2.8.1 have been released! 以下はGItHubのリリースタグ↓です。今回はR
週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Rails: 先週の改修(Rails公式ニュースより) 今回は以下の差分のうちChangelogが変更されているものを見繕いました。 コミットログ: Co
こんにちは、hachi8833です。明日はRubyWorld Conference 2021ですね。 RubyWorld Conference 2021 いよいよ明日開催です! https://t.co/sDklVFyV6h — 株式会社万葉 (@everyleaf) December 15, 2021 週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterに
morimorihogeです。涼しくなってようやく生きていける感じになって何よりです。 今回はruby/debugに新しく導入されたChrome Devtools連携リモートデバッグ機能を動かしてみたので、そちらを紹介してみようと思います。 ことの起こり 新しいRuby標準デバッガとして開発が進んでいるruby/debugですが、先日こんなTweetがありました。 debug.gem and Chrome browser integration. Thanks Ono-san! pic.twitter.com/3aUdH2zbEo — _ko1 (@_ko1) October 14, 2021 なにこれすごくない!?と思い、今回の記事を書くに至りました。 動きとしては、デバッガのコンソールで open chrome コマンドを実行するとURLが表示され、そのURLにChromeでアクセスす
こんにちは、hachi8833です。N+1問題の検出といえばbullet gemですが、BatchLoaderはより積極的かつ一般性の高い方法でN+1を解決するgemです。 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Batching – A powerful way to solve N+1 queries every Rubyist should know 公開日: 2017/08/17 著者: exAspArk ブログサイト: Universe Engineering: Universeは2011年にカナダのトロントで創業され、ジャンルを超えたイベントや行事を検索できるプラットフォームを開発しています。 2017/09/07: 初版公開 2022/11/10: 更新 本記事では、バッチングと呼ばれる技法でN+1クエリを回避する方法、HaskelのHaxlやJavaSc
まとめ: アプリのサーバー設定はRuby Webアプリのスループットやコストあたりのパフォーマンスに大きな影響を与えます。設定の中でも最も重要なものについて解説します(2846 word、13分) RubyのWebアプリサーバーは、ある意味で自動車のガソリンに似ています。よいものを使ってもそれ以上速くなりませんが、粗悪なものを使えば止まってしまいます。実際にはアプリサーバーでアプリを著しく高速化することはできません。どのサーバーもだいたい同じようなものであり、取っ替え引っ替えしたところでスループットやレスポンスタイムが向上するわけではありません。しかしダメな設定を使ったりサーバーで設定ミスしたりすれば、たちまち自分の足を撃ち抜く結果になります。クライアントのアプリでよく見かける問題のひとつがこれです。 本記事では、3つの主要なRuby アプリサーバーであるPuma、Unicorn、Pass
Hotwireデモアプリを動かしてみたのは昨年以下の速報記事を出したときですが、せっかくなのでRuby 3.0でもやってみました。 速報: Basecampがリリースした「Hotwire」の概要 デモアプリはRails 6.1です。データベースはSQLite3を使っています。 動かした環境: OS: macOS X Catalina 10.15.7 Ruby: 2.7.1および3.0.0 (rbenvにて設定) Redis: 6.0.9 Redisがローカル環境にない場合はインストールが必要です。自分はHomebrewでインストールしました。 $ brew install redis $ brew services start redis デモアプリをgit cloneします。 $ git clone https://github.com/hotwired/hotwire-rails-de
2020.07.21 週刊Railsウォッチ(20200721後編)『パーフェクトRuby on Rails』増補改訂版発売間近、scan_left gemでレイジーなinjectほか こんにちは、hachi8833です。今週木金は祝日のため、来週7/27、7/28の週刊Railsウォッチは通常記事となります🙇。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 ⚓臨時ニュース: 『パーフェクトRuby on Rails【増補改訂版】』が7/25より発売🎉 つっつきの後で知りました。紙の書籍と電子版同時発売だそうです。 パーフェクトRails増補改訂版、PDF/EPUB版と、kindle版も7/25同日発売になりな雰囲気です!やっ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く