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