當然,我聽過很多有關Rails,Django和最近的Node.js的精彩故事; 實際上,圍繞這些技術有一些引人入勝的故事。 我最終將大量的業余時間用于這些技術上,而我實際上非常開心地用它們來構建一些小型應用程序和原型。 但是,第二天早上我會醒來,去上班,面對另一個重要的重要項目,然后回到我嘗試過的事實:Java。
其中一個項目是房利美的在線報價管理系統,該系統在第一個月就收到了10億美元的報價。 在我看來,我無法向這種重要項目的團隊介紹一種全新的語言,尤其是像Python或Ruby這樣的腳本語言。 從個人經驗來看,如果沒有類型檢查,我很難管理一個大型項目。 我對Java領域的選擇并不感到十分興奮,因為我對Java領域的選擇并不感到十分興奮,而與其他選擇(例如Grails,Spring Roo等)相比,我的成功程度卻很小。那時,我并不想放棄Java作為一種語言,尤其是因為它的可靠性而逐漸成為我信任的JVM。
然后我遇到了Play ; 對我來說一見鐘情。 我很想告訴您我是如何玩到Play的,只需在Twitter( @_felipera )上關注我。 一旦決定乘車兜風,我馬上就起來跑步! 使用一個簡單的命令“ play new”,就定義了整個應用程序結構。 然后再執行另一個簡單的命令“ play run”,就可以開始聚會了! 我立刻就松了一口氣,因為我不需要拿出所有這些XML文件,Spring的applicationContext.xml,web.xml,Hibernate的HBM文件,然后就可以弄清楚如何將它們連在一起! 即使在使用這些技術多年后,我仍然必須從某個地方復制并粘貼它們。 我永遠都不記得所有這些語法。
對我來說,另一個明顯的吸引力是Play能夠即時重新加載類而無需重新部署整個應用程序或重新啟動服務器。 我想我們都知道在應用程序上工作,對類進行更改,執行maven或ant deploy會是什么樣子……等到打包戰爭之后……復制到deploy目錄中……等待servlet上下文被破壞……然后再等待一些時間來部署應用程序。 然后…最終部署了應用程序之后,我們打開瀏覽器,進入開發環境,然后出現錯誤! 問題可能像將單個字符放到某處一樣簡單。 不管問題是什么,我們仍然需要重新完成整個過程。 到第三次或第四次發生時,開發人員會在Slashdot,Hacker News或他/她最喜歡的網站上劃分區域。 Play可以很好地處理課程重載; 您真的不必重啟服務器!
Play的無狀態模型也吸引了我,該模型“無共享” HTTP體系結構。 我們中的許多人都不幸地開發了,甚至更糟糕的是,它支持基于Stateful模型構建的基于J2EE的應用程序。 管理狀態,集群安全的緩存對象,HTTP會話確實非常困難,尤其是對于那些Enterprise Java Bean(EJB)以及附加對象的整個概念而言。 Play不會在每個節點之間共享狀態,從而簡化了群集的管理,它提供了可感知群集和群集安全的緩存解決方案。
伙計,我可以整夜繼續前進,但我會讓我擺脫所有的瘋狂! 簡而言之, Play是用于現代Web應用程序的完整堆棧框架,具有基于NIO的開發和生產服務器,對MVC的完全支持,持久性引擎,完全集成的測試框架(單元測試和功能測試),強大的異步Web服務客戶端,基于異步的作業管理器,可通過模塊使用的多個擴展,通過其插件機制,依賴項管理,驗證框架以及WebSockets等更高級的功能支持對框架行為的完全自定義。
我不知道你們是否知道,但我是個老人。 我從事Web應用程序開發已有15年左右的時間。 并且在大多數情況下,具有永恒的激情。 但是Play重新振興了我對重新開發Web應用程序的熱愛。
參考: 為什么我會愛上游戲! 框架? 從我們的JCG合作伙伴 Felipe Oliveira在“極客完全加入”博客中獲得。
- 簡單的Twitter:Heroku上的Play框架,AJAX,CRUD
- RabbitMQ播放模塊! 構架
- Spring MVC開發–快速教程
- SmartGWT入門,提供出色的GWT界面
- Vaadin附加組件和Maven
- Java教程和Android教程列表
翻譯自: https://www.javacodegeeks.com/2011/10/play-framework-why-did-i-fall-in-love.html