Giới thiệu sơ lược về công nghệ lập trình web “Groovy on Grails”

Có một điều tôi lấy làm thú vị là, mỗi khi nhắc đến một ngôn ngữ lập trình web, người ta thường nghĩ ngay đến những framework đi cùng với chúng. Dường như framework/language đã tạo nên một cặp song hành, khó mà tách khỏi. JSP, GWT đi cùng với Java; ASP. NET đi cùng với C#; nói đến PHP thì không thể không nhắc đến Zend, Cake PHP, CodeIgniter,… Với những cặp ngôn ngữ/ framework với tuổi đời khá trẻ, nhận xét này càng tỏ ra đúng đắn: “Ruby on Rails”, “Groovy on Grails”, “Django/ Python”…

Điều trên cũng dễ hiểu, khi mà càng ngày, các web-programming framework càng phổ biến, tiện dụng hơn. Những lập trình viên chuyên nghiệp hiếm thấy ai còn muốn viết một trang web bằng “tay không” từ đầu, để rồi xử lý vô vàn những rối rắm tẻ nhạt: thêm/xóa/sửa một đối tượng trong cơ sở dữ liệu, viết giao diện thể hiện việc phân trang, … Đã có các framework ra đời để “đỡ’ cho chúng ta điều đó.

Như tựa đề đã nói, bài viết này có hy vọng giới thiệu sơ lược về framework 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.

Peter Ledbrook

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à đồng nghiệp đã 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 Grails có thể tóm gọn lại ở những yếu tố sau:

  1. 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.
  2. Giản dị hóa những công nghệ lập trình “sừng sỏ khó nhai” 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.
  3. 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.
  4. Cộng đồng sử dụng Grails rất tích cực . Mọi vấn đề nảy sinh đều được nhanh chóng thông báo; các phiên bản Grails cũng 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.
  5. 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!
  6. Groovy: một ngôn ngữ độc đáo và thú vị. Tôi sẽ đề cập sâu hơn về ngôn ngữ này ở một bài viết khác.

Nếu là một lập trình viên web Java, thì tôi tin khi chuyển đổi sang Grails tốc độ anh ta sẽ nhanh lên ít nhất là gấp rưỡi. Bản thân tôi từng thấy một lập trình viên chuyên .NET, đi “tàu nhanh” sang Grails chỉ mất có 2 ngày!

Snapshot trang web Grails sinh tự động bằng Scaffolding = 2 dòng code + giao diện sinh tự động

Snapshot trang web Grails sinh tự động bằng Scaffolding = 1 dòng code + giao diện sinh tự động

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:

  1. Document của Grails được viết khá tốt, nhưng chưa thể gọi là đầy đủ và quy củ.
  2. Để dùng tốt được Grails, NÊN hiểu sâu các công nghệ Java hỗ trợ Grails.
  3. Với những người mới làm quen, Grails có một số “Gotcha” khá rắc rối.
  4. 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 “gối đầu giường” 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 (vì  không ai muốn trả tiề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.

Nếu người đọc chú ý thì đến giờ tôi vẫn còn bỏ ngỏ vấn đề 2. 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 ;)

Trong bài viết này, tôi đã cố gắng xây dựng một hình dung tổng quát về Grails Framework, cùng với việc đưa ra một số nhận xét, đánh giá. Với tôi, Grails là một công nghệ phát triển web hứa hẹn và rất đáng quan tâm.

7 thoughts on “Giới thiệu sơ lược về công nghệ lập trình web “Groovy on Grails”

  1. ledohoanglong

    @anh Cường: anh còn viết blog nữa không? ^^ Hôm nào anh viết giới thiệu một bài về các framework của .NET cho dân Java tụi em học hỏi :D

    1. Cuong Nguyen

      Tiếc là anh bỏ viết rồi em ơi. Với lại bây giờ anh đi theo hướng management nên nếu có viết lại chắc là sẽ viết cái khác :P

  2. Alex Nguyen

    Nghe thật hấp dẫn bản thân mình là dân Java nên cũng mún thử FW này thử. Bạn có ebook nào hay giới thiệu thêm cho mọi người luôn với. Thanks bài viết của bạn nhiều lắm!

    1. ledohoanglong

      Hi bạn,

      Xin lỗi vì đã hồi âm trễ, lúc này mình cũng bận nhiều việc :)

      Bây giờ Grails đã phát triển lên phiên bản 2, mình cũng đã lâu không còn làm về Grails nữa nên cũng không biết giới thiệu sách nào cho cập nhật :-) Bạn có thể xem qua quyển Grails in Action: nếu bạn đã nắm về Java – Spring – Hibernate thì những khái niệm của Grails không hề khó chút nào.

Comments are closed.