2011-12-10 28 views
13

Tôi sắp bắt đầu phát triển một ứng dụng web lớn. Có chứa phương tiện (video, âm thanh & hình ảnh) và cơ sở người dùng lớn.Jquery vs Google Closure và GWT Ưu điểm & nhược điểm dành cho phát triển ứng dụng web lớn

Lưu lượng truy cập trên trang web cũng có thể rất cao.

Vì vậy, ở đây tôi hơi bối rối nên tôi sử dụng jquery/jquery ui hoặc Google đóng cửa hoặc GWT.

tôi quen thuộc với jquery và tôi đã làm việc rất nhiều vào điều đó nhưng đối với GWT & Google Closure đây là lần đầu tiên của tôi.

Tôi cũng thoải mái trong java vì vậy tôi có thể sử dụng GWT nhưng tôi đã đề cập đến đây là lần đầu tiên của tôi với GWT.

vì vậy hãy gợi ý cho tôi những ưu & nhược điểm của tất cả ba về khả năng tương thích trình duyệt chéo, dễ hiểu, bảo trì mã, phong phú hỗ trợ ui desing, vv

-Cảm ơn trước

nếu câu hỏi này trùng lặp với một số khác ngoài việc chỉ đăng liên kết.

Trả lời

23

Tôi nghĩ điều đó thực sự phụ thuộc vào loại trang web bạn muốn tạo.
GWT có lẽ phù hợp nhất cho cái gọi là SOUI (Giao diện người dùng định hướng dịch vụ) và SOFEA (Kiến trúc kết thúc hướng dịch vụ).
Trong các ứng dụng web GWT, bạn có một trang lưu trữ HTML được cung cấp bởi chương trình phụ trợ của bạn và tất cả luồng công việc UI và flow synchronisation được thực hiện ở phía máy khách bởi GWT. Vì vậy, trong trường hợp bạn muốn đạt được một máy tính để bàn như ứng dụng GWT có lẽ là lựa chọn tốt nhất của bạn bởi vì nó là một bộ công cụ tuyệt vời cho phép phát triển các ứng dụng phức tạp như máy tính và cung cấp tất cả các ưu điểm của phát triển JAVA (thử nghiệm, tái cấu trúc, vv).

Đối với trang web "truyền thống" Các trang web 2.0T GWT có thể không phải là lựa chọn tốt nhất bởi vì nó có đường cong học tập lớn hơn các khung công tác JS (jQuery, dojo, v.v ...).
Hơn nữa, các trang web này có nhiều trang và Javascript được sử dụng cho các cải tiến giao diện người dùng chứ không phải để hoàn toàn đồng bộ hóa luồng nhưng chỉ làm cho trang tương tác hơn. Đối với các trang web này, bạn thường có một chương trình phụ trợ tốt (Grails, Spring MVC) để quản lý đồng bộ hóa luồng và khung công tác JS chỉ chịu trách nhiệm làm cho giao diện người dùng tương tác hơn và cho một số thay đổi giao diện người dùng.

Ví dụ về loại trang web này là lưu lượng truy cập stackoverflow. Nếu bạn nhấp vào một liên kết, nó sẽ tải một trang HTML mới. Nếu bạn nhấp vào liên kết hộp thư đến của bạn, nó sẽ sử dụng jQuery để mở cửa sổ bật lên và truy xuất thông báo của bạn và hiển thị chúng.

Google Closure có thể gần gũi hơn với jQuery so với GWT. Tôi nghĩ điểm bán hàng lớn nhất của Google Closure là các mẫu HTML phía máy khách và phía máy chủ. Tôi không có nhiều kinh nghiệm với Google Closure nhưng nó được Google sử dụng rất nhiều cho các ứng dụng web của họ.

Bởi vì tôi đã làm việc chủ yếu với GWT đây là danh sách các lợi thế và dis-lợi thế tôi có thể nghĩ về GWT:

Ưu:

  • toolkit mạnh mẽ
  • công cụ phát triển (kiểm tra, tái cấu trúc, nhật thực, gỡ lỗi trực tiếp)
  • Khả năng tương thích của trình duyệt chéo ngoài hộp (với một số cảnh báo)
  • Tính khả dụng của thư viện của bên thứ ba (DTO serialization, MVP frameworks, vv)
  • Chỉ mã được sử dụng được tải xuống máy khách (với khung công tác JS bạn tải toàn bộ khuôn khổ ngay cả khi bạn chỉ sử dụng một chức năng cụ thể)
  • GWT -RPC và RequestFactory để giao tiếp với một chương trình phụ trợ JAVA (không cần serialize hoặc de-serialize chính mình).

Nhược:

  • Bigger đường cong học tập
  • Có thể không được phù hợp với cải tiến giao diện người dùng nhỏ
  • Compilation có thể mất một thời gian nếu cơ sở mã là lớn và khác nhau của trình duyệt và các ngôn ngữ phải được hỗ trợ
  • Javascript được tạo có thể trở nên lớn trong các ứng dụng phức tạp (giải pháp: tách mã)

