Chương 2 MỘT SỐ FRAMEWORK WEB MÃ NGUỒN MỞ
2.5. SO SÁNH, ĐÁNH GIÁ CÁC FRAMEWORK
2.5.2. Đánh giá chủ quan
Spring MVC tương đối đơn giản, nhưng vẫn có nhiều lớp và khái niệm trừu tƣợng mà đôi khi khó debug nếu có điều gì sai. Và nó phụ thuộc rất nhiều vào Core Spring.
Grails có tất cả những phức tạp liên quan tới Spring và Hibernate, và bổ sung thêm một số lớp trừu tƣợng khác.
Vaadin khá phức tạp, nhƣng giúp dễ dàng phát triển, hoặc thông qua mã hoặc thông qua việc kéo và thả ở chế độ design.
JSF thì vô cùng phức tạp, do đặc tả Java EE và sự thiếu linh hoạt hiện có của runtimes. Có các thực thi mã nguồn mở của các đặc tả JSF mà cho phép sử dụng các container của non-Java EE nhƣ Tomcat, mà cắt giảm rất nhiều sự phức tạp của việc phải chạy một máy chủ ứng dụng Java Enterprise đầy đủ.
2.5.2.2. Độ dễ sử dụng
Spring thì rộng lớn, và đặc biệt là không dễ dàng để chỉ trong một ngày mà có thể sử dụng. Vì Spring dành cho việc xây dựng các ứng dụng quan trọng với nền móng vững chắc, giao diện người dùng phong phú.
Grails rất dễ sử dụng. Nó có những quy ƣớc về cấu hình. Khả năng mở rộng là rất đơn giản khi sử dụng plugin. Chỉ cần một lệnh trong console thì tất cả các phụ thuộc và cấu hình sẽ đƣợc quản lý. Tuy nhiên, nhà phát triển cần phải làm quen với Groovy khi tìm hiểu cách sử dụng Grails.
Vaadin hỗ trợ các mã soạn sẵn GWT, do đó mã trông gọn gàng hơn rất nhiều.
Khung nhìn design cho phép kéo và thả các component vào một khung và cung cấp mã logic đằng sau mỗi component. Ngoài ra còn có rất nhiều video và các trang tài
59
liệu hướng dẫn cài đặt cho những người dùng mới dễ bắt đầu hơn. Nếu không sử dụng chế độ design, mã có thể không đƣợc đẹp nhƣng không quá xấu và cũng có thể là chạy chậm một chút.
JSF cung cấp cách dễ dàng cho việc tạo ra các component web mà có thể tái sử dụng trong các ứng dụng Java. JSF rất dễ dàng để có được và chạy và thường không đòi hỏi tải về thêm hoặc cấu hình vì mã cần thiết đƣợc tích hợp sẵn ở máy chủ ứng dụng Java EE.
Có một số hướng dẫn hay cho JSF, trong đó một số được viết bởi Oracle và những đơn vị khác do các bên thứ ba (ví dụ: MyFaces).
2.5.2.3. Khả năng tạo ứng dụng nhanh chóng
Spring MVC thực sự không giúp tạo ứng dụng nhanh chóng và trong sáng. Vì nó đồ sộ và khó nắm bắt. Đối với người mới bắt đầu, nếu muốn tạo một template nhanh chóng, thì có thể tải về các gói Petclinic và gỡ bỏ tất cả những thứ không cần thiết ra, nhƣng ngay điều này cũng sẽ mất thời gian.
Cài đặt Grails rất nhanh và khả năng sinh mã tự động giúp tiết kiệm rất nhiều thời gian. Quy ƣớc về nguyên tắc cấu hình giúp loại bỏ gần nhƣ tất cả những rắc rối về cấu hình.
Vaadin có một kho lưu trữ các component cung cấp các component hiện có mà người dùng đã triển khai và đóng góp cho người dùng khác sử dụng. Chỉ cần tải về file JAR và thêm nó vào dự án là có thể sử dụng component trong mã. Ngoài ra, chế độ design cung cấp một cơ chế kéo và thả để thêm các component và mã đƣợc tạo ra, các component đƣợc cung cấp với cách bố trí chính xác theo ý muốn, mà không cần phải sử dụng bàn phím.
JSF thì không nổi tiếng về việc tạo ứng dụng nhanh chóng. Sinh mã không đƣợc tích hợp vào tính năng và ứng dụng nguyên mẫu yêu cầu nhiều cấu hình nhƣ là một ứng dụng đầy đủ. Những lợi ích lớn nhất về năng suất với JSF là những trình thuật có sẵn trong hầu hết các IDE mà tạo ra hầu hết các mã soạn sẵn và cấu hình.
60 2.5.2.4. Chất lượng hỗ trợ
Có quá nhiều thông tin trên mạng về Spring mà có thể toàn bộ một bài báo cáo đƣợc dành riêng để chỉ liệt kê và phân tích các nguồn lực sẵn có. Chính các trang web của Spring cũng cung cấp rất nhiều bài hướng dẫn cả định dạng video và văn bản, và nó rất hữu ích cho những người mới bắt đầu đến các nhà phát triển tiên tiến nhất. Có một liên kết đến kho GitHub với ứng dụng mẫu Petclinic. Spring cũng tổ chức một blog trên trang web của họ với các bài báo đƣợc viết bởi công chúng cũng nhƣ các thành viên trong nhóm Spring.
Spring có cộng đồng mạnh mẽ. Các nhóm Spring tích cực khuyến khích phân nhánh các kho dự án Spring để thực hiện thay đổi, sửa lỗi và thêm tính năng mới.
Họ cho phép công chúng truy cập vào tracker JIRA của họ để tạo điều kiện làm những việc này. Có rất nhiều nhóm người dùng Spring và nhóm người dùng Java thảo luận về các chủ đề Spring. Thậm chí Spring còn duy trì một hội nghị hàng năm đƣợc gọi là SpringOne/2GX. Spring đã tổ chức các diễn đàn và SO là nơi tuyệt vời để hỏi và trả lời các câu hỏi. Blog và bản tin hàng tháng giúp cho các nhà phát triển cập nhật những công nghệ mới và những thành tựu.
Grails hiện có lƣợng lớn thông tin. Phần tài liệu thực sự là wiki, có thể đƣợc sửa đổi bởi bất kỳ người dùng nào khi đã đăng nhập. Grails có hướng dẫn sử dụng chính thức, các bài hướng dẫn khác, các screencast, ứng dụng mẫu và nhiều hơn nữa. Ngoài ra có 42,000 chủ đề trong danh sách hộp thƣ chung và gần 12,000 câu hỏi đƣợc gắn thẻ grails trên SO.
Vaadin có một tài liệu hướng dẫn sử dụng tham khảo cho tất cả các câu hỏi của mọi người. Có thể mất phí để mua sách trực tuyến, nhưng có thể tải về các file PDF miễn phí, tìm những cuốn sách tại một trong nhiều hội nghị về Vaadin. Trực tuyến, cũng có một loạt tài liệu, bao gồm các bài hướng dẫn và các video demo, mà cực kỳ dễ dàng để học hỏi và nhân rộng. Cộng đồng mạnh mẽ với diễn đàn, blog, các hội thảo, hội nghị xuất hiện và có những đóng góp của cộng đồng trên thƣ mục
61
Vaadin. StackOverflow cũng có nhiều câu hỏi Vaadin, nhƣng nó giống nhƣ một phản hồi nhanh.
JSF không giống nhƣ ba framework trên, JSF có một cộng đồng từ trên xuống dưới với Oracle đứng đầu trả tiền cho các nhân viên viết tài liệu và tạo ra các mẫu và ví dụ. Oracle góp một phần lớn trong việc xác định và hỗ trợ các tính năng hiện có trong đặc tả kỹ thuật. Có rất nhiều tài liệu hay có sẵn cho JSF bên ngoài phạm vi ảnh hưởng của Oracle, tuy nhiên nó có thể không được toàn diện và bao gồm tất cả các tính năng mà người dùng muốn từ các tài liệu của Oracle. Có một số liên kết, youtube và các trang web video khác cũng có nội dung phong phú về hướng dẫn JSF.