Devoxx Hackergarten的企业Web应用程序原型
我已經連續10年參加DevoxxBe了 。 這是我最喜歡的Java會議,但是談話時間表并不總是最佳的:有時我想同時看2個精彩的談話! 因此,在Devoxx的Hackergarten,在參加講座之間,我們中的一些人開始構建Web應用程序以改善進度。 我們稱其為原型OptaConf ,它已獲得Apache許可。
在過去的4年中,我一直在世界各地工作(OptaPlanner,Drools等),因此我在其他企業Java技術(JEE)方面的經驗有些陳舊。 演示文稿(例如Devoxx上的演示文稿)使我與不斷變化的Java企業界保持了聯系,但是通過編寫現實的Web應用程序來獲得一些個人動手經驗無所不能。
我寫了后端。 前端由其他Hackergarten與會者慷慨貢獻:Ixchel,David,Anne Marije,Celestino和Federico。 特別感謝Hackergarten的主持人Andres將我們召集在一起,并感謝其他Hackergarten的與會者(有時是特定技術的項目負責人),以幫助我們克服陷阱。
后端
使用JEE 7技術,編寫后端變得輕而易舉:
- 用純Java建模領域類 ,例如Speaker , Room等。
- JAXRS公開REST服務以將數據提供給webUI。
- 從字面上看,這就像在web.xml添加一些注釋( @GET , @GET @Path ,...)和簡短條目一樣簡單。
- JsonReader從Devoxx CFP API導入演講數據,然后將其轉換為我們的域類。
- 我沒有使用JAXRS來讀取該REST流,因為JsonReader為我提供了一種數據的DOM方法,然后我直接將其映射到我們的域類,而不必對它們的域類進行建模(對我們沒有更多用處) 。
- OptaPlanner優化時間表
- 這對我來說也很容易使用!
- CDI將其粘合在一起
- 這有點困難:盡管最初的@Inject效果很好,但是使用生產者提供虛擬測試數據(在編寫Devoxx CFP導入之前)使我陷入了一些陷阱:
- WildFly 8部署Webapp。
- 這是如此之快,太神奇了。
- JPA Hibernate保留數據
- 尚未實現。
總而言之,這一切都很好。 在不到1天的工作中,我能夠實現整個后端:導入Devoxx,對其進行優化并將其公開為REST服務。 當然,讓專家們立即解決陷阱對我們有所幫助。
我真正喜歡它的是pom.xml配置。 這是使所有這些技術可用的整個依賴樹:
<dependencies><dependency><groupId>org.optaplanner</groupId><artifactId>optaplanner-core</artifactId><version>6.2.0.CR1</version></dependency><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version><scope>provided</scope></dependency> </dependencies>前端
我自己沒有在前端工作,所以很難發表評論(但這不會阻止我)。 我們有3個化身。 所有人都使用過AngularJS,其中一些帶有涼亭和其他東西。 我個人覺得所有Web ui技術都是笨拙的:每年都有一種新技術被炒作,我們都應該遷移到該技術上。 有些(例如Flex)在不到一年的時間內就從炒作變成了死亡。
不管怎么說,前端人員做得很好,尤其是Celestino的貢獻非常直觀地顯示了時間表:
之前:Devoxx 2014原始時間表
以上是原始的Devoxx 2014周三時間表。 每個曲目(是一組相關的對話)都有自己的背景色。
請注意,在第一個時隙中,同時有2個Web和HTML5對話(紫色)。 在第二個時隙中,同時有2個Cloud&BigData對話(棕色)。 周三沒有方法論講座(綠色)! 這意味著方法學的談話幾乎在周四是不可避免的...哦,恐怖!
之后:POC優化的Devoxx 2014時間表
以上是在星期三使用OptaPlanner優化后的時間表。 請注意,我現在如何觀看整個曲目的所有演講而不會錯過任何一個。 這種優化已經考慮了說話人沖突。
其他約束應易于添加,例如:
- 熱門話題獲得更大的空間
- 跟蹤房間的穩定性:最大程度地減少需要更換房間的人員
- 同時沒有2位搖滾明星演講者
- 搖滾明星獲得黃金時段
- 社交演講者沒有空位
- …還有更多
我們只需要更多輸入數據,例如:哪些演講很受歡迎,哪些演講者是搖滾明星,...
結論
在后端,它變得更加簡單。 JEE 7可以正常工作。 它比以前的版本簡單得多。 大多數粗糙的邊緣都消失了。 要進行全面披露:我為Red Hat工作,因此只要有選擇,我都會堅持執行它們。
但是在前端...技術之間有太多選擇和太多折衷,我不愿意真正推薦任何東西:它們都以自己獨特的方式吸引人。 您正在編寫大量的無方向JavaScript,或者正在處理冗長的整體編譯,或者陷入了過度設計的健談生命周期。 這些只是前3個Web UI框架!
翻譯自: https://www.javacodegeeks.com/2014/11/prototyping-an-enterprise-webapp-at-devoxx-hackergarten.html
總結
以上是生活随笔為你收集整理的Devoxx Hackergarten的企业Web应用程序原型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在CXF API和拦截器中添加Gzip压
- 下一篇: 增压的jstack:如何以100mph的