I. Giới thiệu
Là một nhà phát triển Java bận rộn. Có lẽ bạn đang sẵn sàng chấp nhận tất cả sự giúp đỡ, bạn có thể nhận được từ nền tảng và các công cụ có sẵn cho bạn. Đó là nền tảng Java đã trở thành có khả năng hơn và nhiều hơn nữa performant.
Để gặt hái những lợi ích của nền tảng này và để giải quyết vốn có phức tạp của các ứng dụng của bạn, bạn cần một công cụ với một năng động và khả năng Lập trình meta.
Java ngôn ngữ được tán tỉnh với ý tưởng đó trong một thời gian và sẽ hỗ trợ các tính năng này mức độ khác nhau trong các phiên bản trong tương lai. Tuy nhiên, bạn không cần phải chờ đợi ngày hôm đó. Bạn có thể xây dựng các ứng dụng Java performant với tất cả các khả năng năng động hiện nay, ngay bây giờ, bằng cách sử dụng Groovy.
II. Groovy là gì?
Groovy là một ngôn ngữ hướng đối tượng chạy trên JVM. Groovy là mã nguồn mở dưới Apache.
Phiên bản 2.0. Nó có nguồn gốc sức mạnh từ ngôn ngữ khác nhau như Smalltalk, Python, và Ruby trong khi giữ lại một cú pháp quen thuộc với lập trình viên Java. Groovy biên dịch thành Java bytecode và mở rộng java API và các thư viện. Nó chạy trên Java 1.4 hoặc mới hơn. Để triển khai,tất cả những gì chúng ta cần là một JAR Groovy.
Groovy là ngôn ngữ mã nguồn mở hàng đầu năng động cho máy ảo Java cung cấp một cú pháp linh hoạt giống như Java rằng hầu hết các nhà phát triển Java có thể học trong vài giờ. Groovy cung cấp các tính năng nhìn thấy trong các ngôn ngữ động như Ruby, Python,Smalltalk. Groovy thực sự tỏa sáng trong khả năng của mình để dễ dàng xác định ngôn ngữ nội bộ cụ thể. Domain có thể được sử dụng như một lớp trừu tượng cho phép các chuyên gia vấn đề phi kỹ thuật để hệ thống hóa các quy tắc kinh doanh.
Sự kết hợp của Groovy và Grails cung cấp các lợi ích năng suất sánh với Ruby on Rails,nhưng trên nền tảng Java đã được chứng minh, khả năng mở rộng, và tích hợp hoàn toàn.
SpringSource cung cấp một thuê bao hỗ trợ cho Groovy và Grails cung cấp cho nhà phát triển chuyên gia và các doanh nghiệp hỗ trợ sản xuất cần phải tự tin triển khai công nghệ Groovy và Grails trên toàn doanh nghiệp.
III. Groovy
Groovy như là một ngôn ngữ đã được tái sinh một số lần 6 James Strachan và Bob McWhirter bắt đầu vào năm 2003, và nó được đưa vào Thông số kỹ thuật Yêu cầu Java tháng ba năm 2004. Ngay sau đó, nó đã gần như bị bỏ rơi vì những khó khăn khác nhau và các vấn đề.
Guillaume Laforge và Jeremy Rayner quyết định gợi lại những nỗ lực và mang lại Groovy trở lại cuộc sống. Nỗ lực đầu tiên của họ là để sửa chữa lỗi và ổn định các tính năng ngôn ngữ. Sự bất ổn tiếp tục kéo dài trong một thời gian.
Cuối cùng, một nhóm phát triển nhiệt tình tham gia lực lượng với Guillaume và Jeremy, và một cộng đồng phát triển rực rỡ xuất hiện. JSR phiên bản 1 đã được công bố Tháng 8 năm 2005.
Groovy phiên bản 1.0 phát hành đã được công bố vào ngày 02 Tháng Một 2007. Đó là khuyến khích để thấy rằng, trước khi nó đạt 1,0, Groovy đã được đặt để sử dụng vào các dự án thương mại trong một số ít các tổ chức trong Hoa Kỳ và châu Âu.
Trong thực tế, nha phat triển đã nhìn thấy lợi ích ngày càng tăng trong Groovy các hội nghị và các nhóm người dùng trên khắp thế giới. Một số tổ chức và các nhà phát triển đang bắt đầu sử dụng Groovy ở các cấp độ khác nhau cho dự án của họ, và các nhà phát triển nghĩ rằng thời gian đã chín muồi cho việc ứng dụng Groovy chính ngành công nghiệp.
Groovy phiên bản 1.5 được phát hành vào ngày 7 tháng 12 năm 2007. Grails được xây dựng bằng cách sử dụng Groovy và Java, là một năng động khuôn khổ phát triển web dựa trên mã hóa theo quy ước. Nó cho phép lập trình nhanh chóng xây dựng các ứng dụng web trên JVM bằng cách sử dụng Groovy, Spring, Hibernate, và Java các khuôn khổ khác.
James Strachan lần đầu tiên nói về sự phát triển của Groovy trong blog của mình trong tháng 8 năm 2003. Một số phiên bản đã được phát hành giữa năm 2004 và 2006.
Sau khi quá trình tiêu chuẩn hóa JCP bắt đầu, số phiên bản đã được thay đổi và một phiên bản gọi là "1.0" được phát hành vào ngày 02 tháng 1 năm 2007. Sau khi bản thử nghiệm khác nhau và các ứng cử viên phát hành số 1.1, ngày 07 tháng 12 năm 2007, Groovy 1,1 cuối cùng đã được phát hành và ngay lập tức đổi tên như Groovy 1.5 như là một sự phản ánh của nhiều thay đổi đã được thực hiện.
Trong tháng 7 năm 2009, Strachan đã viết trên blog của mình Tôi có thể thành thật nói rằng nếu ai đó đã cho tôi thấy các lập trình trong Scala cuốn sách của Martin Odersky, LexSpoon & Bill Venners trở lại vào năm 2003 tôi có lẽ chưa bao giờ tạo ra Groovy. Strachan rời các dự án âm thầm một năm trước 1.0 Groovy phát hành trong năm 2007.
V. Sức mạnh của Groovy
Do Rails gắn chặt chẽ với ngôn ngữ lập trình Ruby, Grails sẽ không thể thoát ra nếu không có sức mạnh to lớn của Groovy. Groovy là một ngôn ngữ động chạy trên JVM và hòa nhập thông suốt đối với ngôn ngữ Java. chung ta đã dần làm quen đã làm quen với sức mạnh của ngôn ngữ lập trình này. Nếu chúng ta chưa biết tý gì về Groovy , thì cũng không phài lo khi khi lam việc hoặc học Grails, chúng ta sẽ có rất nhiều Groovy trong khi làm việc và học. Nó sẽ không khó lắm do Groovy được chủ định thiết kế riêng cho các nhà phát triển JAVA.
Ví dụ, Groovy cho phép bạn giảm một số lượng mã JAVA mà thông thường bạn phải viết. Bạn cũng không cần viết phần thu và phần cài cho các trường của bạn, do Groovy cung cấp chúng cho nhà lập trình một cách tự động. Không còn phải viết vòng lặp for Iterator i = list.iterator() qua một danh sách các khoản mục list.each làm như vậy một cách chính xác và quyết liệt. Nói một cách đơn giản, Groovy chính là ngôn ngữ Java sẽ trở thành nếu nó được viết trong thế kỷ thứ 21.
Groovy sẽ không hấp dẫn tý nào đối với các nhà phát triển Java nếu nó bắt họ phải viết lại toàn bộ ứng dụng từ nền ban đầu để có thể tận
dụng được ưu thế của nó. May mắn là, Groovy có thể tích hợp thông suốt đối với mã nền hiện nay của bạn. Groovy không thay thế ngôn ngữ Java Nó là một bộ phận hỗ trợ phát triển. Bạn có thể học Groovy nhanh bởi vì cuối cùng, mã Groovy chính là mã Java. Hai ngôn ngữ này rất dễ tương thích với nhau nên bạn có thể đổi tên tệp khi làm việc là tệp .java thành tệp .groovy — ví dụ, thay đổi Person.java thành Person.groovy — để có giá trị hoàn hảo (và chạy được) như tệp Groovy (mặc dù tệp này không tận dụng được lợi ích từ các ngôn ngữ ngọt ngào mà Groovy đem lại).
Mức độ tương thích cao này giữa ngôn ngữ Groovy và Java có nghĩa rằng Grails không phải kiến tạo lại bộ máy vận hành khi nó gặp phải các công nghệ chủ đạo đã được sử dụng trong môi trường hiện nay. Thay vào đó, nó cho phép bạn sử dụng thư viện quen thuộc của JAVA qua các nhóm Groovy-colored. JUnit TestCase được bọc trong Groovy và giới thiệu như là GroovyTestCase. Grails đưa ra một điều chỉnh mới trong Ant xây dựng với GANT, một thực hiện thuần Groovy của Ant. Grails gói Hibernate trong một lớp ngoài Groovy mỏng và gọi nó là GORM — the Grails Object/Relational Mapper. Đây chỉ là 3 ví dụ về Grails đã cho phép bạn cân bằng tất cả kinh nghiệm Java đã có trong khi tận dụng ưu điểm các thực tiễn phát triển web hiện đại. Để đánh giá được đầy đủ Grails, bạn phải trực tiếp thử nghiệm nó. Bây giờ là thời điểm cài đặt Grails và tạo ra ứng dụng Web đầu tiên của bạn.
VI. Ứng dụng cua Groovy on Grails.
Dự án Grails được gây cảm hứng từ sự thịnh hành của ―Ruby on Rails‖ – framework đã đem lại nhiều thay đổi mới mẻ trong cách thức lập trình web. Với Ruby on Rails (RoR), những công việc lặp đi lặp lại thường thấy được tự động hóa, một số mô hình và giao diện có thể được tự phát sinh, và môi trường lập trình được hỗ trợ tối đa. Tất cả những điều đó đã nhanh chóng đưa RoR lên một vị trí được trọng vọng trong thế giới programmer.
Với mong muốn có một ―RoR‖ kết hợp được sức mạnh những nền tảng Java kinh điển: Spring, Hibernate, SiteMesh… Peter Ledbrook và đã được quyết định xây dựng ―Groovy on Grails‖. Một framework đã dần thành hình và phát triển mạnh mẽ từ đó.
Phiên bản 0.1 của Grails được phát hành vào tháng 3/2006. Đến nay Grails đã lên đến phiên bản 1.3.7 (2/2011). Qua gần 5 năm, tốc độ, sự ổn định của Grails đã được cộng đồng sử dụng thừa nhận và đánh giá cao.
Sức mạnh của Groovy có thể tóm gọn lại ở những yếu tố sau:
- Tăng năng suất lập trình. Grails giúp tự động hóa những công
việc và các câu truy vấn đơn giản(dynamic finder), hỗ trợ scaffolding, và hệ thống taglib giúp lập trình viên xử lý html một cách rất dễ dàng.
- Giản dị hóa những công nghệ lập trình “ khó ” như Spring, Hibernate. Giúp cho việc học và sử dụng dễ dàng với những
ứng dụng đơn giản; mà vẫn đảm bảo tính linh hoạt, khả chuyển của những công nghệ gốc khi cần thiết.
- Quen thuộc với lập trình viên Java: lập trình viên có thể lập
trình bằng hai ngôn ngữ Groovy và Java, thậm chí trộn chung lẫn nhau chương trình cũng vẫn chạy. Điều này giúp rút ngắn thời gian học Grails cho Java-developer.
- Cộng đồng sử dụng Grails rất tích cực . Mọi vấn đề nảy sinh
liên tục được cập nhật để đáp ứng kịp thời các nhu cầu của môi trường công nghiệp.
- Thư viện plug-in phát triển phong phú: Cơ chế plug-in của
Grails cho phép người sử dụng có thể dễ dàng mở rộng các tính năng của web-application, đồng thời cũng có thể public các plugin này để chia sẻ với cộng đồng. Ví dụ, cần gửi mail từ server? Chỉ cần cài đặt plugin Mail , cấu hình mail server và thêm 1 dòng code gọi service!
- Groovy: một ngôn ngữ độc đáo và thú vị.
Nếu là một lập trình viên web Java, thì khi chuyển đổi sang Grails tốc độ anh ta sẽ nhanh lên ít nhất là gấp rưỡi.
Tuy vậy, bất cứ công nghệ nào cũng có những khiếm khuyết của nó. Là một framework còn khá mới, Grails cũng tồn tại những nhược điểm. Trước khi thử Grails, cần chú ý những điểm sau: - Document của Grails được viết khá tốt, nhưng chưa thể gọi là
đầy đủ.
- Để dùng tốt được Grails, NÊN hiểu sâu các công nghệ Java hỗ trợ Grails.
- Với những người mới làm quen, Grails có một số ―Gotcha‖ khá rắc rối.
- Thiếu hỗ trợ IDE.
Vậy phải giải quyết thế nào?
Nếu mới ở mức độ nhập môn, vấn đề 1 và 3 sẽ không phải là vấn đề quá lớn. Để đi xa hơn, những ―bí kíp‖ sau có thể sẽ hữu dụng: - Grails Document: đây vẫn là nơi chính thống nhất.
- Grails Gotcha – Bộ blog 3 bài của Peter Ledbrook, một trong những người sáng lập của Grails. Với cách viết cực kì đơn giản và sinh động, đây là tài liệu cho những người bắt đầu với Grails.
- Grails Mailing list: mailing list của dự án Grails, subscribe vào
đây để có thể hỏi về những vấn đề phát sinh với ứng dụng của mình và yêu cầu giúp đỡ.
- Grails Jira: Nơi nhận report bug cho dự án Grails. Đôi khi ở
đây ta cũng có thể tìm thấy một số work-around cho một vấn đề cụ thể.
- StackOverflow: rất rất rất hữu ích, dành cho mọi lập trình viên
- Ebook: ―Grails – Getting Started‖ viết rất dễ hiểu cho những
người mới làm quen, dù có một vài chi tiết chưa thật cập nhật. ―Grails – The definite guide‖ cũng là một quyển sách có giá trị. - Và vô số các bài blog, tài liệu về Grails tản mác khắp nơi trên
Internet.
Về IDE, thì chúng ta cũng không phải quá lo lắng. Đúng là đã có thời người ta nói: cả Eclipse, NetBean đều không tốt bằng Notepad khi viết Grails. Nhưng bây giờ đã khác: nếu IntelliJ Pro không phải lựa chọn thì bạn có thể thử SpringSource Tool Suit, một IDE mới dành riêng để phát triển Groovy On Grails, được nhiều người đánh giá khá cao.
Thật ra, nếu website không có yêu cầu gì cao siêu thì ta có thể bỏ qua vấn đề này, nhưng tôi thành thật khuyên: bạn NÊN biết những gì xảy ra sau ―cánh gà‖ của Grails. Đúng, Grails là một công nghệ mạnh, gói gọn cấu hình XML phức tạp của Hibernate/Spring bên trong lòng, chỉ đưa ra những option đơn giản và thường dùng nhất. Nhưng sự tiện lợi cũng có cái giá của nó. Dùng Grails mà không biết Hibernate thì chẳng khác nào lái xe mà không nắm hết luật giao thông, đến khi bị cảnh sát thổi phạt thì không hiểu mình làm gì sai. Thêm vào đó, sự hiểu biết cấu trúc bên dưới của Grails sẽ rất có ích nếu bạn phải đụng đến những vấn đề phức tạp như tính portable, hay legacy database. Chính trong những trường hợp này, Spring/Hibernate sẽ thể hiện được sức mạnh của mình.