使用Apache Isis快速进行SEMAT应用程序开发

TL; DR这篇文章谈论我使用Apache Isis创建并部署到此处的OpenShift Online的SEMAT宠物项目: http: //semat.ofbizian.com

Apache Isis

作为主要在后端系统上工作的Java开发人员,我讨厌创建用户界面和处理Java脚本。 幸运的是,有Java项目,例如JSF(grrr),Apache Wicket,Vaadin,它们可以帮助完全避免使用Javascript并仍然创建功能用户界面。 但是即使有这些项目,开发人员也必须考虑并积极地从Java代码创建用户界面。 这类似于在诸如Hibernate之类的ORM时代编写自己的SQL语句–只有在OOTB ORM不足以适合用例的情况下,我们才进行此活动。 这正是Apache Isis所适合的:给定域模型和映射注释,它在运行时生成完整的用户界面。 从某种意义上说,Apache Isis是Java的OUIM(对象/用户界面映射)框架。


Apache Isis不仅仅是创建用户界面,还有很多其他功能,它是专注于域驱动设计的全栈快速应用程序开发框架。 但是,我们不讨论它,而是看一个使用Apache Isis创建的完整应用程序。

SEMAT精华内核

为了学习Apache Isis,我决定实现SEMAT模型并将其作为Docker容器部署到OpenShift Online。 简而言之,SEMAT(软件工程方法和理论)本质内核是OMG标准 ,它除其他外,还帮助定义了一个框架,用于从多个角度(称为alpha)描述软件项目的状态。

SEMAT阿尔帕州

想法是,可以使用以下七个字母以通用方式描述每个项目:

利益相关者,机会,需求,软件系统,工作,团队,工作方式。 每个Alpha可以处于一个或多个状态,例如,
利益相关者可以是:认可,代表,参与,一致同意,满意等。此外,每个州在将Alpha过渡到该州之前,都需要满足某些条件。

利益相关者Alpha的州

如您所见,这是一个非常简单的域模型,带有状态机逻辑。

展示应用

够了,要查看我必须为此应用程序编写多少Java,请在github上检查项目的dom模块 。 所有其他框架代码都是通过maven插件生成的,不需要用户界面代码。 这是Project域实体屏幕渲染的屏幕截图:

作为Apache Wicket屏幕的项目视图

除了生成用户界面之外,Apache Isis还将使用相同的域模型生成REST API。 多么酷啊。

从域模型生成的SEMAT REST API

而这一切的好处在于,生成UI可以使您快速迭代域模型,将其显示给业务所有者以获取反馈并继续发展模型。

已实现/启用了一些SEMAT应用程序功能

  • 多租户
  • 每个租户管理多个项目
  • 管理项目Alpha状态
  • 每个租户的自定义Essence Alpha状态列表
  • 每个租户的自定义精华清单项目
  • Alpha状态蜘蛛/雷达图
  • 通过域模型自动生成基于Apache Wicket的UI
  • 从同一域模型自动生成REST API
  • 自我注册/注册
  • 审核用户操作
  • 会话记录
  • 国际化
  • 面包屑小径
  • 书签

生成并运行

检查自述文件以获取完整的详细信息,但是您可以在本地或在OpenShift上构建和运行该应用程序以进行尝试。

mvn clean install
cd webapp
mvn jetty:run
mvn clean install
docker build --rm -t bibryam/semat .
docker run -p 8080:8080 bibryam/semat

然后转到http:// localhost:8080 /并登录:user / user

部署到OpenShift

一旦您在本地或本地运行OpenShift
online并安装了oc客户端,然后可以使用以下命令部署已构建的semat docker映像:

oc new-project semat
oc new-app bibryam/semat:latest -e CATALINA_OPTS=“-Xmx300m”
oc expose service semat

如果您不信任其他人构建的Docker映像(您不应该这样做!),则可以使用选项2和3构建如上所示的自己的Docker映像,并将其推入自己的docker注册表并从中运行应用程序:

oc new-app your_name/semat:latest -e CATALINA_OPTS=“-Xmx300m”

或者,您可以避免同时安装和运行docker,并在OpenShift上构建源代码和docker映像。 那就是所谓的OpenShift Source-to-Image
方法 。 您可以使用例如“ Red Hat JBoss Web Server 3.1 Tomcat 8 1.0”模板并指向SEMAT github存储库,从OpenShift UI中执行此操作。 或使用项目本身提供的模板:

oc create -f semat-openshift-template.json
oc process semat

使用源到映像的方法允许设置github webhooks,具有Red Hat基本映像,添加jolokia,完成Java内存配置等。

OpenShift上的现场演示

请参阅试用该应用程序,检查在OpenShift Online上运行的实时演示
http://semat.ofbizian.com

总之,如果您拥有一个经常更改的域模型,并且更改域逻辑的敏捷性比用户用户界面的外观更为重要,请查看Apache Isis。 这是一个令人难以置信的高效且快速的业务应用程序开发框架。

翻译自: https://www.javacodegeeks.com/2017/12/rapid-semat-application-development-apache-isis.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值