“ Groovy” และ“ Grails” คืออะไรและสร้างขึ้นโดยใช้แอปพลิเคชันประเภทใด


100

ทุกวันนี้ฉันได้ยินเกี่ยวกับ "Groovy on Grails" มากมายและฉันต้องการทราบข้อมูลเพิ่มเติม:

  • Groovy คืออะไร?
  • Grails คืออะไร?
  • แอปพลิเคชันประเภทใดที่สร้างขึ้นโดยใช้ Groovy บน Grails

3
นอกจากนี้ยังเป็นเพียง Grails ไม่ใช่ Groovy บน Grails (ที่ไม่สมเหตุสมผล .. ) คุณโชคดีที่ Marc Palmer ไม่เห็นคำถามนี้ :)
leebutts

23
Grails = Groovy on Rails
Pascal Thivent

1
อันที่จริงมีการโต้เถียงกันเกี่ยวกับชื่อเล่น "Groovy on Rails" ซึ่งเป็นสาเหตุที่ Grails ไม่เรียกว่า Groovy on Rails อีกต่อไป มันเป็นแค่ Grails
Matthias

3
ใช่ 5 ปีที่แล้วในปี 2549 พวก Ruby on Rails บ่นและกรอบที่เรียกว่า 'Groovy on Rails' ถูกเปลี่ยนชื่อเป็น Grails ไม่เคยถูกเรียกว่า Groovy บน Grails ยกเว้นนายหน้าที่สับสนและเหยื่อของพวกเขา
Burt Beckwith

คำตอบ:


188
  1. Groovy on Grails คืออะไร?

    ไม่มีอยู่ภายใต้ชื่อนี้อีกต่อไป เรียกง่ายๆว่าตอนนี้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

  5. Groovy on Grails มีข้อดีอย่างไร?

    ผลผลิตสูงเน้นทำธุรกิจแทนประปา (โปรดทราบว่าฉันไม่แนะนำให้ใช้ Grails กับโมเดลข้อมูลที่มีอยู่เหตุผลเบื้องหลังนี้คือ Grails สนับสนุนวิธีการจากบนลงล่างซึ่งแบบจำลอง ER ของฐานข้อมูลเกิดขึ้นจากคลาสโดเมนหากคุณใช้ฐานข้อมูลแบบเดิม คุณไม่สามารถใช้แนวทางนี้ได้คุณต้องแมปฐานข้อมูลกับคลาสโดเมนและอาจจะไม่ตรงตามรูปแบบการตั้งชื่อทำให้จำเป็นต้องใช้ไฟล์การกำหนดค่า hbm.xml Hibernate หรือคำอธิบายประกอบ IMO นี่ไม่ใช่การเปลี่ยนแปลงเล็กน้อยใน ขั้นตอนการทำงานมันอาจจะยุ่งยากมากและคุณจะสูญเสียข้อดีส่วนใหญ่ของ Grails ไป)

  6. เหตุใดจึงต้องการใช้Groovy บน Grails เมื่อเรามีภาษาโปรแกรมมาตรฐานเช่น C / C ++, Java / J2EE และ. NET / C #

    เพราะจุดที่ 5.


1
คุณสามารถอธิบายเพิ่มเติมได้หรือไม่ว่าทำไมคุณไม่แนะนำให้ใช้ grails กับโมเดลข้อมูลที่มีอยู่
Todd Hunter

1
คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับความหมายของคุณได้High productivity, focusing on business instead of plumbing.หรือไม่? คือplumbingอะไร?
แพม

@HarryPham - รหัส Boilerplate และจัดการกับ "วิธีการทำสิ่งต่างๆ" มากกว่า "สิ่งที่เราทำ" ของการนำไปใช้
cdeszaq

@Pascal Thivent - ฉันอาจลงเอยด้วยการเขียนโปรแกรมของคนอื่นใหม่ตั้งแต่เริ่มต้นและถ้าไม่ใช่เพราะคุณไม่แนะนำให้ใช้ Grails กับโมเดลข้อมูลที่มีอยู่ Grails จะเป็นผู้ชนะที่ชัดเจนสำหรับกรอบการใช้งาน ฉันยังไม่เห็นสถาปัตยกรรม DB ของโปรแกรม แต่ฉันคิดว่ามันค่อนข้างง่ายเนื่องจากฟังก์ชันการทำงานที่ตรงไปตรงมาของโปรแกรม คำแนะนำของคุณจะเปลี่ยนไปหรือไม่หากสถาปัตยกรรม DB ที่มีอยู่นั้นเรียบง่าย สามารถหลีกเลี่ยงขั้นตอนการทำงานที่ยุ่งยากได้โดยการย้ายข้อมูลใน DB เดิมไปยัง DB ใหม่และถ้าเป็นเช่นนั้นจะทำยากหรือไม่ ขอบคุณ.
Daniel

เนื่องจาก Grails 3 มีโปรไฟล์ที่แตกต่างกันที่คุณสามารถใช้เพื่อปรับแต่งเฟรมเวิร์ก Grails สำหรับความต้องการเฉพาะของคุณ มันไม่ได้เป็นเพียงแค่เว็บเฟรมเวิร์กอีกต่อไป แต่สามารถใช้เพื่อพัฒนาไมโครเซอร์วิส REST ที่มีน้ำหนักเบาได้สำเร็จโดยไม่ต้องใช้เทมเพลตเอนจิ้นหรือแม้แต่เลเยอร์ ORM grails.github.io/grails-doc/latest/guide/single.html#profiles
Luis Muñiz

24

