見出し画像

🎓 Rails 7 対応Webテキストをリリース!

RailsチュートリアルからRails 7 対応のWebテキストをリリースしました 🎉

本記事では Rails 7 対応版 (第7版) の主な変更点をご紹介しています 💁‍♀️

※ Rails 7 対応の解説動画も準備が整い次第、順次リリースされる予定です。まずはWebテキストのみ一足早くリリースしています 🚀✨


⚖️ 第6版と第7版の違い

大前提としてWebテキストのFAQページで予告していた通り、学べる内容の大枠は第6版と大きく変わっていません。すなわち、テストやGit/GitHub、MVCやRESTful、SessionとCookie、暗号化とハッシュ化、メールを使ったアカウント認証など一連の学べる内容は第6版と同じです。

WebテキストFAQに書いてあった第7版に関する予告説明

学べる内容の大枠にあまり変わりはありませんが、学習者の躓きやすい点の改善と、学んだことを次に繋げやすくなった点が改善されています。以下、それぞれの改善点について1つずつ説明していきますね 🎓✨


🐾 学習者の躓きやすい点が改善

Railsチュートリアルの学習者と対話していてよく見かける問題に、クラウド IDE の容量問題環境構築の難しさがあります。

クラウド IDE 自体は Rails 5 対応版から導入されており、当時は大きな問題にはならなかったのですが、Rails 6 対応版では躓くケースが多く見られるようになりました。

対策として追加されたヘルプ項目「容量問題の解決方法」

要因はいくつかありますが、その1つに第6版から導入された Webpacker 経由でインストールされるライブラリが著しく増えた点があります。hello_app、toy_app、sample_app と3つのアプリケーションを通して段階的に学んでいく本書の構成では、この状況はクラウド IDE が容量不足になって動かなくなる要因に繋がります。また、依存ライブラリの状況によっては環境構築やデプロイで失敗することも頻繁に見受けられ、これもまた学習者が挫折するポイントとなっていました 😓

第7版では Rails 7 の Importmap 採用に伴って、依存するライブラリが大幅に少なくなり、必要最低限のライブラリのみインストールされるようになりました。これにより上記の問題が緩和され、また GitHub 公式のクラウド IDE 登場も重なり、第7版の学習環境は劇的に改善されています。

↓ 数クリックで環境構築が完了するデモ動画


さらにクラウド IDE を使わない devcontainer にも対応しているため、十分に高いスペックの開発用マシンを持っている学習者であれば、ローカル環境でも Rails 7 対応の第7版を進めやすくなっています。詳細は下記 note 記事からご確認いただけます。

📝 NOTE: 「十分に高いスペックの開発用マシン」を持っている学習者にとっても良いコンテンツでありつつ、そうでない学習者にとっても良いコンテンツでありたいと考えているため、第7版も引き続きデフォルトではクラウド IDE を採用しています。ご理解頂けると嬉しいです 🙏


📈 学んだことが次に繋げやすくなった

もう1つの改善点は、jQuery を使ったフロントエンドから、Rails 7 で導入された Hotwire を使ったフロントエンドへの移行です。

jQuery は多くのアプリケーションで使われている著名なライブラリです。一方、下記の調査結果をみると jQuery 以外を使う事例も増えています。

引用元: Ruby on Rails Community Survey Results

もともとRailsチュートリアルでは jQuery を使ったコード自体がほとんど無いため、本書自体にはさほど大きな影響はありません。しかしRailsチュートリアル完走後に焦点を当てると、完走後にフロントエンドを学ぶケースや、Sample App を拡張しながら学ぶケースも増えてきました。

このような場面で Hotwire の特長の1つである「段階的な改善 (Progressive Enhancement)」は有用だと考えています。Hotwire では段階的にフロントエンドの複雑さを増やすことができ、許容できる複雑さに応じて少しずつ導入部分を増やしたり、React や Vue.js への段階的な移行も容易になります。これは完走後にフロントエンドも学ぶケースが増えている昨今において、優れた学びの階段であると私達は考えています (参考: Hotwire 的思考を身につける - TechRacho)。

