2009-04-13 26 views

Trả lời

7

Tôi đã làm việc với GWT khoảng một năm trước. Vào thời điểm đó nó dường như là một ý tưởng tuyệt vời, với một số hãy cẩn thận:

  • tôi đã "Gotcha" vấn đề với một số bộ phận của API, mà có lẽ có liên quan đến thực tế là bạn đang mã hóa, nếu như bạn đang trong java khi thực tế bạn đang viết cho một môi trường biên dịch riêng biệt hoạt động như java, vì vậy bạn thực hiện một số giả định không chính xác (trong trường hợp này, chuyển các giá trị lồng nhau cho giao diện người dùng). Tôi nghĩ rằng có khác đã được viết lại kịch bản kiến ​​của tôi để sử dụng một jvm 32-bit cho biên dịch GWT.
  • Tôi dành một chút thời gian để tinh chỉnh sự xuất hiện - chúng tôi chưa bao giờ triển khai dự án đã hoàn thành nên tôi không chắc chắn công việc này sẽ đạt được mức độ chuyên nghiệp như thế nào, nhưng có vẻ như có thể so sánh được với việc điều chỉnh giao diện xoay. có thể hơi khó sử dụng, trực quan hơn html.
  • Vì ajax bị ẩn giấu trong bạn trong sản phẩm cuối cùng, tôi có một số lo ngại về những gì tôi có thể làm nếu hiệu suất kém.

Điều đó đang được nói, nó có vẻ đáng chơi với, và kinh nghiệm của tôi đã lâu, rất lâu trước đây trong những năm internet, đặc biệt là bây giờ nó có thể trưởng thành hơn nhiều. Nó cũng đáng chỉ ra rằng đó là một cách rất khác nhau (và làm mới) của việc phát triển mã GUI từ hầu hết các khuôn khổ MVC, và đáng xem nếu không có lý do nào khác hơn thế.

Cảm giác của tôi là nếu bạn đang xây dựng một trang web chuyên nghiệp có tải trọng cao với các yêu cầu đồ họa rất khắt khe thì GWT có lẽ không phải là một lựa chọn tốt, nếu không thì ok.

+0

Mối quan tâm của tôi là nó không trực quan để viết mã Java để tạo ra một giao diện trực quan. Nghe có vẻ như bạn thực sự đã có vấn đề đó nhiều. Đã không nghĩ về việc điều chỉnh ajax - điều đó có thể quá khó để làm phiền với tôi. Tôi tự hỏi làm thế nào GWT khác nhau là từ khi bạn sử dụng nó. – karl

+0

Không chắc tại sao bạn nói điều này - "Cảm giác của tôi là nếu bạn đang xây dựng một trang web chuyên nghiệp có tải trọng cao với các yêu cầu đồ họa rất khắt khe thì GWT có lẽ không phải là một lựa chọn tốt, nếu không thì" - là vì GWT là "nặng" trình duyệt - hiệu suất khôn ngoan? – karl

+0

Với sự nghiêm túc của sự cẩn trọng của bạn, tôi ngạc nhiên khi bạn không nói tôi ra khỏi nó. Nhưng có vẻ như bạn nghĩ rằng những mối quan tâm này có giá trị lớn hơn. . . gì? Tôi không nhìn thấy nhiều mặt tích cực ở đây :) – karl

1

GWT tương đối mới. Quá trình biên dịch có xu hướng chậm dần khi cơ sở mã của bạn phát triển. Khi chúng tôi làm việc với nó, chúng tôi đã tìm thấy nhiều vấn đề với cách bố trí và hiển thị các tiện ích phức tạp hơn và trình mô phỏng hoạt động hoàn toàn khác với các máy chủ thực. Ngoài ra, chúng tôi đã gặp sự cố với i18n cho các ngôn ngữ từ phải sang trái ...

Tất cả trong tất cả, các vấn đề GWT có (thường lệ?) Của các công nghệ trẻ. Tuy nhiên, nó làm cho một số điều thực sự dễ dàng, như Ajaxifying khi bạn đặt tên nó.

+0

Ý bạn là Java nói chung? Toàn đội có nhiều năm kinh nghiệm ... – abyx

+0

Tôi rất ngạc nhiên khi nghe điều này. Bạn có kinh nghiệm với công nghệ Java như thế nào? – karl

+0

Vâng, ý tôi là Java nói chung. Tôi đã không chắc chắn nếu rắc rối của bạn là kết quả của sự không quen thuộc với cách làm việc của Java. – karl

1

Chúng tôi đã làm điều này cho một dự án rất lớn, và miễn là bạn biết đó là những hạn chế, điểm mạnh và điểm yếu, nó hoạt động rất tốt. Funnily đủ trình bày là ít nhất của phức tạp của chúng tôi, như chúng tôi chỉ da nó giống như bạn sẽ bất kỳ trang HTML khác, bằng cách sử dụng CSS. Dự án đã hoạt động và chạy hoàn hảo nên tôi không có khiếu nại.

Các cạm bẫy tôi tìm thấy với nó, bạn có thể tìm thấy ở đây:

Biggest GWT Pitfalls?

2

