Co to są „Groovy” i „Grails” i jakie rodzaje aplikacji są tworzone przy ich użyciu?

100

Obecnie dużo słyszę o „Groovy on Grails” i chcę wiedzieć o nim więcej:

  • Co to jest Groovy?
  • Co to jest Grails?
  • Jakie aplikacje są tworzone przy użyciu Groovy on Grails?
Rachel
źródło
3
Poza tym to tylko Grails. Nie Groovy na Grails (to nie ma sensu ..). Masz szczęście, że Marc Palmer nie widział tego pytania :)
leebutts
23
Grails = Groovy on Rails
Pascal Thivent
1
Właściwie było sporo kontrowersji wokół pseudonimu "Groovy on Rails", dlatego Grails NIE jest już nazywana Groovy on Rails. To tylko Grails.
Matthias
3
Tak, 5 lat temu, w 2006 roku, koledzy z Ruby on Rails narzekali i struktura nazwana „Groovy on Rails” została przemianowana na po prostu Grails. Nigdy nie był nazywany Groovy na Grails, z wyjątkiem zdezorientowanych rekruterów i ich ofiar.
Burt Beckwith

Odpowiedzi:

188
  1. Czym jest Groovy on Grails?

    Nie istnieje już pod tą nazwą. Teraz nazywa się po prostu Grails .

  2. Co to jest Groovy?

    Pierwotnie był to dynamiczny język dla JVM. Jednak od wersji Groovy 2.0 obsługiwane jest zarówno statyczne, jak i dynamiczne pisanie.

  3. Co to jest Grails?

    Grails (wcześniej znany jako „Groovy on Grails”) to framework programistyczny oparty na Groovy i inspirowany Ruby on Rails (są różnice, ale jest też wiele podobieństw). Podobnie jak RoR, Grails promuje „kodowanie według konwencji”, najlepsze praktyki programistyczne i ma być wysoce produktywna.

  4. Jakie aplikacje są tworzone przy użyciu programu „ Groovy on Grails”?

    Grails służy do tworzenia aplikacji internetowych, które działają na JVM.

  5. Jakie są zalety Groovy on Grails?

    Wysoka produktywność, skupienie się na biznesie zamiast na hydraulice. (Zauważ, że nie polecałbym używania Grails z istniejącym modelem danych. Powodem tego jest to, że Grails zachęca do podejścia odgórnego, w którym model ER baz danych powstaje w wyniku klas domeny. Jeśli używasz starszej bazy danych , nie możesz zastosować tego podejścia. Musisz zmapować bazę danych na klasy domeny i prawdopodobnie konwencja nazewnictwa nie będzie zgodna, co powoduje konieczność użycia plików konfiguracyjnych lub adnotacji hbm.xml Hibernate. IMO, to nie jest trywialna zmiana w przepływu pracy, może stać się naprawdę uciążliwy i w rezultacie stracisz większość zalet Grails).

  6. Dlaczego ktoś miałby chcieć używać Groovy na Grails, skoro mamy standardowe języki programowania, takie jak C / C ++, Java / J2EE i .NET / C #?

    Ze względu na punkt 5.

Pascal Thivent
źródło
1
Czy możesz wyjaśnić więcej, dlaczego nie zalecałbyś używania Grails z istniejącym modelem danych?
Todd Hunter
1
Czy możesz wyjaśnić, co masz na myśli High productivity, focusing on business instead of plumbing.? co jest plumbing?
Thang Pham
@HarryPham - Kod źródłowy i zajmowanie się „jak coś jest zrobione” zamiast „co robimy” z implementacji
cdeszaq
@Pascal Thivent - Mogę skończyć na przepisaniu cudzego programu od zera, a gdyby nie twój punkt widzenia, aby nie polecać używania Grails z istniejącym modelem danych, Grails byłby wyraźnym zwycięzcą w użyciu frameworka. Nie widziałem jeszcze architektury DB programu, ale wyobrażam sobie, że jest dość prosta, biorąc pod uwagę prostą funkcjonalność programu. Czy Twoje zalecenie w ogóle się zmieni, jeśli istniejąca architektura bazy danych będzie prosta? Czy można uniknąć uciążliwego przepływu pracy poprzez migrację danych ze starej bazy danych do nowej bazy danych, a jeśli tak, czy byłoby to trudne? Dzięki.
Daniel
Od Grails 3 istnieją różne profile, których możesz użyć, aby dostosować framework Grails do swoich konkretnych potrzeb. Nie jest to już tylko framework sieciowy, może być z powodzeniem używany do tworzenia lekkich mikrousług REST, bez śladu silnika szablonów, a nawet warstwy ORM. grails.github.io/grails-doc/latest/guide/single.html#profiles
Luis Muñiz
24

