2012-08-08 141 views
4

我的團隊由更多的java人組成,對JavaScript有限的經驗。我知道這個問題已被多次提出,但爲了讓我的事實正確,我需要澄清一些事情,因爲我在客戶端技術方面的經驗非常有限。我們決定使用GWT而不是純JavaScript框架來構建我們的解決方案(因爲有更多的Java體驗)。客戶端的JavaScript框架

這些都是支持我的決定的事實。

  • 100%用Java編寫
  • 需要基本的Java技能(Java SE的不是Java EE)
  • OOPHM - 非的過程託管模式 - 定義你的瀏覽器版本&。瀏覽器兼容性不再是我們的問題
  • 調試 - 調試你的GWT應用程式,就像任何其他的Java應用程序,使用IDE的調試器
  • 優化的JavaScript - GWT寫入速度更快,更緊湊的JavaScript比你

但有些我的應用程序功能需要使用外部js庫。 例如假設我需要使用一些特定的js庫來在特定頁面上繪製一些東西。 (實際上是用dojos編寫的js文件)。

  1. GWT可以滿足以上要求嗎?
  2. 您認爲與GWT合作的決定是明智的還是有其他建議?
  3. 我們發現sencha gxt擁有最好的小部件庫(我知道它的廣告,至少我發現了我們需要的所有小部件)。你認爲在覈心GWT上使用包裝庫是一個明智的想法嗎?

在此先感謝。

+0

CasperOne,你能推薦這個人(或任何人)可以問這種類型的問題嗎?在一般的編程領域,這是一個有效且有幫助的問題。這是否意味着SO沒有空間爲需要這種幫助的人提供服務?也許,這個問題應該已經被移植到程序員? – 2012-08-10 22:15:17

+0

嗨,夥計們 - 這個問題已經結束(仍然認爲這是一個有效的問題),所以我保留評論它是如何與我們的產品。 – Charith 2013-09-19 03:31:57

+0

我們對DOJO非常滿意,我們已經在UI(視圖)上做了大量的改變,而不會影響它們後面的邏輯。所以我建議任何在js和框架之間折騰的人,比如gwt,只是試着學習JS它不會太糟糕它畢竟出現:) – Charith 2013-09-19 03:40:38

回答

3

GWT可以滿足以上要求嗎?

是的(參見@Andrey Kapelchik的回答)。

您認爲使用GWT的決定是明智的還是有其他建議?

鑑於你的背景和你提到的觀點,我認爲這是一個非常好的決定。我使用JavaScript,jQuery等構建了應用程序,但對於大於1000行代碼的任何內容,我不想再次「手動」構建JavaScript應用程序。對我來說是決定性的要點:

  • 使用GWT,我可以在服務器端和客戶端都重新使用部分代碼。例如,我可以在客戶端驗證以提供即時反饋,然後使用相同的代碼在服務器上再次驗證安全性。
  • 我發現我的方式在大型GWT項目中要容易得多。雖然以一種明確的方式安排大型JavaScript代碼當然是可能的,但總是傾向於變得笨拙。
  • 我一直都在大量使用IDE功能(重構,查找字段的寫入權限......),而且對JavaScript的IDE支持對我來說太有限了。

您在這裏和那裏仍然需要一點JavaScript知識。你的團隊絕對應該學習CSS,並且我建議徹底學習 - 無論你選擇哪種客戶端框架。

我們發現sencha gxt有最好的小部件庫(我知道它的廣告,至少我發現了所有我們需要的小部件)。你認爲在覈心GWT上使用包裝庫是一個明智的想法嗎?

在我正在研究的幾個項目中,我們使用GXT,因爲這個決定是在幾年前做出的。這裏是我的看法:如果你需要建立一個非常像桌面應用程序的東西,GXT可能是完美的,否則我不會推薦以GXT上的應用程序爲基礎。

用純GWT獲得最佳性能,並且如果您瞭解CSS,則會更靈活。 GXT有一些很好的功能,但是圍繞它的侷限性,顯着的性能問題(有時它的錯誤)可能會非常耗時。如果您確實需要特殊的GXT小部件,您仍然可以構建純粹的GWT應用程序,然後只添加一個GXT/SmartGWT小部件。

2

我想GWT非常適合您描述的項目的要求和目標。 GWT有JavaScript Native Interface使用原生JavaScript。 JSNI允許將GWT與現有的JavaScript或外部JS庫集成。它通過允許您將JavaScript直接集成到應用程序的Java源代碼中解決了這些問題。

1

我們的團隊在經歷了很多錯誤的開始之後對這個問題非常困惑,我們確定JavaScript不可能真正被避免,並且它不像我擔心的那樣糟糕。在GWT上需要花費的時間與在客戶端JS MVC框架上增加的時間大致相同。

我們考慮過GWT,但放棄了它,因爲從長遠來看,由於以下原因,維護起來會更困難。

  • 如果GWT的開發者對維護它很不感興趣,那麼需要一個非常複雜的技能來維護GWT。
  • 我們可能想要的小工具可能可用於其他GWT和移植到GWT的東西可能比我們想要做的更多的工作。
  • 現代JavaScript MVC框架已經變得非常成熟,許多非常酷的功能使得開發複雜的頁面應用程序變得很容易。
  • 瀏覽器會變得更好,JS框架會變得更好,對於更高端的前端開發人員來說會更容易......等等。

我們還評估道場和傾銷它,因爲我們覺得定製它將是我們的團隊太難。這是我們結束的。

  1. Twitter的Bootstarp的CSS/Widget框架
  2. 一羣不同的jQuery插件爭吵了形式不同的地方在線
  3. JQuery的,骨幹,把手爲客戶端MVC框架。

如果我今天再次開始這個項目,我會選擇使用谷歌的AngularJS,它確實是構建客戶端Web應用程序的一個令人驚異的方法。尤其是因爲在JavaScript中巧妙地使用了依賴注入以及雙向綁定和其他一些東西。我在JS會議的王座上,谷歌AngularJS的人說他們將17000行GWT應用程序移植到2500行angularJS應用程序。