Là một lưu ý phụ: với mỗi phiên bản GWT mới, các nhược điểm trở nên ít vấn đề hơn vì mỗi phiên bản GWT mới được cải thiện trong thời gian biên dịch và kích thước mã. GWT 2.5 được cho là có một số cải tiến thực sự tốt trong lĩnh vực này.

Để tóm tắt: nếu bạn muốn phát triển một máy tính để bàn như ứng dụng web tương tác, tôi nghĩ GWT có lẽ là lựa chọn tốt nhất của bạn.
Tuy nhiên, nếu bạn muốn phát triển trang web jQuery/Google đóng cửa "web 2.0ish" truyền thống có thể là giải pháp tốt hơn.

+0

hoàn hảo..rất giải thích.thanks – Peeyush

+0

"với các khuôn khổ JS bạn tải xuống toàn bộ khung công tác ..." Lưu ý: đây không phải là trường hợp với Đóng. Nó "biên dịch" Javascript để làm xáo trộn nó, nén nó và chỉ bao gồm những gì bạn đang sử dụng. –

+0

+1 cho liên kết đến thông tin GWT 2.5. :) – Justin

6

GWT mang lại tất cả sự tốt đẹp của Java IDE cho những gì cơ bản là phát triển JavaScript. Giống như JQuery, GWT "bình thường hóa" các trình duyệt cho bạn, vì vậy bạn thường không phải kiểm tra tác nhân người dùng hoặc bất kỳ thứ gì. Những gì Java IDE tốt được bạn thực sự là đáng tin cậy refactoring hỗ trợ cho việc thay đổi tên, bao bì, phương pháp chữ ký, tất cả các loại công cụ. ITS ĐƯỢC 2 NĂM SINCE TÔI ĐÃ XONG GWT, nhưng tôi nghĩ rằng nhược điểm của nó, đặc biệt là trên các dự án lớn, là bước biên dịch. Nó không phải là nhanh chóng, đặc biệt là khi bạn để cho nó lỏng lẻo để biên dịch tất cả các Java cho mỗi trình duyệt. Nếu tôi nhớ lại chính xác, và nếu nó vẫn làm điều này ngày hôm nay, nó tạo ra trên tệp JavaScript thực sự lớn cho mỗi IE, FireFox, Chrome, Opera và Safari. Điều đó cần có thời gian, bạn của tôi. Có một khung kiểm thử đơn vị trong đó cũng là điều thú vị, mặc dù chậm hơn so với đối tác Java thuần túy của nó.

Lợi ích của GWT: Hỗ trợ công cụ mạnh mẽ thông qua hệ sinh thái Java IDE. Trách nhiệm của GWT: Biên dịch thời gian

Tôi không biết nhiều về JQuery khác ngoài việc dường như đã bẻ khóa cookie tương thích trình duyệt cho phép bạn, nhà phát triển công bằng, tập trung vào ứng dụng của bạn. Những gì tôi biết về JQuery là nó dường như có tâm trạng phát triển. Tôi, những người không có chuyên gia JavaScript, đã quản lý tích hợp JQuery vào ứng dụng web Java của tôi và thêm một bản xem trước hình ảnh "plug-in" được gọi là imgPreview (http://james.padolsey.com/javascript/new-jquery-plugin-imgpreview/) cho phép xem trước hình ảnh bật lên cho giao diện người dùng dựa trên bảng nhạt nhẽo của tôi trong khoảng 30 phút một buổi chiều. Các trình duyệt đã phát triển quá trong 2 năm qua, do đó bạn có thể tự động gỡ lỗi JavaScript của mình trong thời gian thực trong bảng điều khiển (Chrome rock cho điều này, nhưng về cơ bản là giống nhau trong FireFox và Safari), cũng như tinh chỉnh các kiểu và làm tất cả các loại thao tác DOM thẳng.

Lợi ích của jQuery: Thẳng lên JavaScript không có cách giải thích và phát triển mindshare Trách nhiệm của JQuery: Rất khó để tái cấu trúc JavaScript ở bất kỳ đâu gần mức của một ứng dụng Java.

Giá trị 2 xu của tôi.

+0

Bạn biết đấy, tôi không biết ngồi xổm về Google Closure. Có thể đó là một sự thay đổi trong trò chơi có thể khiến bạn thích một chuỗi công cụ của Google? –

+0

cảm ơn Bob vì lời giải thích tốt như vậy – Peeyush

+0

tôi xin lỗi nhưng tôi không thể chấp nhận nhiều hơn một câu trả lời nếu không tôi sẽ đánh dấu bạn là chính xác/cũng được chấp nhận. – Peeyush

3

Ưu điểm chính của Thư viện đóng cửa trên jQuery là được thiết kế để tận dụng Trình biên dịch đóng cửa (ở chế độ nâng cao). Bạn nhận được chu trình chỉnh sửa/gỡ lỗi nhanh của javascript thô và thư viện mã kích thước hợp lý và khách hàng của bạn chỉ phải đợi mã mà bạn thực sự sử dụng (giả sử bạn đã biên dịch nó).

Đối với GWT, nó trả tiền để tận dụng "chế độ dev" để tránh biên dịch.

+0

Trình biên dịch đóng vào GWT 2.5 và có thể được thử nghiệm với RC1 hành động. –

Các vấn đề liên quan