31

現在、GroovyとGrailsを使用しています。Groovyは基本的にJavaであるため非常に単純ですが、Grailsを使用しているとは言えません。私は、RubyがRuby on Railsに対してであるように、GroovyがGrailsに対してであると読みましたが、それはどういう意味ですか?

4

11 に答える 11

41

比喩との混乱に対処するには(ただし、質問の下で別の言葉で回答されています):

Ruby が Ruby on Rails にあるように Groovy は Grails にありますが、それはどういう意味ですか?

Grails は、Rails (Ruby の Web フレームワーク) が Ruby に対して行うのと同じことを Groovy に対して行うために、Groovy プログラミング言語上に構築された Web フレームワークでした。


「軌道に乗っている」とはどういう意味ですか?

これに対する答えは、これらの Web フレームワークの本質に帰着します。

これらの Web フレームワーク (Grails & Rails) は、「構成よりも規約」を前提に構築されています。つまり、共通の規約を使用して Web アプリケーションを開発すると、生産性が向上し、アプリケーションをより保守しやすくなります (これは大雑把な一般化です)。規則を定義し、それを遵守することで、アプリケーションを簡単に生成でき、すぐに起動して実行できることがわかります。

これが、電車のように「レールの上」にいることの意味です。新しい鉄道ルートが開発されたとき、列車がある場所から別の場所に移動する方法を再発明する心配はありません。それは何十年もの間、単一の慣習によって解決されてきました: レール. 電車の線路が 2 つの場所からの経路を制限するのと同じように、規則ベースの Web フレームワークは規則を使用してアプリケーション開発者の柔軟性を高め、アプリケーションの本質的なビジネス上の問題に集中できるようにします。

Web フレームワークの規則の重要な利点の 1 つは、Web フレームワークが、アプリケーションの特定のレイヤーがどのように結合するかについて仮定できるようになったことです。Rails では、通常、データベース テーブルに複数形の名前がある場合、そのテーブルにマップされた ActiveRecord クラスには対応する単数形の名前があると想定できます。したがって、Rails コード ジェネレーターは、データ マッピング情報を使用して、動的ファインダー、マイグレーション、遅延ロードされた関連付けトラバーサルなどのデータ アクセス コードを生成できます。構成ベースのフレームワークでのこのデータ アクセス コードは、手動でコーディングするのは面倒です。

于 2008-10-08T16:13:06.940 に答える
16

何人かの人々が Rails/Grails の技術的な特徴について言及しています。また、Rails/Grails の「レール」として「設定より規約」を挙げている人もいます。これは真実に近づいています。しかし、これは Rails のより広い哲学の 1 つの特徴にすぎません。これは、独断的なソフトウェアの概念です。

独断的なソフトウェアは、技術用語だけで説明することはできません。それは哲学です。精神; 態度。好きか嫌いかそれが Rails の核心です。

以下は、Rails の作成者であるDavid Heinemeier Hansson との 2005 年のインタビューからの抜粋です。

Rails は独断的なソフトウェアです。ソフトウェアの古い理想を主要な位置に置くことを避けます。これらの理想の 1 つは柔軟性です。これは、可能な限り多くのアプローチに対応するよう努めるべきであり、開発の 1 つの形式を別の形式に判断してはならないという考え方です。まあ、Rails はそうですし、それがうまくいく理由だと私は信じています。

Rails では、インフラストラクチャ レベルでの柔軟性と引き換えに、アプリケーション レベルでの柔軟性を得ることができます。私が Rails に組み込んだゴールデン パスに沿って作業することに満足している場合は、アプリケーション レベルでより多く、より早く、より優れた作業を行うことができるという生産性の面で、計り知れない報酬を得ることができます。

さらに主題を探求する後のインタビューもあります。

したがって、「軌道に乗っている」ということは「意見を述べている」ことのメタファーであり、それがそのままの名前になっている理由です。それと、ジャーナリストやライターなら誰でも言う「Ruby on Rails」が頭韻文であるという事実は、人々の注意を引く確実な方法です。

于 2008-10-09T06:06:58.507 に答える
8

「レールのような」ものを目指しているフレームワークは、いくつかのことを指していると思います。

  • モデル レベル: AR パターン化された ORM (datamapper ではなく)、移行または一部の自動化されたスキーマおよびモデル レイヤー管理、アプリケーションでの外部キーの処理 (データベース スキーマではなく、ストアド プロシージャまたは純粋な DBMS ロジックも使用しない)

  • TDD の推奨: 単体テスト用の自動生成されたスケルトン、

  • データベースのテーブル名とモデル名、コントローラーとビューのアクション、および HTML テンプレートを接続する命名規則

  • 合理化されたルート認識とルート生成スキーム

  • REST アーキテクチャの重視

  • ajax ライブラリとの統合: RJS、プロトタイプ、scriptaculous

于 2008-10-08T16:13:03.120 に答える
7

Railsは、データベース バックエンドを備えた Web アプリケーションを開発するためのフレームワークです。名前はもともと言葉遊びだったと思います。電車は本当に速くどこかへ連れて行ってくれますが、それはレールが通っている場所に限られます。

于 2008-10-08T15:50:43.350 に答える
4

レールの上にいるということは、自分がどこに向かっているのかを制御できないことを意味します。つまり、レールが敷かれたところにしか行けないということです。レールを敷いた人々があなたが行くことを予期していなかった場所に行こうとすると、欲求不満につながります.

于 2008-10-11T01:11:13.550 に答える
2

自動車表現です。車のハンドリングが非常に優れている場合、それは「レールの上を走るようなコーナー」 (つまり、優れたコントロールが得られる) と言われます。

それがレールの人々がその名前を取得した場所かどうかはわかりませんが、それが私がそれを解釈した方法です。

于 2008-10-08T15:52:37.013 に答える
2

本当に短くて簡単な答え:設定より規約。

于 2008-10-08T18:38:29.520 に答える
1

「onrailsは設定より規約に関する哲学である」などの他のコメントには同意しません。

Railsはこれらの哲学に準拠していますが、「RubyonRails」はWebフレームワークの名前です。それ以上でもそれ以下でもありません。それはそれについての特定の「オンレールネス」を指しているのではなく、マクドナルドがブランド名であるのと同じように、それは単なるブランド名です。

他の誰かが別のフレームワークを作成して「PythononRails」と呼んだ場合、別のブランド名が付けられます。そうでない場合、「XYZ on rails」は、人々が混乱していることを意味します。

于 2008-10-09T19:37:34.627 に答える
1

RubyとGroovyは言語です。

Ruby on Railsは、画期的なWebアプリケーションフレームワークです。上記の意見のあるソフトウェアに関する優れた回答を参照してください。

歴史の問題として、GroovyWebアプリフレームワークの仮題はGroovyonRailsでし。しかし、RoRコミュニティは反対しました。チームは代わりにGrailsを選択しました。

于 2008-11-05T18:00:53.973 に答える
1

前述のように、Rails と Grails は Web アプリケーション開発の規則を提供します。特定の方法で名前を付け、適切な場所に配置することで、追加の構成を行わなくてもアプリケーションがデフォルトで動作します。慣習から逸脱したい場合は、そこに合わせて構成できます。

于 2008-10-08T20:49:50.923 に答える
0

それは比喩であり、説明が必要だとほとんど言われています。とにかく、これはRubyonRailsが行うことの非常に優れたメタファーです。これにより、テスト、検証、デプロイ、MVCなどの一般的な作業を非常に簡単に実行(移動)できます。

于 2008-10-08T15:56:54.337 に答える