「Groovy」および「Grails」とは何ですか?また、それらを使用して構築されるアプリケーションの種類は何ですか?


100

最近、「Groovy on Grails」についてよく耳にしますが、それについてもっと知りたいです。

  • Groovyとは
  • Grailsとは
  • Grails上のGroovyを使用して、どのようなアプリケーションが構築されますか?

3
また、Grailsだけです。GrailsのGroovyではありません(それは意味がありません..)。マークパーマーはこの質問を見ていません。:)
leebutts

23
Grails = Groovy on Rails
Pascal Thivent、2009年

1
実際、「Groovy on Rails」モニカーの周りにはかなりの論争がありました。そのため、GrailsはGroovy on Railsと呼ばれなくなりました。それはただのGrailsです。
Matthias

3
はい、5年前の2006年にRuby on Railsの人たちは不満を言っていました。「Groovy on Rails」と呼ばれていたフレームワークは、単にGrailsに名前が変更されました。混乱した採用担当者とその犠牲者を除いて、Grails on Groilsと呼ばれることはありません。
Burt Beckwith

回答:


188
  1. Grails上のGroovyとは何ですか?

    この名前では存在しません。今では単にGrailsと呼ばれています。

  2. Groovyとは

    もともとは、JVMの動的言語です。ただし、Groovy 2.0以降、静的型付けと動的型付けの両方がサポートされています。

  3. Grailsとは

    Grails(以前は「Groovy on Grails」として知られていました)は、Groovyに基づいたプログラミングフレームワークで、Ruby on Railsに触発されています(違いはありますが、類似点もたくさんあります)。RoRと同様に、Grailsは「規約によるコーディング」、開発のベストプラクティスを推進し、生産性を高めることを目的としています。

  4. どのようなアプリケーションが " Groovy on Grails」ますか?

    Grailsは、JVMで実行されるWebアプリケーションの構築に使用されます。

  5. 上のGroovyの利点は何ですかですか?

    配管ではなくビジネスに焦点を当てた高い生産性。(既存のデータモデルでGrailsを使用することはお勧めしません。この背後にある理由は、Grailsがドメインクラスの結果としてデータベースのERモデルが発生するトップダウンアプローチを奨励しているためです。レガシーデータベースを使用している場合、このアプローチをとることはできません。データベースをドメインクラスにマップする必要があります。おそらく命名規則が一致しないため、hbm.xml Hibernate構成ファイルまたはアノテーションを使用する必要があります。IMO、これは簡単な変更ではありませんワークフローは非常に面倒になり、Grailsの利点のほとんどを失うことになります。)

  6. C / C ++、Java / J2EE、.NET / C#などの標準プログラミング言語があるのに GrailsでGroovyを使用したいのはなぜですか?

    ポイント5のため。


1
既存のデータモデルでGrailsを使用することが推奨されない理由をさらに説明できますか?
トッドハンター、

1
あなたが何を意味しているのHigh productivity, focusing on business instead of plumbing.かもっと説明できますか?なにplumbing
タンファン

@HarryPham-ボイラープレートコードおよび実装の「実行すること」ではなく「実行する方法」を扱う
cdeszaq

@Pascal Thivent-他の誰かのプログラムを一から書き直すことになるかもしれませんが、Grailsを既存のデータモデルで使用することを推奨しないことについてあなたの意見がなければ、Grailsは使用するフレームワークの明らかな勝者でしょう。プログラムのDBアーキテクチャはまだ見たことがありませんが、プログラムの単純な機能を考えると、それはかなり簡単だと思います。既存のDBアーキテクチャが単純な場合、推奨事項はまったく変わりますか?レガシーDBのデータを新しいDBに移行することで、面倒なワークフローを回避できますか?そうであれば、これは難しいでしょうか?ありがとう。
ダニエル

Grails 3以降、特定のニーズに合わせてGrailsフレームワークをカスタマイズするために使用できるさまざまなプロファイルがあります。これは単なるWebフレームワークではなく、テンプレートエンジンやORMレイヤーのフットプリントがなくても、軽量のRESTマイクロサービスの開発に使用できます。 grails.github.io/grails-doc/latest/guide/single.html#profiles
ルイス・ムニーズ

24

Groovyは、Javaプラットフォーム用のオブジェクト指向プログラミング言語です。Python、Ruby、Perl、Smalltalkと同様の機能を持つ動的言語です。Javaプラットフォームのスクリプト言語として使用できます。GroovyにはJavaに似た構文があり、Javaバイトコードとシームレスに連携します。

その他の機能は次のとおりです。

  • 簡単な学習曲線
  • ドメイン固有言語のサポート
  • コンパクトな構文
  • 動的型付けのサポート
  • 強力な処理プリミティブ
  • Webアプリケーション開発の容易さ
  • 単体テストのサポート。

Grailsは、Groovyプログラミング言語を使用するオープンソースのWebアプリケーションフレームワークです。「規約によるコーディング」パラダイムに従い、スタンドアロンの開発環境を提供し、構成の詳細の多くを開発者から隠すことにより、生産性の高いフレームワークになることを目的としています。

Railsと同様に、Grailsは私が "Strongly Grained"と呼んでいるようです。Grailsの方法で行う場合、開発は簡単です(一般的には非常に高速です)。フレームワークは、ほとんどのことを行う好ましい方法を持っている傾向があります。一方、穀物に逆らう必要がある場合は、比較的大まかな時間がかかります。

また、理由からこのブログを参照して、Groovy on Grails(存在しない)を言わないでください。


12

GrailsはRuby on Railsに直接類似していますが、Groovyで実行されます。何Groovyは?これは、Java仮想マシン(JVM)で実行されるスクリプト言語です。

そのため、すでに持っている、または利用可能なJavaライブラリを利用できます(バイトコードにコンパイルされ、JVMで実行されるため)。さらに、JVMの能力(ガベージコレクション、JITコンパイルによる速度など)およびGroovyの簡潔さ。JavaプログラマーがGroovyを習得するための学習曲線は、かなり小さいはずです(したがって、利用可能な膨大な数のJavaプログラマーを活用しています)。

これは、サーブレットプログラミング、JSP、Java Server Facesなどの標準Javaメカニズムに対してWebアプリを作成する非常に異なる方法です。Grails(Ruby on Railsなど)は、標準の開発メカニズムよりも動的で反復的な開発環境を約束します(それが練習、私はアドバイスすることはできません)


脳、あなたの発言は矛盾しています、それはそれがスクリプト言語だと言いますが、次の段落でそれはバイトコードにコンパイルされたと言います。私は.NETプログラマーです。javascriptなどのスクリプト言語はコンパイルされていませんが、解釈されるだけです。これらの矛盾するステートメントの意味を説明してください
学習者

Groovyは両方の方法で使用できます。Groovyプログラムは、javascriptのような単純なスクリプトとして1行ずつ実行できます。groovyコンパイラを使用して、JVMを使用して実行できるバイトコードクラスにコンパイルすることもできます。
pRmdk 2017

0

Spring + Hibernateの上に構築されたDRY(自分を繰り返さないでください)を備えたWebアプリケーションおよびコーディング準備の整ったプラットフォームを開発するためのGrails- MVCフレームワーク。Grailsプラットフォームは、開発者が製品の機能の構築に集中できるように、インフラストラクチャと依存関係を処理してWebアプリを実行します。Grails-スタートアップ組織が製品を開発モードから本番モードにリリースするための優れたフレームワーク。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.