使用Apache Isis快速进行SEMAT应用程序开发
TL; DR這篇文章談?wù)撐沂褂肁pache Isis創(chuàng)建并部署到此處的OpenShift Online的SEMAT寵物項(xiàng)目: http: //semat.ofbizian.com
Apache Isis
作為主要在后端系統(tǒng)上工作的Java開發(fā)人員,我討厭創(chuàng)建用戶界面和處理Java腳本。 幸運(yùn)的是,有Java項(xiàng)目,例如JSF(grrr),Apache Wicket,Vaadin,它們可以幫助完全避免使用Javascript并仍然創(chuàng)建功能用戶界面。 但是即使有這些項(xiàng)目,開發(fā)人員也必須考慮并積極地從Java代碼創(chuàng)建用戶界面。 這類似于在諸如Hibernate之類的ORM時(shí)代編寫自己的SQL語句–只有在OOTB ORM不足以適合用例的情況下,我們才進(jìn)行此活動(dòng)。 這正是Apache Isis所適合的:給定域模型和映射注釋,它在運(yùn)行時(shí)生成完整的用戶界面。 從某種意義上說,Apache Isis是Java的OUIM(對(duì)象/用戶界面映射)框架。
Apache Isis不僅僅是創(chuàng)建用戶界面,還有很多其他功能,它是專注于域驅(qū)動(dòng)設(shè)計(jì)的全棧快速應(yīng)用程序開發(fā)框架。 但是,我們不討論它,而是看一個(gè)使用Apache Isis創(chuàng)建的完整應(yīng)用程序。
SEMAT精華內(nèi)核
為了學(xué)習(xí)Apache Isis,我決定實(shí)現(xiàn)SEMAT模型并將其作為Docker容器部署到OpenShift Online。 簡(jiǎn)而言之,SEMAT(軟件工程方法和理論)本質(zhì)內(nèi)核是OMG標(biāo)準(zhǔn) ,它除其他外,還幫助定義了一個(gè)框架,用于從多個(gè)角度(稱為alpha)描述軟件項(xiàng)目的狀態(tài)。
SEMAT阿爾帕州
想法是,可以使用以下七個(gè)字母以通用方式描述每個(gè)項(xiàng)目:
利益相關(guān)者,機(jī)會(huì),需求,軟件系統(tǒng),工作,團(tuán)隊(duì),工作方式。 每個(gè)Alpha可以處于一個(gè)或多個(gè)狀態(tài),例如,
利益相關(guān)者可以是:認(rèn)可,代表,參與,一致同意,滿意等。此外,每個(gè)州在將Alpha過渡到該州之前,都需要滿足某些條件。
利益相關(guān)者Alpha的州
如您所見,這是一個(gè)非常簡(jiǎn)單的域模型,帶有狀態(tài)機(jī)邏輯。
展示應(yīng)用
夠了,要查看我必須為此應(yīng)用程序編寫多少Java,請(qǐng)?jiān)趃ithub上檢查項(xiàng)目的dom模塊 。 所有其他框架代碼都是通過maven插件生成的,不需要用戶界面代碼。 這是Project域?qū)嶓w屏幕渲染的屏幕截圖:
作為Apache Wicket屏幕的項(xiàng)目視圖
除了生成用戶界面之外,Apache Isis還將使用相同的域模型生成REST API。 多么酷啊。
從域模型生成的SEMAT REST API
而這一切的好處在于,生成UI可以使您快速迭代域模型,將其顯示給業(yè)務(wù)所有者以獲取反饋并繼續(xù)發(fā)展模型。
已實(shí)現(xiàn)/啟用了一些SEMAT應(yīng)用程序功能
- 多租戶
- 每個(gè)租戶管理多個(gè)項(xiàng)目
- 管理項(xiàng)目Alpha狀態(tài)
- 每個(gè)租戶的自定義Essence Alpha狀態(tài)列表
- 每個(gè)租戶的自定義精華清單項(xiàng)目
- Alpha狀態(tài)蜘蛛/雷達(dá)圖
- 通過域模型自動(dòng)生成基于Apache Wicket的UI
- 從同一域模型自動(dòng)生成REST API
- 自我注冊(cè)/注冊(cè)
- 審核用戶操作
- 會(huì)話記錄
- 國(guó)際化
- 面包屑小徑
- 書簽
生成并運(yùn)行
檢查自述文件以獲取完整的詳細(xì)信息,但是您可以在本地或在OpenShift上構(gòu)建和運(yùn)行該應(yīng)用程序以進(jìn)行嘗試。
mvn clean install cd webapp mvn jetty:runmvn clean install docker build --rm -t bibryam/semat . docker run -p 8080:8080 bibryam/semat然后轉(zhuǎn)到http:// localhost:8080 /并登錄:user / user
部署到OpenShift
一旦您在本地或本地運(yùn)行OpenShift
online并安裝了oc客戶端,然后可以使用以下命令部署已構(gòu)建的semat docker映像:
如果您不信任其他人構(gòu)建的Docker映像(您不應(yīng)該這樣做!),則可以使用選項(xiàng)2和3構(gòu)建如上所示的自己的Docker映像,并將其推入自己的docker注冊(cè)表并從中運(yùn)行應(yīng)用程序:
oc new-app your_name/semat:latest -e CATALINA_OPTS=“-Xmx300m” 或者,您可以避免同時(shí)安裝和運(yùn)行docker,并在OpenShift上構(gòu)建源代碼和docker映像。 那就是所謂的OpenShift Source-to-Image
方法 。 您可以使用例如“ Red Hat JBoss Web Server 3.1 Tomcat 8 1.0”模板并指向SEMAT github存儲(chǔ)庫,從OpenShift UI中執(zhí)行此操作。 或使用項(xiàng)目本身提供的模板:
使用源到映像的方法允許設(shè)置github webhooks,具有Red Hat基本映像,添加jolokia,完成Java內(nèi)存配置等。
OpenShift上的現(xiàn)場(chǎng)演示
請(qǐng)參閱試用該應(yīng)用程序,檢查在OpenShift Online上運(yùn)行的實(shí)時(shí)演示
http://semat.ofbizian.com
總之,如果您擁有一個(gè)經(jīng)常更改的域模型,并且更改域邏輯的敏捷性比用戶用戶界面的外觀更為重要,請(qǐng)查看Apache Isis。 這是一個(gè)令人難以置信的高效且快速的業(yè)務(wù)應(yīng)用程序開發(fā)框架。
翻譯自: https://www.javacodegeeks.com/2017/12/rapid-semat-application-development-apache-isis.html
總結(jié)
以上是生活随笔為你收集整理的使用Apache Isis快速进行SEMAT应用程序开发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜狗语音电脑版(搜狗语音电脑版怎么下载)
- 下一篇: 死亡骑士天赋冰霜加点(魔兽世界冰霜死亡骑