引用元: 私が Rails 7 対応版を推す理由 (スライド / 動画付き)

運営者の視点から様々な学習者と対話していくと、Webの複雑さと学習者の学習量にある程度の相関があるように見えます。Webの複雑さが増えれば学習量も増えていき、学習量が増えれば圧倒される学習者も増えていきます。そのような状況を打破する1つのアプローチとして、私達 'も' Hotwire が掲げている「段階的な改善」が有用であると考えています。

↓ 合わせて読みたい Hotwire 関連の動き


🆙 紹介しきれなかった改善点

上記以外にも、第7版には多くの改善点があります! 1つずつ紹介していきたいところですが、今回は箇条書きで簡潔にまとめておきますね 📝

  • デフォルトのブランチ名を master から main へ変更 (詳細)

  • デプロイ先が Heroku から Render 無料プランへ変更 (詳細)

  • セッション固定攻撃と、その対策についての説明を追加 (詳細)

  • モバイル向けの CSS デザインについて説明を追加

  • 統合テストを役割に応じて分かりやすく分割し、説明を追加

  • Active Record の Uniqueness の振る舞いについて補足を追加 (詳細)

  • Ruby/Rails のログやエラーメッセージなどを最新版に差し替え

  • byebug から rdbg(debug.gem)に置き換え、説明も更新 (詳細)

  • N+1 クエリ問題の修正や、一部の演習問題を追加 (対応例)

  • Ruby の型情報を使った補完機能をクラウド IDEに追加 (詳細)

  • 全章を学び終えた完走者向けコンテンツ「読み物ガイドを追加 (詳細)

  • ChatGPT を活用した24時間 AI 質問サポート (🏆 AWS 賞 受賞)

上記以外にも、数えきれないほどの変更点があります。詳しくは、ぜひ先行リリースしたRails 7 対応のWebテキストをお試し頂けると嬉しいです 🙏✨

🎓 第7版を読んでみる


✅ まとめ & これから

RailsチュートリアルではWebテキストの一部有料化に合わせて、継続的にコンテンツを更新できる体制になりました。営業日のほとんどを学習者が抱える問題解決に充てられるようになったため、より多くの方々がWebサービス開発にチャレンジできる環境づくりに日々注力できています。

また分かりやすい成果の1つとして、2022年11月には「東京都立の大学院で Ruby/Rails 講義を全学科1位にするための授業設計」というタイトルで RubyWorld Conference にも登壇いたしました。

🎥 当日の発表動画や前日譚も note 記事から公開中

数ある魅力的な講義の中から Ruby/Rails が人気講義の1つになれたのも、問題の特定と改善に集中できる新しい体制へ移行できた影響が大きいと考えています。

今後も多くの方々が学びやすくなる環境の改善に努めていきますので、引き続きRailsチュートリアルをご活用して頂けると嬉しいです 😌💖

この記事を書いた人: @Yuppy & @yasulab


🎁 オマケ: 直近のWebテキスト購入者への特典

2022年10月1日以降にWebテキストをご購入された方(解説動画含む)には無料で第7版のWebテキストが読める特典を付与させていただきました。冒頭で述べたとおり学べる内容には第6版と第7版で大きな違いはありませんが、Rails 7 の開発体験を味わってみたい場面などでご活用頂けると幸いです 🛤✨

🎁 対象者はマイページの「読む」からお試し頂けます

改めて、引き続きRailsチュートリアルをよろしくお願いします…!! 🙏💖

🎓 第7版を読んでみる

YassLab株式会社の活動に興味を持っていただければ嬉しいです。こちらからのサポートは Raisチュートリアル、Railsガイドなど各サービスの向上に役立てていきたいと思います💓