日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

GWT –利弊

發(fā)布時(shí)間:2023/12/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GWT –利弊 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我喜歡JavaScript。 隨著jQuery和Mootools的出現(xiàn),我對(duì)JavaScript的熱愛(ài)僅增加了很多倍。 只要有選擇,我就可以將上述框架中的任何一個(gè)用于我開(kāi)發(fā)的任何Web應(yīng)用程序。 但是進(jìn)入服務(wù)行業(yè)后,我不得不一次次屈服于客戶的壓力,并在他們選擇技術(shù)的過(guò)程中努力-這是否是正確的選擇( 向吹笛者付款的人叫the。不是嗎? )。 一位這樣的客戶使我了解了GWT的世界。

在發(fā)布GWT的那幾年,我給了他們幾槍。 那時(shí)我不那么喜歡它,所以我將其關(guān)閉,再也沒(méi)有回來(lái)。 但是,在過(guò)去六個(gè)月的時(shí)間里,我對(duì)該項(xiàng)目框架有一個(gè)稍微不同的印象。 我仍然不能說(shuō)GWT是切成薄片后的下一件大事,但至少它沒(méi)有我想的那么糟糕。 我剛剛記錄了我在項(xiàng)目過(guò)程中的好與壞的觀察結(jié)果,并認(rèn)為一些其他開(kāi)發(fā)人員可能會(huì)在評(píng)估GWT時(shí)發(fā)現(xiàn)它有用。