Groovyเป็นภาษาการเขียนโปรแกรมเชิงวัตถุสำหรับแพลตฟอร์ม Java เป็นภาษาไดนามิกที่มีคุณสมบัติคล้ายกับ Python, Ruby, Perl และ Smalltalk สามารถใช้เป็นภาษาสคริปต์สำหรับ Java Platform Groovy มีไวยากรณ์เหมือน Java และทำงานร่วมกับ Java bytecode ได้อย่างราบรื่น

คุณสมบัติอื่น ๆ ได้แก่ :

  • เส้นโค้งการเรียนรู้ที่ง่าย
  • รองรับภาษาเฉพาะโดเมน
  • ไวยากรณ์ที่กะทัดรัด
  • รองรับการพิมพ์แบบไดนามิก
  • การประมวลผลแบบดั้งเดิมที่มีประสิทธิภาพ
  • ความง่ายในการพัฒนาโปรแกรมประยุกต์บนเว็บ
  • รองรับการทดสอบหน่วย

Grailsเป็นเฟรมเวิร์กเว็บแอปพลิเคชันโอเพ่นซอร์สซึ่งใช้ภาษาโปรแกรม Groovy มีวัตถุประสงค์เพื่อเป็นกรอบการทำงานที่มีประสิทธิผลสูงโดยปฏิบัติตามกระบวนทัศน์ "การเข้ารหัสตามแบบแผน" จัดเตรียมสภาพแวดล้อมการพัฒนาแบบสแตนด์อะโลนและซ่อนรายละเอียดการกำหนดค่าส่วนใหญ่จากผู้พัฒนา

เช่นเดียวกับ Rails Grails น่าจะเป็นสิ่งที่ฉันเรียกว่า "Strongly Grained" หากคุณทำสิ่งต่าง ๆ ในแบบ Grails การพัฒนาก็ทำได้ง่าย (และโดยทั่วไปค่อนข้างเร็ว) กรอบมีแนวโน้มที่จะมีวิธีที่ดีที่สุดในการทำสิ่งต่างๆ ในทางกลับกันถ้าคุณต้องต่อสู้กับเมล็ดพืชคุณจะมีช่วงเวลาที่ค่อนข้างหยาบ

และไม่ได้พูด Groovy ใน Grails (ไม่อยู่) สำหรับเหตุผลที่อ้างถึงนี้บล็อก


12

Grails นั้นคล้ายคลึงกับRuby on Railsโดยตรง แต่ทำงานร่วมกับ Groovy มีอะไรGroovy ? เป็นภาษาสคริปต์ที่ทำงานบน Java Virtual Machine (JVM)

คุณจึงสามารถใช้ประโยชน์จากไลบรารี Java ที่คุณมีอยู่แล้วหรือพร้อมใช้งาน (เนื่องจากถูกคอมไพล์เป็น bytecode และรันบน JVM) บวกกับพลังของ JVM (สำหรับการรวบรวมขยะความเร็วผ่านการคอมไพล์ JIT เป็นต้น) และ ความกระชับของ Groovy เส้นโค้งการเรียนรู้สำหรับโปรแกรมเมอร์ Java เพื่อรับ Groovy นั้นควรจะมีขนาดค่อนข้างเล็ก (จึงใช้ประโยชน์จากโปรแกรมเมอร์ Java ที่มีอยู่จำนวนมาก)

เป็นวิธีที่แตกต่างกันมากในการสร้างเว็บแอปสำหรับกลไก Java มาตรฐานของการเขียนโปรแกรม servlet, JSPs, Java Server Faces เป็นต้น Grails (เช่น Ruby on Rails) สัญญาว่าจะมีสภาพแวดล้อมการพัฒนาแบบไดนามิกและวนซ้ำมากกว่ากลไกการพัฒนามาตรฐาน (ไม่ว่าจะเป็นจริงใน การปฏิบัติฉันไม่สามารถแนะนำได้)


Brain ข้อความของคุณขัดแย้งคุณบอกว่าเป็นภาษาสคริปต์ แต่ในย่อหน้าถัดไปคุณบอกว่ารวบรวมเป็นไบต์โค้ด ฉันเป็นโปรแกรมเมอร์. NET และภาษาสคริปต์เช่นจาวาสคริปต์และอื่น ๆ ไม่ได้รวบรวม แต่เพียงแค่ตีความ คุณช่วยอธิบายได้ไหมว่าคุณหมายถึงอะไรจากข้อความที่ขัดแย้งกัน
ผู้เรียน

Groovy สามารถใช้ได้ทั้งสองวิธี โปรแกรม Groovy สามารถเรียกใช้งานเป็นสคริปต์ง่ายๆทีละบรรทัดเช่น javascript สามารถคอมไพล์ได้เช่นกันโดยใช้คอมไพเลอร์ groovy กับคลาส bytecode ซึ่งสามารถดำเนินการโดยใช้ JVM
pRmdk

0

Grails- เฟรมเวิร์ก MVC สำหรับการพัฒนาเว็บแอปพลิเคชันและแพลตฟอร์มพร้อมที่จะเขียนโค้ดด้วย DRY (อย่าทำซ้ำตัวเอง) สร้างขึ้นที่ด้านบนของ Spring + Hibernate แพลตฟอร์ม Grails ดูแลโครงสร้างพื้นฐานและการอ้างอิงเพื่อเรียกใช้เว็บแอปเพื่อให้นักพัฒนาสามารถมุ่งเน้นไปที่การสร้างฟังก์ชันสำหรับผลิตภัณฑ์ Grails - กรอบการทำงานที่ยอดเยี่ยมสำหรับองค์กรเริ่มต้นในการเปิดตัวผลิตภัณฑ์จากโหมดการพัฒนาไปสู่โหมดการผลิต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.