“Groovy” và “Grails” là gì và những loại ứng dụng nào được xây dựng bằng cách sử dụng chúng?


100

Ngày nay, tôi nghe rất nhiều về "Groovy on Grails" và tôi muốn biết thêm về nó:

  • Groovy là gì?
  • Grails là gì?
  • Những loại ứng dụng nào được xây dựng bằng Groovy trên Grails?

3
Ngoài ra, nó chỉ là Grails. Không phải Groovy trên Grails (điều đó không có ý nghĩa gì ..). Bạn thật may mắn khi Marc Palmer đã không nhìn thấy câu hỏi này :)
leebutts

23
Grails = Groovy on Rails
Pascal Thivent 4/10/09

1
Trên thực tế, đã có khá nhiều tranh cãi xung quanh biệt danh "Groovy trên Rails", đó là lý do tại sao Grails KHÔNG được gọi là Groovy trên Rails nữa. Nó chỉ là Grails.
Matthias

3
Vâng, 5 năm trước vào năm 2006, những người chơi Ruby on Rails đã phàn nàn và khung công tác được gọi là 'Groovy on Rails' đã được đổi tên thành chỉ Grails. Nó chưa bao giờ được gọi là Groovy trên Grails ngoại trừ những nhà tuyển dụng bối rối và nạn nhân của họ.
Burt Beckwith

Câu trả lời:


188
  1. Groovy on Grails là gì?

    Nó không tồn tại dưới cái tên này nữa. Bây giờ nó đơn giản được gọi là Grails .

  2. Groovy là gì?

    Ban đầu, một ngôn ngữ động cho JVM. Tuy nhiên, kể từ Groovy 2.0, cả kiểu gõ tĩnh và động đều được hỗ trợ.

  3. Grails là gì?

    Grails (trước đây được gọi là "Groovy on Grails") là một khung lập trình dựa trên Groovy và lấy cảm hứng từ Ruby on Rails (có những điểm khác biệt, nhưng cũng có rất nhiều điểm tương đồng). Giống như RoR, Grails thúc đẩy "mã hóa theo quy ước", các phương pháp phát triển tốt nhất và có nghĩa là mang lại hiệu quả cao.

  4. Loại Ứng dụng nào được xây dựng bằng " Groovy on Grails"?

    Grails được sử dụng để xây dựng các ứng dụng web chạy trên JVM.

  5. Ưu điểm của Groovy on Grails là gì?

    Năng suất cao, tập trung vào kinh doanh thay vì hệ thống ống nước. (Lưu ý rằng tôi không khuyên bạn nên sử dụng Grails với một mô hình dữ liệu hiện có. Lý do đằng sau điều này là Grails khuyến khích cách tiếp cận từ trên xuống trong đó mô hình ER của cơ sở dữ liệu phát sinh do kết quả của các lớp Miền. Nếu bạn đang sử dụng cơ sở dữ liệu kế thừa , bạn không thể thực hiện cách tiếp cận này. Bạn phải ánh xạ cơ sở dữ liệu tới các lớp miền và có thể quy ước đặt tên sẽ không khớp, nên việc sử dụng các tệp cấu hình hoặc chú thích hbm.xml Hibernate là cần thiết. IMO, đây không phải là một thay đổi nhỏ trong quy trình làm việc, nó có thể trở nên thực sự cồng kềnh và bạn sẽ mất hầu hết các lợi thế của Grails.)

  6. Tại sao người ta muốn sử dụng Groovy trên Grails khi chúng ta có các ngôn ngữ lập trình tiêu chuẩn như C / C ++, Java / J2EE và .NET / C #?

    Vì điểm 5.


1
Bạn có thể giải thích thêm tại sao bạn không khuyên bạn nên sử dụng grails với mô hình dữ liệu hiện có không?
Todd Hunter

1
Bạn có thể giải thích thêm về ý của bạn High productivity, focusing on business instead of plumbing.không? là plumbinggì?
Thang Pham

@HarryPham - Mã soạn sẵn và xử lý "cách mọi thứ được thực hiện" chứ không phải "những việc chúng tôi làm" khi triển khai
cdeszaq

@Pascal Thivent - Tôi có thể kết thúc việc viết lại chương trình của người khác từ đầu và nếu bạn không khuyên bạn nên sử dụng Grails với một mô hình dữ liệu hiện có, Grails sẽ là người chiến thắng rõ ràng để sử dụng khung. Tôi chưa thấy kiến ​​trúc DB của chương trình, nhưng tôi tưởng tượng nó khá đơn giản với chức năng đơn giản của chương trình. Đề xuất của bạn có thay đổi gì không nếu kiến ​​trúc DB hiện có là đơn giản? Có thể tránh được quy trình làm việc cồng kềnh bằng cách di chuyển dữ liệu trong DB cũ sang DB mới không, và nếu vậy thì điều này có khó thực hiện không? Cảm ơn.
Daniel