Groovy to zorientowany obiektowo język programowania dla platformy Java. Jest to język dynamiczny z funkcjami podobnymi do tych z Python, Ruby, Perl i Smalltalk. Może być używany jako język skryptowy dla platformy Java. Groovy ma składnię podobną do Javy i bezproblemowo współpracuje z kodem bajtowym Java.

Inne funkcje obejmują:

  • Łatwa nauka
  • Wsparcie dla języków specyficznych dla domeny
  • Kompaktowa składnia
  • Wsparcie dla dynamicznego pisania
  • Potężne prymitywy przetwarzania
  • Łatwość tworzenia aplikacji internetowych
  • Wsparcie dla testów jednostkowych.

Grails to framework aplikacji internetowych typu open source, który wykorzystuje język programowania Groovy. Ma być platformą o wysokiej produktywności, zgodnie z paradygmatem „kodowania według konwencji”, zapewniając samodzielne środowisko programistyczne i ukrywając wiele szczegółów konfiguracji przed programistą.

Podobnie jak Rails, Grails wydaje się być tym, co nazywam „silnie ziarnistym”. Jeśli robisz rzeczy w stylu Grails, rozwój jest łatwy (i generalnie dość szybki). Ramy zazwyczaj mają preferowany sposób wykonywania większości czynności. Z drugiej strony, jeśli musisz iść pod prąd, będziesz miał stosunkowo ciężki czas.

I nie mów, że Groovy on Grails (nie istnieje), z powodów odwołaj się do tego bloga.

Jainendra
źródło
12

Grails jest bezpośrednio analogiczna do Ruby on Rails , ale działa z Groovym. Co to jest Groovy ? Jest to język skryptowy działający na wirtualnej maszynie Java (JVM).

Możesz więc skorzystać z bibliotek Java, które już masz lub są dostępne (ponieważ są skompilowane do kodu bajtowego, a tym samym działają na JVM), a także z mocy JVM (do czyszczenia pamięci, szybkości kompilacji JIT itp.) Oraz zwięzłość Groovy. Krzywa uczenia się dla programisty Java, aby podnieść Groovy, powinna być dość mała (w ten sposób wykorzystując ogromną liczbę dostępnych programistów Java).

To zupełnie inny sposób tworzenia aplikacji internetowych niż standardowe mechanizmy Java programowania serwletów, JSP, Java Server Faces itp. Grails (jak Ruby on Rails) obiecuje bardziej dynamiczne i iteracyjne środowisko programistyczne niż standardowe mechanizmy programistyczne (czy to prawda w ćwicz , nie radzę)

Brian Agnew
źródło
Brain, twoje stwierdzenia zaprzeczają, mówisz, że jest to język skryptowy, ale w następnym akapicie mówisz, że jest on skompilowany do kodu bajtowego. Jestem programistą .NET i języki skryptowe, takie jak javascript itp., Nie są kompilowane, ale tylko interpretowane. Czy mógłbyś wyjaśnić, co masz na myśli przez te sprzeczne stwierdzenia
uczeń
Groovy może być używany w obie strony. Program Groovy można uruchomić jako prosty skrypt wiersz po wierszu, jak javascript. Można go również skompilować za pomocą groovy kompilatora do klasy kodu bajtowego, którą można wykonać za pomocą JVM.
pRmdk
0

Grails - framework MVC do tworzenia aplikacji internetowych i gotowa do kodowania platforma z DRY (nie powtarzaj się) zbudowana na szczycie Spring + Hibernate. Platforma Grails dba o infrastrukturę i zależności do uruchomienia aplikacji internetowej, dzięki czemu programiści mogą skoncentrować się na budowaniu funkcjonalności produktu. Grails - świetny framework dla start-upów do uruchamiania produktu z trybu deweloperskiego do produkcyjnego.

Pavithra R
źródło