Rubyニュースブリーフ 2021年Q3:Rails 7 Alpha登場、RubyConf 2021開催へ
Honeybadgerが四半期ごとにお届けするニュースブリーフでは、プログラミングコミュニティの重要な動向をコンパクトにまとめてご紹介しています。情報収集にかかる時間を削減し、本当に重要な作業に集中できるよう、編集部がニュースを厳選しました。
本ブリーフは、以下のカテゴリーで構成されています。
- イベント:カンファレンスやミートアップなど、今後開催予定および直近で開催されたイベント情報
- セキュリティ:最近報告された脆弱性情報
- プロジェクト:主要なコミュニティプロジェクトに関するニュース
- 注目トピック:コミュニティで話題になっている大きなテーマのまとめ
- その他の注目コンテンツ:ほかのセクションには分類しきれない、見逃せない優良コンテンツ
イベント
RubyConf 2021(11月8日〜10日開催)
RubyConfは、Rubyの愛好家、実務者、企業が一堂に会する世界最大級かつ最も長い歴史を持つイベントです。2021年はデンバーでの対面開催が予定されており、より安価なオンライン参加プランも用意されています。
- 6月7日:プロポーザル(発表提案)の募集を開始(現在は締め切り済み)
- 6月7日:RubyConfの参加登録受付を開始
セキュリティ
- 8月16日:
better_errorsの2.8.0より前のバージョンには、内部リクエストに対するCSRF保護が実装されていない脆弱性が確認されました。さらに、これらのリクエストで正しい「Content-Type」ヘッダーが検証されていなかったため、CORSによる保護を受けないクロスオリジンの「シンプルリクエスト」が送信できてしまう問題がありました。該当バージョンを利用している場合は、2.8.0以降へのアップデートを推奨します。
プロジェクト
Ruby本体
プログラミング言語Rubyそのものに関するニュースです。
- 7月7日:Ruby 3.0.2がリリースされました。3件のCVE(既知の脆弱性)が修正されています。
Rails
Rails(Ruby on Rails)は、Web開発分野でRubyを広く普及させたオープンソースのフレームワークです。
- 9月15日:Rails 7.0 Alpha 1がリリース!
注目トピック
Rails 7(関連記事12本)
Rails 7は正式にアルファ段階に入りました。JavaScriptの扱い方に対する刺激的な新しいアプローチ、Active Recordを使った暗号化機能、SQLクエリの発行元ログ記録、非同期でのクエリ読み込み、Zeitwerkによる排他的オートロードなど、注目すべき新機能が多数搭載されています。
-
Rails 7の変更点プレビュー(Stefan Weinert)
Stefanが、Rails 7に導入される予定の変更点の一部をわかりやすく解説します。 -
Rails 7にクラスタ間アソシエーションのサポートを追加(Eileen M. Uchitelle)
GitHubチームが、アソシエーションが複数のデータベースにまたがる場合に結合クエリを無効化する内部機能を抽出し、Rails 7向けに整備した取り組みを紹介します。 -
Rails 7でbelongs_toアソシエーションの変更追跡メソッドが追加(Swaathi Kakarla)
ActiveRecordを使ってデータベースの変更履歴を問い合わせる方法を解説します。 -
Rails 7からは失敗したジョブを無期限にリトライ可能に(Alkesh Ghorpade)
Rails 7のActiveJobアップグレードにより、成功するまで何度でもリトライし続けるジョブを指定できるようになりました。
テスト(関連記事6本)
大規模な本番アプリケーションを安定稼働させるうえで、テストは欠かせません。Rubyコミュニティはテスト文化が特に盛んなことでも知られています。
-
Railsの一部のテストだけを高速化する方法(Jorge Manrubia)
並列テストは、データベースのセットアップやフィクスチャの読み込みによって大きなオーバーヘッドが発生していました。Jorgeは、並列テストをデフォルトで無効化するPRをRailsに提出しました。 -
自作のFactory Botを作って理解するFactory Botの構文(Jason Swett)
JasonがFactory Botをゼロから独自に実装することで、その仕組みの謎を解き明かします。
JavaScript、HotwireとRails(関連記事5本)
近年のRailsのリリース、そして今後控えているリリースによって、RailsとJavaScriptの連携のあり方が大きく変わりつつあります。
-
JavaScriptのバンドルもトランスパイルも不要なモダンなWebアプリ開発(David Heinemeier Hansson)
ES6のコードをブラウザで動作する形に変換するトランスパイル工程は、もはや必要ありません。そのままの状態でブラウザは問題なく動作します。 -
HotwireとRailsでSPAライクな体験を実現する(Mike Wilson)
Mikeが、HotwireとTurbo Framesを使ったナビゲーションの実装方法を解説します。 -
HotwireをRailsで使ってみる(Renata Marques)
Hotwireは、HTMLをワイヤ越しに送信することで大量のJavaScriptに頼らずモダンなWebアプリケーションを構築する手法です。Renata MarquesがHotwireの概要を紹介し、簡単なサンプルを通じて使い方を説明します。
その他の注目コンテンツ
-
Sorbet Compiler:Ruby向けの実験的なAOTコンパイラ(Sorbetチーム)
Stripeが事前コンパイル(AOT)方式のRubyコンパイラのコードを公開しました。デフォルトの実行環境と比較して最大170%高速化されています。 -
チュートリアル:Rubyアプリでメールを送信する方法(Aydrian Howard)
Rubyアプリケーションにメール送信機能を追加する手順を短時間でウォークスルーします。 -
Railsのincludesメソッドの内部動作(Paweł Dąbrowski)
ActiveRecordがincludesをどのように実装しているのかを理解できます。
-
Ruby on RailsでAJAXを使う方法!非同期通信の基本からSJR・remote:trueまで徹底解説
AJAXがなぜ存在するのかを理解すれば、Railsプロジェクトでどう活用すべきかがより明確になります。まずはその背景から見ていきましょう。 Webサイトにアクセスすると何が起こるのか? サーバーからページが読み込まれます。しかし、新しい情報を確認したいときには、ページを再読み込みして更新するか、リンクをクリックして別のページへ移動するしかありません。 これは同期フロー(synchronous flow)と呼ばれる仕組みです。 新しいデータは、サーバーに新たなページをリクエストしたタイミングでしか表示されません。 でも、考えてみてください… ページの再読み込みをしたくない場合はどうでしょう?バッ
-
Ruby on Railsとは?初心者にもわかる仕組み・魅力・学び方を徹底解説
Ruby on Railsとは? Ruby on Rails(略称:RoR)は、世界で最も人気のあるオープンソースのWebアプリケーションフレームワークです。プログラミング言語「Ruby」をベースに構築されており、シンプルなサイトから大規模で複雑なサービスまで、幅広いWebアプリケーションの開発を支援します。 そもそもフレームワークとは? フレームワークとは、ソフトウェア開発の際に土台となる構造を提供してくれるコードやツール、ユーティリティの集合体です。あらかじめ用意された構造に沿ってコードを書くことで、プログラムが整理され、保守性も高まります。正しく使いこなせるようになれば、開発作業は格段に