Apa itu "Groovy" dan "Grails" dan jenis aplikasi apa yang dibuat menggunakan keduanya?

100

Saat ini saya mendengar banyak tentang "Groovy on Grails" dan saya ingin tahu lebih banyak tentangnya:

  • Apa itu Groovy?
  • Apa itu Grails?
  • Jenis aplikasi apa yang dibuat menggunakan Groovy on Grails?
Rachel
sumber
3
Juga, itu hanya Grails. Bukan Groovy on Grails (itu tidak masuk akal ..). Anda beruntung Marc Palmer belum melihat pertanyaan ini :)
leebutts
23
Grails = Groovy on Rails
Pascal Thivent
1
Sebenarnya, ada cukup banyak kontroversi seputar moniker "Groovy on Rails", itulah sebabnya Grails TIDAK lagi disebut Groovy on Rails. Itu hanya Grails.
Matthias
3
Ya, 5 tahun yang lalu pada tahun 2006 orang-orang Ruby on Rails mengeluh dan kerangka kerja yang disebut 'Groovy on Rails' diubah namanya menjadi hanya Grails. Itu tidak pernah disebut Groovy on Grails kecuali oleh perekrut yang bingung dan korban mereka.
Burt Beckwith

Jawaban:

188
  1. Apa itu Groovy on Grails?

    Itu tidak ada lagi dengan nama ini. Ini hanya disebut Grails sekarang.

  2. Apa itu Groovy?

    Awalnya, bahasa dinamis untuk JVM. Namun, sejak Groovy 2.0, pengetikan statis dan dinamis didukung.

  3. Apa itu Grails?

    Grails (sebelumnya dikenal sebagai "Groovy on Grails") adalah kerangka kerja pemrograman berdasarkan Groovy dan terinspirasi oleh Ruby on Rails (ada perbedaan, tetapi ada banyak kesamaan juga). Seperti RoR, Grails mempromosikan "coding by convention", praktik terbaik pengembangan, dan dimaksudkan untuk menjadi sangat produktif.

  4. Jenis Aplikasi apa yang dibuat menggunakan " Groovy on Grails"?

    Grails digunakan untuk membangun aplikasi web yang berjalan di JVM.

  5. Apa kelebihan Groovy on Grails?

    Produktivitas tinggi, berfokus pada bisnis alih-alih pipa ledeng. (Perhatikan bahwa saya tidak akan merekomendasikan untuk menggunakan Grails dengan model data yang ada. Alasan di balik ini adalah bahwa Grails mendorong pendekatan top-down di mana model ER database muncul sebagai hasil dari kelas Domain. Jika Anda menggunakan database lama , Anda tidak dapat mengambil pendekatan ini. Anda harus memetakan database ke kelas domain, dan mungkin konvensi penamaan tidak cocok, sehingga perlu menggunakan file konfigurasi atau penjelasan hbm.xml Hibernate. IMO, ini bukan perubahan sepele dalam alur kerja, itu bisa menjadi sangat rumit dan Anda akhirnya kehilangan sebagian besar keuntungan dari Grails.)

  6. Mengapa seseorang ingin menggunakan Groovy di Grails ketika kita memiliki bahasa pemrograman standar seperti C / C ++, Java / J2EE, dan .NET / C #?

    Karena poin 5.

Pascal Thivent
sumber
1
Bisakah Anda menjelaskan lebih lanjut mengapa Anda tidak merekomendasikan penggunaan grails dengan model data yang sudah ada?
Todd Hunter
1
Bisakah Anda menjelaskan lebih lanjut tentang apa yang Anda maksud High productivity, focusing on business instead of plumbing.? apa plumbing?
Thang Pham
@HarryPham - Boilerplate kode dan berurusan dengan "bagaimana sesuatu dilakukan" daripada "hal apa yang kita lakukan" dari implementasi
cdeszaq
@Pascal Thivent - Saya mungkin akan menulis ulang program orang lain dari awal, dan jika bukan karena maksud Anda tentang tidak merekomendasikan penggunaan Grails dengan model data yang ada, Grails akan menjadi pemenang yang jelas untuk kerangka kerja yang akan digunakan. Saya belum melihat arsitektur DB program, tapi saya membayangkan itu cukup sederhana mengingat fungsionalitas program yang langsung. Apakah rekomendasi Anda akan berubah jika arsitektur DB yang ada sederhana? Bisakah alur kerja yang rumit dihindari dengan memigrasi data di DB lama ke DB baru, dan jika demikian, apakah ini sulit dilakukan? Terima kasih.
Daniel
Sejak Grails 3, ada berbagai profil yang dapat Anda gunakan, untuk menyesuaikan kerangka Grails untuk kebutuhan spesifik Anda. Ini tidak lagi hanya sebuah kerangka web, itu berhasil digunakan untuk mengembangkan layanan mikro REST yang ringan, tanpa jejak mesin templating, atau bahkan lapisan ORM. grails.github.io/grails-doc/latest/guide/single.html#profiles
Luis Muñiz
24