優(yōu)點(diǎn):

  • 如果您是Java的資深人士,并且具有Swing或AWT的經(jīng)驗(yàn),那么選擇GWT應(yīng)該是明智的選擇。 在這種背景下,學(xué)習(xí)曲線最少。
  • 即使您沒(méi)有Java GUI開(kāi)發(fā)方面的經(jīng)驗(yàn),多年開(kāi)發(fā)GWT應(yīng)用程序的經(jīng)驗(yàn)也會(huì)對(duì)您有所幫助
  • 您可以創(chuàng)建高響應(yīng)性的Web應(yīng)用程序,以減輕客戶端的負(fù)擔(dān),并減少與服務(wù)器端的閑聊
  • 盡管有很多JavaScript庫(kù)供人們參考,并且其中大多數(shù)都值得一試,但許多傳統(tǒng)開(kāi)發(fā)人員并不了解它的真正功能。 請(qǐng)記住,像JavaScript這樣的強(qiáng)大語(yǔ)言是一把雙刃劍。 如果您不知道如何使用它,即使您將無(wú)法清理自己創(chuàng)建的混亂
  • 您可以迭代地從典型的Web應(yīng)用程序遷移到GWT應(yīng)用程序。 這不是一個(gè)全有或全無(wú)的主張。 您可以使用一個(gè)名為JSNI的巧妙技巧與已經(jīng)擁有JavaScript函數(shù)進(jìn)行交互。 但是總是最好盡快將它們移至GWT
  • IDE對(duì)GWT的支持再好不過(guò)了。 Java IDE在過(guò)去十年中已經(jīng)成熟,已成為世界上最好的IDE之一,GWT可以直接利用它
  • 您可以殺死集成的調(diào)試美女。 成熟的Java IDE提供的出色的調(diào)試支持是一項(xiàng)功能,該功能可能會(huì)影響任何人的支持GWT的決定。
  • 可以直接很好地利用內(nèi)置的IDE重構(gòu)Java代碼來(lái)始終保持簡(jiǎn)單的設(shè)計(jì)。 用JavaScript進(jìn)行此操作并非出于內(nèi)心的虛弱
  • 至少可以說(shuō),IDE語(yǔ)法突出顯示,錯(cuò)誤檢查,代碼完成快捷方式等不勝枚舉。
  • Google正在積極開(kāi)發(fā)GWT。 我們知道該項(xiàng)目不會(huì)很快消失。 到目前為止,他們對(duì)項(xiàng)目的承諾充分說(shuō)明了該行業(yè)的未來(lái)。
  • 該項(xiàng)目背后的社區(qū)也是一個(gè)巨大的優(yōu)勢(shì)。 每天在Stack Overflow,討論論壇,Wiki和個(gè)人博客中進(jìn)行討論。 使用正確的關(guān)鍵字進(jìn)行簡(jiǎn)單搜索可以為您指明正確的方向
  • GWT是一個(gè)經(jīng)過(guò)深思熟慮的API; 而不是趕時(shí)間的東西。 這可以幫助您作為開(kāi)發(fā)人員快速理解抽象并使其真正直觀地使用
  • 您可以使用GWT的內(nèi)置協(xié)議在客戶端和服務(wù)器之間傳輸數(shù)據(jù),而無(wú)需任何其他有關(guān)如何打包和發(fā)送數(shù)據(jù)的知識(shí)。 如果您希望獲得更多控制權(quán),則可以始終使用XML,JSON或您選擇的其他專有格式。 即使在那種情況下,在使用JSON時(shí),您也不必使用非直觀的Java JSON庫(kù)。 您可以使用JSNI通過(guò)簡(jiǎn)單的javascript“評(píng)估” JSON。 太酷了!
  • 您具有可以使用標(biāo)準(zhǔn)Java靜態(tài)代碼分析器(例如FindBugs,CheckStyle,Detangler,PMD等)來(lái)監(jiān)視代碼和設(shè)計(jì)質(zhì)量的優(yōu)點(diǎn)。 當(dāng)您在經(jīng)驗(yàn)豐富的大團(tuán)隊(duì)中工作時(shí),這非常重要。
  • 您可以使用JUnit或Test NG進(jìn)行單元測(cè)試,可以使用JMock或另一個(gè)模擬庫(kù)來(lái)模擬依賴項(xiàng)。 如果您已經(jīng)練習(xí)過(guò),那么遵循TDD是很簡(jiǎn)單的。 盡管有基于JavaScript的單元測(cè)試框架,例如jsunit和qunit,但還是告訴我有多少人已經(jīng)知道或渴望使用它。
  • GWT編譯器生成跨瀏覽器JavaScript代碼。 今天,任何說(shuō)這話的營(yíng)銷人員都可能被擊敗。 現(xiàn)在,它已成為一種基本必需品,而不是奢侈品
  • GWT編譯器可以一口氣為您優(yōu)化生成的代碼,刪除無(wú)效代碼,甚至為您混淆JavaScript
  • 盡管編譯過(guò)程需要花費(fèi)很多時(shí)間,但您在開(kāi)發(fā)過(guò)程中不必經(jīng)歷所有過(guò)程。 有一種特殊的托管模式,該模式使用瀏覽器插件并直接使用Java字節(jié)碼生成輸出。 這是您能夠使用Java調(diào)試器調(diào)試客戶端代碼的主要原因之一。
  • 可以通過(guò)許多項(xiàng)目(例如Smart GWT,Ext GWT等)獲得豐富的第三方控件。它們?cè)O(shè)計(jì)精良,易于使用且具有主題性。 因此,如果您有一個(gè)需要不僅僅削減現(xiàn)有控件的要求,那么您應(yīng)該研究這些項(xiàng)目之一。 這些組件之一很有可能實(shí)現(xiàn)。 即使無(wú)法解決問(wèn)題,您也可以隨時(shí)推出自己的解決方案。
  • GWT強(qiáng)調(diào)有狀態(tài)客戶端和無(wú)狀態(tài)服務(wù)器的概念。 這將導(dǎo)致許多用戶必須共存的服務(wù)器上的負(fù)載極少,而只有一個(gè)用戶在工作的客戶端上的負(fù)載卻很高
  • I18N和L10N在GWT中非常簡(jiǎn)單。 實(shí)際上,基于語(yǔ)言環(huán)境的編譯由GWT編譯器本身負(fù)責(zé)。 關(guān)于常規(guī)的僅客戶端框架不能說(shuō)相同的話
  • GWT內(nèi)置了瀏覽器后退按鈕支持,即使在使用AJAX時(shí)也是如此。 如果您是AJAX開(kāi)發(fā)人員,那么您幾乎可以放心。 這是無(wú)價(jià)的。
  • 缺點(diǎn):

  • GWT是一個(gè)快速發(fā)展的項(xiàng)目。 因此,周圍有很多版本。 不贊成使用許多功能,界面和事件,而當(dāng)您要做其他工作時(shí),跟上它們的步伐并不會(huì)太有趣
  • 一開(kāi)始有很多關(guān)于GWT的書(shū)。 這些天沒(méi)那么多。 例如,我沒(méi)有找到關(guān)于GWT 2.0版的很多書(shū)。 這只剩下Google的文檔。 我同意所有文檔都是不錯(cuò)的,但是沒(méi)有什么能比寫(xiě)得好的書(shū)更好
  • 使用GWT并不有趣。 畢竟是Java,而Java不是一種有趣的語(yǔ)言。 如果您添加了整個(gè)布局和自定義控件都應(yīng)使用Java創(chuàng)建的事實(shí),則可以輕松地使成熟的程序員哭泣。 通過(guò)從2.0版開(kāi)始的UI綁定器的引入,該問(wèn)題已得到解決,但是現(xiàn)在您需要學(xué)習(xí)一種新的語(yǔ)法。
  • Java到JavaScript的編譯速度相當(dāng)慢,如果選擇GWT,這是一個(gè)很大的缺點(diǎn)。
  • 我個(gè)人更喜歡在HTML中定義結(jié)構(gòu)并使用CSS對(duì)其進(jìn)行樣式設(shè)置。 HTML中使用的概念簡(jiǎn)潔明了,而我對(duì)此有多年的經(jīng)驗(yàn)。 但是在GWT中,我被迫使用專有方法來(lái)執(zhí)行相同的操作。 再加上GWT不能解決我不兼容的樣式和對(duì)齊問(wèn)題,這使問(wèn)題更加復(fù)雜。 因此,我很想在GWT中編寫(xiě)布局代碼。 但是從2.0版開(kāi)始,有了UI Binder和HTMLLayout,我感到自己回到了自己的領(lǐng)域
  • 進(jìn)入GWT需要花費(fèi)一些認(rèn)真的承諾,在此之后,更改客戶端技術(shù)可能需要完全重寫(xiě)您的應(yīng)用程序,因?yàn)檫@與其他客戶端框架完全不同
  • 沒(méi)有使用GWT進(jìn)行應(yīng)用程序開(kāi)發(fā)的明確方法。 我們應(yīng)該每個(gè)應(yīng)用僅使用一個(gè)模塊,還是每個(gè)頁(yè)面一個(gè)模塊或介于兩者之間的某個(gè)模塊。 這些設(shè)計(jì)模式直到現(xiàn)在才在緩慢發(fā)展。 因此,通常人們傾向于在一個(gè)模塊中全部開(kāi)發(fā),直到模塊大小超出可接受范圍,然后將其重構(gòu)為多個(gè)模塊。 但是,如果為時(shí)已晚,那么重構(gòu)也不會(huì)那么容易
  • 盡管典型的桌面GUI應(yīng)用程序僅能做到這一點(diǎn),但是聽(tīng)起來(lái)和代碼的混合聽(tīng)起來(lái)并不正確。 但是如今,即使像Flex和Silverlight這樣的桌面應(yīng)用程序框架也采用了基于XML的聲明性方法來(lái)將表示與邏輯分離。 我認(rèn)為GWT 1.x版本具有此缺點(diǎn)。 從2.0版開(kāi)始引入U(xiǎn)I Binder,我認(rèn)為可以克服這一缺點(diǎn),盡管它是另一種痛苦的XML語(yǔ)言,
  • 與其他客戶端庫(kù)(例如jQuery)相比,您通常需要花3倍至5倍的代碼才能完成簡(jiǎn)單的工作
  • 您還應(yīng)該記住,使用GWT時(shí),從HTML的抽象并不完整。 您仍然需要了解您的應(yīng)用程序正在生成的DOM結(jié)構(gòu)以便對(duì)其進(jìn)行樣式設(shè)置,而GWT會(huì)使在代碼中更難看到此結(jié)構(gòu)。
  • GWT僅對(duì)Java開(kāi)發(fā)人員是一個(gè)優(yōu)勢(shì)。 具有.NET或PHP背景的開(kāi)發(fā)人員在這里一無(wú)所獲
  • 如果您已經(jīng)體驗(yàn)過(guò)JavaScript的強(qiáng)大功能,并且知道如何正確利用JavaScript來(lái)發(fā)揮自己的優(yōu)勢(shì),那么您將對(duì)Java這樣的缺乏表達(dá)能力的語(yǔ)言感到沮喪
  • 我相信你們中的許多人會(huì)有不同意見(jiàn)。 差異很好。 因此,如果您有其他想法,請(qǐng)隨時(shí)發(fā)表評(píng)論。 我們將討論...

    參考: GWT –我們的JCG合作伙伴 Ganeshji Marwaha在Ganesh博客上的優(yōu)缺點(diǎn)。


    翻譯自: https://www.javacodegeeks.com/2012/01/gwt-pros-and-cons.html

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的GWT –利弊的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。