Bạn nói rằng GWT sẽ xử lý các lớp presentational. Bạn có đang làm lớp kinh doanh trong Java không? Nếu đúng như vậy, tôi muốn chỉ cho bạn hướng tới IT Mill Toolkit, điều đó thực hiện chính xác điều này: Đó là bộ công cụ sử dụng GWT để hiển thị các thành phần GUI của nó, cho phép bạn thực hiện các ứng dụng của mình hoàn toàn bằng Java. Tôi nghĩ rằng thuật ngữ nó đang cố gắng để tiền xu là "máy chủ định hướng RIA".

Tôi đến từ một nền tảng PHP, nhưng ngay lập tức đến như bộ công cụ.Nhưng có lẽ tốt hơn là tôi sẽ không nói thêm gì nữa và để bạn tự quyết định.

Disclamer: Tôi làm việc tại IT Mill, mặc dù điều đó không liên quan đến ý kiến ​​của tôi.

+0

Tôi đoán bạn không được phép thích sản phẩm mà bạn làm việc hàng ngày ... –

+0

Có lẽ không phải là nếu nó tốn tiền ... bài đăng là CW mặc dù vậy, không quan trọng người ta nghĩ gì :) –

+0

Bill: bộ công cụ miễn phí như trong bia và nguồn mở. Oh, và tôi không lo lắng về danh tiếng, CW hay không. Tôi chỉ bối rối những phản ứng. Ý tôi là, nếu tôi đã giữ nó là một 'bí mật' mà tôi, thực sự, được công ty của tôi trả tiền, liệu nó có tốt hơn không? Có lẽ tôi sẽ bị rán hơn, nếu có ai đó để ý những gì tôi bỏ qua, tôi đoán vậy. –

1

Chúng tôi đã phát triển một ứng dụng HR Portal lớn với lớp toàn bộ bài thuyết trình được thực hiện trong GWT. Phần phụ trợ là Spring. Tất cả hoạt động rất tốt và giao diện người dùng đã được người dùng tiếp nhận rất tốt. Rất quan trọng là chúng tôi dễ dàng thêm chức năng mới và duy trì ứng dụng. Tôi nghĩ rằng sẽ khó hơn nhiều khi làm điều gì đó có thể so sánh và duy trì được bằng cách sử dụng các thư viện Javascript.

Bạn cần một số loại khuôn khổ phía khách hàng hoặc bạn sẽ kết thúc viết một (như chúng tôi đã làm!): Ứng dụng của chúng tôi được xây dựng trên GWT Portlets (nguồn mở và miễn phí).

Chúng tôi sử dụng các đoạn HTML để tạo skin ứng dụng cho các triển khai khác nhau và bố cục của từng "trang" được lưu trữ trong một tệp XML.

-1

GWT trong chính bản thân nó là thư viện nâng cao giao diện người dùng chứ không phải là một khung công tác. Nếu bạn sử dụng nó với Google App Engine thì bạn có một khung cơ bản. (Đó là một câu chuyện khác, và trong khi tôi nhìn vào nó, tôi quyết định không đưa nó vào kiến ​​trúc của chúng tôi).

Đó là một thư viện tuyệt vời, chúng tôi đã thực hiện một số điều ngoạn mục với nó. Vì nó là một thư viện tuy nhiên, nó chỉ là tốt như kiến ​​trúc của bạn cho phép nó được.

Theo như ANT không gặp vấn đề với trình biên dịch 64 bit.

< java failonerror = "true" ngã ba = "true" classname = "com.google.gwt.dev.Compiler" dir = "$ {dir.GWTCompile}" > < - dir.GWTCompile là thư mục chứa GWT - > <classpath> classpath </classpath > < giá trị jvmarg = "- $ {gwt.maxMem}"/> < giá trị arg = "@ {gwt.baseModule}"/> < giá trị arg = "DEBUG"/> < giá trị arg = "- nghiêm ngặt"/> </java >

Theo như các mã được tạo, nó là tất cả những gì trong cuộc chiến tranh của bạn nếu bạn muốn nhìn xuyên qua nó. (Nó cũng là nguồn mở, vì vậy bạn có thể xem nó ở đó.)

GWT làm gì trong quá trình biên dịch: Nó tạo một số bản sao của thư viện JS cho các bộ trình duyệt khác nhau (Một lý do có thể mất vài phút để biên dịch) , bạn có thể thêm/xóa chúng nếu cần. Điều này làm giảm gói JS mà cần phải được tải xuống và tăng tốc độ vì nó không phải có những khó chịu nếu (EI) khác nếu (FF) đó. Tuy nhiên, khi bạn thực hiện debug cục bộ (ít nhất là trong nhật thực), bạn không phải đợi, cho phép để cho máy chủ xây dựng (hoặc khi bạn cần xây dựng và triển khai thủ công (neanderthal)).

Nhược điểm của GWT. Vì nó là một phía máy khách javascript (gần như hoàn toàn), bạn không thể sử dụng nó cho những thứ không hỗ trợ nó, hoặc hỗ trợ một trong các phiên bản. Vì vậy, đối với những thứ như iPad và iPhone, bạn có thể gặp phải một số vấn đề nếu bạn không sử dụng các thư viện bổ sung được thiết kế để thu hẹp khoảng trống đó (như mgwt).

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