Ruby on RailsとLaravelを比較

    「Ruby on Rails」と「Laravel」の概要

    「Ruby on Rails」と「Laravel」は、MVC(Model View Controller)アーキテクチャを採用したWebアプリケーション開発フレームワークです。どちらも高い開発生産性を特徴としています。

    ■「Ruby on Rails」とは

    Ruby on Railsは、オープンソースのMVCアーキテクチャに基づいたWebアプリケーション開発フレームワークです。

    「ストレスの少ない軽量プログラミング」を目指しており、「同じことを繰り返さない」、「少ないコードで簡単に開発できる」ことを目的とした設計思想になっています。

    ■「Laravel」とは

    Laravelは、PHP向けフルスタックWebアプリケーションフレームワークです。

    表現力豊かで洗練された構文を持ち、特に「基本的なコード自動生成機能」による高い生産性を特徴としています。

    利用国比較

    ■Ruby on Rails

    Ruby on Railsは、主にアメリカやロシアなどで多く使われています。

    ■Laravel

    Laravelは、主に、アメリカ、オランダ、ロシアなどで一般的に使用されています。

    導入事例比較

    以下のサイトはそれぞれのフレームワークで作成されています。

    ■Ruby on Rails

    旅行者向け予約サイト「Airbnb」
    https://ja.airbnb.com/

    スタートアップ用情報サイト「CrunchBase」
    https://www.crunchbase.com/home

    Q&Aサイト「Ask.fm」
    https://ask.fm/

    ■Laravel

    eラーニングサイト「Laracast.com」
    https://laracasts.com/

    食事と栄養に関連するデータベースサイト「Globaldietarydatabase.org」
    https://globaldietarydatabase.org/

    スタートアップサポートサイト「startups.com」
    https://www.startups.com/

     

    参考元サイト

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

    基本情報

    概要

    Ruby on Rails(ルビーオンレイルズ)とは、オープンソースのMVCアーキテクチャに基づいたWebアプリケーション開発フレームワークです。

    フレームワークとは

    あるアーキテクチャ(設計思想)に従い、ソフトウェアを効率的に開発するために揃えられたライブラリ(部品)とツールのセットを指します。

    基本説明

    「Ruby on Rails」は、「RoR」または単に「Rails」と呼ばれます。
    Rubyをベースにして、MVC(Model View Controller)アーキテクチャに基づいて構築されているフレームワークです。
    「ストレスの少ない軽量プログラミング」を目指しており、「同じことを繰り返さない」、「少ないコードで簡単に開発できる」ことを目的とした設計思想になっています。

    TOPに戻る

    主な特徴

    設計理念(1) 設定より規約

    Convention over Configuration。「設定より規約」とは、「慎重に設計された規約に従うことにより、設定を不要にする(軽減する)」ということです。
    従来のフレームワークのように設定情報を大量に記述せずに、規約に従いプログラミングすることで、重複するコードを削減するという理念です。
    例えば、学生クラスを「Student」とした場合、学生情報を格納するデータベースは複数形の「students」にするという規約です。この規約に従うことで、「Student」クラスと「students」テーブルのマッピングは、Railsが自動的に行います。
    クラスとテーブルをリンクする設定情報を記述する必要がなくなるため、開発者はビジネスロジックなどの本来やるべき部分の開発に注力できます。
    Railsは、規約の導入によってWebアプリケーション開発の単純化を行いました。この単純化が、「Ruby on Rails」の根源的な新しさとされています。

    設計理念(2) 同じことを繰り返さない

    DRY(Don’t Repeat Yourself)。「同じことを繰り返さない」という考え方は、あらゆる情報について、あちらこちらに記述するのではなく、1か所にまとめて記述します。「定義などの作業は1回だけで済ませる」という意味合いになります。
    変更が生じた場合に何か所もコードを修正する必要がなくなり、開発効率が上がります。

    設計理念(3) REST

    REST(Representational State Transfer)とは、Webアプリケーションなどにおける設計概念の1つです。すべてのリソースに一意の識別子(URI)をつけ、そのリソースに対してアクセスしてアクションします。
    例えば、出席番号1番の学生というリソースを表す「/students/1」というURIに対して、HTTPメソッドの「GET」を使うことで、1番の学生情報を表示します。「PUT」を使うことで、1番の学生情報の更新をします。「DELETE」を使うことで、1番の学生情報を削除できます。
    RESTの概念に従ったシステム(Railsなど)は、「RESTful」といわれます。

    MVC(Model View Controller)アーキテクチャ

    Railsは、MVCアーキテクチャに基づいています。
    「Action Controller」コンポーネントが制御を担当します。「Action View」コンポーネントが表示を担当します。「Active Record」コンポーネントがデータ保持を担当します。
    1.リクエストが来ると、該当する「Action Controller」が呼び出されます。
    2.「Action Controller」は、リクエストに応じて、適切な「Active Record」を呼びだします。
    3.「Active Record」は、データベースからデータの参照/更新などを行います。
    4.「Action Controller」は画面表示を行うために「Action View」を呼び出します。
    5.「Action View」では、「Active Record」内のデータを参照して表示を行います。

    自動テスト

    テストプログラムがアプリケーションに対してあらかじめ決められた手順でテストを行い、その結果をチェックしてくれる機能があります。
    自動テストは、アプリケーション全体を細かくチェックしてくれるため、修正によるバグ混入を防いでくれます。品質向上につながります。
    ただし、自動テストプログラムは、プログラマー自身が作成する必要があります。テストプログラムが不完全であれば、バグは見落とされてしまいます。

    RubyGemsライブラリ

    Rubyにも幅広いサードパーティのライブラリが「gem」というライブラリパッケージ形式で提供されています。
    「RubyGems」は、ライブラリ作成/公開、インストールをサポートする仕組みです。
    Railsフレームワークを拡張するプラグインも多く用意されていて、Railsの汎用性を高めています。

    TOPに戻る

    同様製品(概要情報)

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Merb」など。

    TOPに戻る

    導入事例

    生産性が高い「Ruby on Rails」の採用は拡大しています。導入事例としては、「Twitter」、「Github」、「CookPad」など非常に多くの導入事例があります。

    TOPに戻る

    ライセンス情報

    LICENCE「Ruby on Rails」のライセンスは、「MIT License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

    TOPに戻る

    ダウンロード

    ダウンロードページ

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。


    「Laravel」基本情報

    ■概要

    Laravel(ララベル)とは、PHP向けフルスタックWebアプリケーションフレームワークです。表現力豊かで洗練された構文を持ち、高い開発生産性が特徴です。

    ■基本説明

    Laravelは、MVC(Model View Controller)アーキテクチャのPHP Webフレームワークです。フルスタックフレームワークとして多くの機能を提供し、先進的な技術も積極的に取り入れています。

    特に「基本的なコード自動生成機能」による高い生産性を特徴としています。

    ■主要開発元

    Laravelは、Taylor Otwell氏を中心としたコミュニティーにより活発な開発が続けてられています。

    ■経緯

    ・2011年:初版リリース

    開発者のTaylor Otwell氏は「ユーザー認証機能」「承認のための組み込みサポート」などの機能を提供しなかったCodeIgniterフレームワークの代替手段を提供する試みとしてLaravelを開発しています。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →Laravel

    ライセンス情報

    Laravelのライセンスは「MIT license」です。

    詳細について、こちらを参照ください。
    →GitHub →laravel/framework [→License]

    ダウンロード

    →Laravel →Installation

    →GitHub →laravel/framework

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Slim」「framework-spider」「CakePHP」など。

    「Laravel」の主な特徴

    ■フルスタックフレームワーク

    Laravelはフルスタックフレームワークとして、「データベースからのデータの取得処理」や「ログイン認証処理自動化」など、PHPWebシステム開発に必要な機能がほぼすべて含まれています。

    ■開発効率性向上

    Laravel開発チームは『開発は楽しく創造的な経験でなければならない』と考え、多くのWebシステム開発プロジェクトで実施されている一般的な作業を軽減することで、開発の手間を省くことを試みています。

    開発生産性向上機能の例

    ・モジュラーパッケージングシステム---依存関係マネージャー
    ・リレーショナルデータベースアクセスサポート---スキーマ移行機能
    ・アプリケーションの展開および保守に関するサポートユーティリティ など

    ■シンプル構文

    Laravelは、表現力豊かで美しい構文で、シンプルで読みやすいコードを記述できます。

    ■チーム開発

    Laravelはチーム開発用途も考慮されています。

    データベースに依存しない移行およびスキーマビルダーを使用することで、開発チーム全員の同期を維持できます。

    ■豊富なツールキット

    Laravelは、アクセスが容易でありながら強力であり、大規模で堅牢なアプリケーションに必要な豊富なツールを提供しています。

    「Laravel」の主な機能

    Laravelは堅牢なシステムを構築するためのさまざまな機能を提供します。
    ・ルーティング機能---URLと対応する処理を紐づけ
    ・テンプレートエンジン機能「Blade」
    ・エラーハンドラ機能
    ・DI(Dependency Injection: 依存性注入)機能
    ・バリデーション機能---入力値チェック
    ・データベース連携機能
    ・認証の自動化機能 など

     

    参考元サイト

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。