Groovy adalah bahasa pemrograman berorientasi objek untuk platform Java. Ini adalah bahasa dinamis dengan fitur yang mirip dengan Python, Ruby, Perl, dan Smalltalk. Ini dapat digunakan sebagai bahasa scripting untuk Platform Java. Groovy memiliki sintaks mirip Java dan berfungsi mulus dengan bytecode Java.

Fitur lainnya meliputi:

  • Kurva belajar mudah
  • Dukungan untuk bahasa khusus domain
  • Sintaks kompak
  • Dukungan untuk pengetikan dinamis
  • Primitif pemrosesan yang kuat
  • Kemudahan pengembangan aplikasi web
  • Dukungan untuk pengujian unit.

Grails adalah framework aplikasi web open source yang menggunakan bahasa pemrograman Groovy. Ini dimaksudkan untuk menjadi kerangka kerja produktivitas tinggi dengan mengikuti paradigma "pengkodean menurut konvensi", menyediakan lingkungan pengembangan yang berdiri sendiri dan menyembunyikan banyak detail konfigurasi dari pengembang.

Seperti Rails, Grails tampaknya menjadi apa yang saya sebut "Strongly Grained". Jika Anda melakukan sesuatu dengan cara Grails, pengembangannya mudah (dan umumnya cukup cepat). Kerangka kerja cenderung memiliki cara yang disukai untuk melakukan banyak hal. Di sisi lain, jika Anda ingin melawan arus, Anda akan mengalami masa sulit yang sebanding.

Dan jangan katakan Groovy on Grails (tidak ada), karena alasan merujuk ke blog ini .

Jainendra
sumber
12

Grails secara langsung dianalogikan dengan Ruby on Rails , tetapi berjalan dengan Groovy. Apa Groovy ? Ini adalah bahasa skrip yang berjalan di Java Virtual Machine (JVM).

Jadi Anda dapat menggunakan pustaka Java yang sudah Anda miliki atau tersedia (karena mereka dikompilasi ke bytecode dan dengan demikian dijalankan pada JVM), ditambah kekuatan JVM (untuk pengumpulan sampah, kecepatan melalui kompilasi JIT, dll.) Dan singkatnya Groovy. Kurva pembelajaran bagi programmer Java untuk menggunakan Groovy seharusnya cukup kecil (dengan demikian memanfaatkan sejumlah besar programmer Java yang tersedia).

Ini adalah cara yang sangat berbeda dalam membuat aplikasi web dengan mekanisme Java standar dari pemrograman servlet, JSP, Java Server Faces, dll. Grails (seperti Ruby on Rails) menjanjikan lingkungan pengembangan yang lebih dinamis dan berulang daripada mekanisme pengembangan standar (apakah itu benar dalam latihan , saya tidak bisa menyarankan)

Brian Agnew
sumber
Otak, pernyataan Anda bertentangan, Anda mengatakan itu adalah bahasa skrip, namun di paragraf berikutnya Anda mengatakan itu dikompilasi ke kode byte. Saya seorang programmer NET, dan bahasa scripting seperti javascript dll tidak dikompilasi tetapi hanya ditafsirkan. Bisakah Anda menjelaskan apa yang Anda maksud dengan pernyataan yang kontradiktif itu
Pelajar
Groovy dapat digunakan dengan dua cara. Program Groovy dapat dijalankan sebagai skrip baris demi baris sederhana, seperti javascript. Ia juga dapat dikompilasi menggunakan kompiler groovy ke kelas bytecode yang dapat dieksekusi menggunakan JVM.
pRmdk
0

Grails- kerangka kerja MVC untuk mengembangkan aplikasi web dan platform siap kode dengan KERING (Jangan ulangi diri Anda sendiri) yang dibangun di atas Spring + Hibernate. Platform Grails menangani infrastruktur dan ketergantungan untuk menjalankan aplikasi web sehingga para pengembang dapat berkonsentrasi untuk membangun fungsionalitas produk. Grails - framework yang bagus untuk organisasi startup untuk meluncurkan produk dari mode pengembangan ke mode produksi.

Pavithra R
sumber