Part1続き
前回の記事では、Railsの誕生から2006年までの軌跡を振り返りました📙
今回は2007年から2009年までのRailsの軌跡についてまとめていきたいと思います!✍️
Railsの軌跡 - 第2章
2007年:Rails 2.0のリリースとRESTfulへの転換
2007年12月、Rails 2.0がリリースされました。このバージョンでは、RESTful設計がフレームワークの中心に据えられ、RailsがRESTを前提とした設計思想を持つフレームワークとして確立されました。
これにより、RailsはWebアプリケーション開発における標準的な設計パターンを提供し、開発者がより効率的にアプリケーションを構築できるようになりました👏
Rails2.0リリース
-
RESTfulアーキテクチャの採用によって、URL設計とリソース操作の一貫性が向上⭕️ - それまでの
Rails1.x系では、URLの決め方は開発者の自由(バラバラ)であったが、2.0からはresources :usersのように書くだけで、CRUD操作に対応したRESTfulなルーティングが自動生成されるようになった! -
CSRF(Cross-Site Request Forgery)対策がデフォルトで有効化され、セキュリティが強化された - HTTP Basic認証のサポートが追加され、簡単に認証機能を実装可能に!
私🙄「この頃からRESTful設計がRailsにあったんだ。今でも使われているのはそれほど優れた設計なんだな〜」
REST? RESTful設計?
-
REST(Representational State Transfer)は、Webアプリケーションの設計原則の一つであり、リソース指向のアーキテクチャスタイルを指します。 -
RESTful設計では、リソース(データやサービス)を一意に識別するためにURLを使用し、HTTPメソッド(GET、POST、PUT、DELETEなど)を使用してリソースに対する操作を定義します。 -
Rails 2.0以降で、RailsがRESTを前提とした設計思想を持つフレームワークとして確立されていきます。
余談
この時期にDHH氏がRails開発にMacBookを使用していたこともあり、RailsコミュニティではWindowsからMacユーザーへ移行が進んだみたいです💻
「Web開発=Mac」というイメージがありますが、この頃からだったのかもしれません🤔
また、2007年は初代iPhoneが発売された年でもあり、PCだけではなくモバイル端末で見え方も意識され始めました。
2008年:GitHubの登場とMerbの台頭
GitHubの登場
2008年2月にGitHubが正式にローンチされました!
2008年4月には、Railsプロジェクト自体がそれまで利用していたSubversionからGitHubへ移行しました。
これ以降、世界中のエンジニアがプルリクエストを通じてRailsの開発に参加しやすくなり、オープンソースとしての発展速度がさらに加速しました。
Merbの台頭
この頃、Merbという新しいRubyフレームワークがRailsの代替として注目を集めていました。
理由は、機能が増えすぎて「重く遅い」という批判がいくつかあったRailsに対して、Merbは軽量で高速なフレームワークとして設計されており、特にパフォーマンスを重視する開発者から支持を得ていたためです。
Merbはモジュール化された設計を採用しており、必要な機能だけを選択して使用できる柔軟性がありました。
RailsとMerbの統合発表
2008年12月23日、RailsのDHH氏とMerbの主要メンバーらは、「RailsとMerbの統合」を電撃発表しました📣
-
理由
- 二つの似たフレームワークでコミュニティを分断させるのではなく、
Merbの「クリーンな内部設計」とRailsの「使いやすさ」を合体させて、最高のものを作るという決断でした。
- 二つの似たフレームワークでコミュニティを分断させるのではなく、
-
結果
-
Rails 3.0として統合され、Merbの設計思想やコンポーネントがRailsに取り入れられました。 -
Rails3以降の「エンジン機能」「Active Model」「クリーンなルーティング」などの多くは、Merbの思想やコードがベースになっています。
-
私😳「まさかの激アツ展開キター!!敵だと思ってた相手と手を組んでより高みを目指すとかドラマやん!」
日本語化が標準機能に
-
Rails 2.2で、i18n(国際化)機能が標準で組み込まれました。 - それまで日本語対応には複雑な改造が必要でしたが、これ以降
ja.ymlファイル一つで簡単にアプリを日本語化できるようになりました。 -
Railsコミュニティでは、日本語の翻訳ファイルが充実し、多くの開発者が日本語でアプリケーションを構築できるようになりました🎉
2009年:Rails 2.3のリリースとRails 3への布石
Railsにとって「統合」と「次世代への準備」の1年となりました。
前年末に発表されたMerbとの統合を具体化し、現在も使われている重要なツールの原型が完成した時期です!
Rails2.3のリリース
2009年3月、Rails3への重要な架け橋となるRails 2.3がリリースされました。以下の機能が導入され開発体験が大幅に向上しました🚀
| 機能 | 説明 |
|---|---|
| Rackのサポート | Webサーバーとフレームワークを繋ぐ標準規格「Rack」に完全対応したことにより、ミドルウェアの利用が容易になり、柔軟なアプリケーション構築が可能に |
| Rails Engine | アプリケーション内で再利用可能なコンポーネントを作成できる「エンジン」機能が導入され、プラグインやモジュールの開発が容易に |
| Nested Attributes | 親子関係にあるモデルの属性を一括で保存・更新できる機能が追加され、フォーム処理が簡素化 |
Rails3.0の開発加速と「Bundler」の誕生
2008年末のMerbとの統合宣言を受け、2009年はRails 3の開発が本格化しました🧑💻
-
Bundlerの登場
- ライブラリの依存関係を管理する
Bundlerプロジェクトが本格始動しました(Yehuda Katzらによる)。 - それまでの不安定なGem管理を劇的に改善し、現代の全てのRubyプロジェクトに欠かせないインフラとなっています。
- ライブラリの依存関係を管理する
-
内部構造の見直し
-
Merbのモジュール化された設計思想を取り入れ、Railsの内部構造が大幅に見直されました。 - 例えば、
Action MailerやActive Recordなどをより独立性の高いモジュールに再構築する作業が進められました。
-
Rails Engineの登場⚙️
-
Rails 2.3で導入された「エンジン」機能は、アプリケーション内で再利用可能なコンポーネントを作成できる仕組みです。 - これにより、プラグインやモジュールの開発が容易になり、コードの再利用性が向上しました。
- 現在では、多くの人気Gem(例:
Deviseなど)がエンジンとして実装されており、Railsアプリケーションに簡単に組み込むことができます。
私🧐「今では当たり前の機能も最初からあったわけではなくて、課題を解決するために取り入れられてきたんやな〜」
Part3へ続く
今回は2007年から2009年までのRailsの軌跡を振り返りました📙
この時代には、現在のRailsの基盤となる重要な機能や設計思想が形成されていったんだなということが分かりました🙆
次回は2010年以降のRailsの軌跡についてまとめていきたいと思いますので、よければまたお付き合いください🙌
参考記事