Kể từ Grails 3, có nhiều cấu hình khác nhau mà bạn có thể sử dụng, để tùy chỉnh khung Grails cho các nhu cầu cụ thể của bạn. Nó không còn chỉ là một khuôn khổ web nữa, nó có thể được sử dụng thành công để phát triển các vi dịch vụ REST nhẹ, không có dấu chân của công cụ tạo khuôn mẫu hoặc thậm chí là lớp ORM. grails.github.io/grails-doc/latest/guide/single.html#profiles
Luis Muñiz

24

Groovy là một ngôn ngữ lập trình hướng đối tượng cho nền tảng Java. Nó là một ngôn ngữ động với các tính năng tương tự như Python, Ruby, Perl và Smalltalk. Nó có thể được sử dụng như một ngôn ngữ kịch bản cho Nền tảng Java. Groovy có cú pháp giống Java và hoạt động liền mạch với mã bytecode của Java.

Các tính năng khác bao gồm:

  • Đường cong học tập dễ dàng
  • Hỗ trợ các ngôn ngữ dành riêng cho miền
  • Cú pháp rút gọn
  • Hỗ trợ gõ động
  • Nguyên thủy xử lý mạnh mẽ
  • Dễ phát triển ứng dụng Web
  • Hỗ trợ kiểm thử đơn vị.

Grails là một khung ứng dụng web mã nguồn mở sử dụng ngôn ngữ lập trình Groovy. Nó được thiết kế để trở thành một khuôn khổ năng suất cao bằng cách tuân theo mô hình "mã hóa theo quy ước", cung cấp một môi trường phát triển độc lập và ẩn nhiều chi tiết cấu hình khỏi nhà phát triển.

Giống như Rails, Grails dường như là thứ mà tôi gọi là "Strongly Grained". Nếu bạn làm mọi thứ theo cách Grails, việc phát triển rất dễ dàng (và nói chung là khá nhanh). Khuôn khổ có xu hướng có một cách ưu tiên để thực hiện hầu hết mọi thứ. Mặt khác, nếu bạn cần làm ngược lại với hạt, bạn sẽ có một khoảng thời gian tương đối khó khăn.

Và đừng nói Groovy on Grails (không tồn tại), vì lý do hãy tham khảo blog này .


12

Grails tương tự trực tiếp với Ruby on Rails , nhưng chạy với Groovy. Có gì Groovy ? Đó là một ngôn ngữ kịch bản chạy trên Máy ảo Java (JVM).

Vì vậy, bạn có thể sử dụng các thư viện Java mà bạn đã có hoặc sẵn có (vì chúng được biên dịch thành bytecode và do đó chạy trên JVM), cộng với sức mạnh của JVM (để thu gom rác, tốc độ thông qua biên dịch JIT, v.v.) và sự ngắn gọn của Groovy. Đường cong học tập cho một lập trình viên Java để chọn Groovy được cho là khá nhỏ (do đó tận dụng số lượng lớn các lập trình viên Java hiện có).

Đó là một cách rất khác để tạo ứng dụng web với các cơ chế Java tiêu chuẩn của lập trình servlet, JSP, Java Server Faces, v.v. Grails (như Ruby on Rails) hứa hẹn một môi trường phát triển năng động và lặp đi lặp lại hơn so với các cơ chế phát triển tiêu chuẩn (cho dù điều đó có đúng trong thực hành , tôi không thể tư vấn)


Não bộ, tuyên bố của bạn mâu thuẫn, bạn nói rằng nó là một ngôn ngữ kịch bản, nhưng trong đoạn tiếp theo, bạn nói rằng nó được biên dịch thành mã byte. Tôi là một lập trình viên .NET và các ngôn ngữ kịch bản như javascript, v.v. không được biên dịch mà chỉ được thông dịch. Bạn có thể vui lòng giải thích những gì bạn có ý nghĩa bởi những tuyên bố trái ngược
Học

Groovy có thể được sử dụng theo cả hai cách. Chương trình Groovy có thể được thực thi dưới dạng một tập lệnh đơn giản từng dòng, giống như javascript. Nó cũng có thể được biên dịch bằng cách sử dụng trình biên dịch groovy thành lớp bytecode có thể được thực thi bằng JVM.
pRmdk

0

Grails- MVC framework để phát triển một ứng dụng web và một nền tảng mã hóa sẵn sàng với DRY (Đừng lặp lại chính mình) được xây dựng trên đầu Spring + Hibernate. Nền tảng Grails chăm sóc cơ sở hạ tầng và các yếu tố phụ thuộc để chạy một ứng dụng web sao cho các nhà phát triển có thể tập trung vào việc xây dựng các chức năng cho sản phẩm. Grails - một khuôn khổ tuyệt vời cho các tổ chức khởi nghiệp để đưa sản phẩm từ chế độ phát triển sang chế độ sản xuất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.