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建模领域类 ,例如SpeakerRoom等。
  • 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原始时间表

optaconfPocDevoxxScheduleBefore

以上是原始的Devoxx 2014周三时间表。 每个曲目(是一组相关的对话)都有自己的背景色。

请注意,在第一个时隙中,同时有2个Web和HTML5对话(紫色)。 在第二个时隙中,同时有2个Cloud&BigData对话(棕色)。 周三没有方法论讲座(绿色)! 这意味着方法学的谈话几乎在周四是不可避免的...哦,恐怖!

之后:POC优化的Devoxx 2014时间表

optaconfPocDevoxxScheduleAfter

以上是在星期三使用OptaPlanner优化后的时间表。 请注意,我现在如何观看整个曲目的所有演讲而不会错过任何一个。 这种优化已经考虑了说话人冲突。

其他约束应易于添加,例如:

  • 热门话题获得更大的空间
  • 跟踪房间的稳定性:最大程度地减少需要更换房间的人员
  • 同时没有2位摇滚明星演讲者
  • 摇滚明星获得黄金时段
  • 社交演讲者没有空位
  • …还有更多

我们只需要更多输入数据,例如:哪些演讲很受欢迎,哪些演讲者是摇滚明星,...

结论

在后端,它变得更加简单。 JEE 7可以正常工作。 它比以前的版本简单得多。 大多数粗糙的边缘都消失了。 要进行全面披露:我为Red Hat工作,因此只要有选择,我都会坚持执行它们。

但是在前端...技术之间有太多选择和太多折衷,我不愿意真正推荐任何东西:它们都以自己独特的方式吸引人。 您正在编写大量的无方向JavaScript,或者正在处理冗长的整体编译,或者陷入了过度设计的健谈生命周期。 这些只是前3个Web UI框架!

翻译自: https://www.javacodegeeks.com/2014/11/prototyping-an-enterprise-webapp-at-devoxx-hackergarten.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谈一谈Http Request 与 Http Response

谈一谈Http Request 与 Http Response   写在前面的话&#xff1a;最近帮朋友弄弄微信商城&#xff0c;对于微信的基础开发&#xff0c;基本上就是各种post、get&#xff0c;有时是微信服务器向我们的服务器post、get数据&#xff0c;有时需要我们自己的服务器向微信服务器各…

增压的jstack:如何以100mph的速度调试服务器

使用jstack调试实时Java生产服务器的指南 jstack就像U2一样-从时间的黎明就一直在我们身边&#xff0c;我们似乎无法摆脱它 。 除了笑话&#xff0c;到目前为止&#xff0c;jstack是您调试军用生产服务器中最方便的工具之一。 即便如此&#xff0c;我仍然认为它在情况恶化时能够…

Zabbix监控多个JVM进程

一、场景说明&#xff1a; 我们这边的环境用的是微服务&#xff0c;每个程序都是有单独的进程及单独的端口号&#xff0c;但用jps查询出来的结果有些还会有重名的情况&#xff0c;所以某些脚本不太适用本场景&#xff1b; 二、需求说明&#xff1a; 需使用Zabbix-server监控每个…

Android 4.0 Launcher源码分析系列(二)

原文&#xff1a;http://mobile.51cto.com/hot-314700.htm 上一节我们研究了Launcher的整体结构&#xff0c;这一节我们看看整个Laucher的入口点&#xff0c;同时Laucher在加载了它的布局文件Laucher.xml时都干了些什么。 我们在源代码中可以找到LauncherApplication&#xff0…

使用JFace Viewer延迟获取模型元素

Eclipse JFace Viewers显示的模型元素有时需要花费大量时间来加载。 因此&#xff0c; 工作台提供了IDeferredWorkbenchAdapter类型以在后台获取此类模型元素。 不幸的是&#xff0c;似乎仅通过DeferredTreeContentManager派生的AbstractTreeViewer支持此机制。 因此&#xff…

Eclipse扩展的轻量级集成测试

最近&#xff0c;我为Eclipse扩展点评估引入了一个小助手。 辅助程序努力减少通用编程步骤的样板代码&#xff0c;同时增加开发指导和可读性。 这篇文章是希望的后续文章&#xff0c;展示了如何将实用程序与AssertJ定制断言结合使用&#xff0c;以编写针对Eclipse扩展的轻量级…

二:熟悉 TCP/IP 协议

一篇文章带你熟悉 TCP/IP 协议&#xff08;网络协议篇二&#xff09; 同样的&#xff0c;本文篇幅也比较长&#xff0c;先来一张思维导图&#xff0c;带大家过一遍。 一图看完本文 一、 计算机网络体系结构分层 计算机网络体系结构分层计算机网络体系结构分层不难看出&…

DOM操作案例之--全选与反选

全选与反选在表单类的项目中还是很常见的&#xff0c;电商项目中的购物车一定少不了这个功能。 下面我只就用一个简单的案例做个演示吧。 <div class"wrap"><table><thead><tr><th><input type"checkbox" id"j_cbA…

带有Swagger的Spring Rest API –公开文档

创建API文档后&#xff0c;将其提供给涉众非常重要。 在理想情况下&#xff0c;此发布的文档将具有足够的灵活性以解决任何最新更改&#xff0c;并且易于分发&#xff08;就成本以及完成此操作所需的时间而言&#xff09;。 为了使这成为可能&#xff0c;我们将利用我在上一篇文…

hinkphp项目部署到Linux服务器上报错“模板不存在”如何解决

检查了服务器上的文件&#xff0c;并没有缺少文件&#xff0c;再次上传文件到服务器&#xff0c;还是报错。莫名其妙&#xff0c;怀疑是代码问题。 仔细检查后&#xff0c;发现是模板的文件名问题&#xff1a; 用过TP的都知道&#xff1a;thinkphp会在$this->display()的时候…

Elements in iteration expect to have v-bind:key directives错误的解决办法

一、错误如下[eslint-plugin-vue][vue/require-v-for-key]Elements in iteration expect to have v-bind:key directives.Renders the element or template block multiple times based on the source data. 使用VS Code 出现如下问题&#xff0c;如图 二、解决 在用vscode编写…

无法使用JDK 8卸载JavaFX SceneBuilder 1.0

我最近从旧的基于Vista的笔记本电脑中删除了一些我曾经使用过的软件开发应用程序&#xff0c;工具和文件&#xff0c;因为主要使用该笔记本电脑的人们现在对软件开发不再感兴趣。 作为该工作的一部分&#xff0c;我尝试删除了几年前在该笔记本电脑上安装的JavaFX Scene Builder…

分享一个不错的表格样式

先贴个HTML生成的源码出来&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head>…

如何将SQL GROUP BY和聚合转换为Java 8

我无法抗拒。 我已经阅读了Hugo Prudente在Stack Overflow上提出的问题 。 而且我知道必须有比JDK提供的更好的方法。 问题如下&#xff1a; 我正在寻找一个lambda来优化已检索的数据。 我有一个原始的结果集&#xff0c;如果用户不更改我想要的日期&#xff0c;则使用Java的…

zabbix监控docker容器

1、环境说明 由于最近zabbix进行过一次迁移&#xff0c;所以zabbix-server系列采用docker方式安装&#xff0c;参考zabbix官网&#xff1a;https://github.com/zabbix/zabbix-docker。为适应本地环境和需求&#xff0c;docker-compose.yml文件有改动&#xff0c;具体内容如下&a…

Hibernate应用程序级可重复读取

介绍 在我以前的文章中&#xff0c;我描述了应用程序级事务如何为长时间的对话提供合适的并发控制机制。 所有实体都在Hibernate会话的上下文中加载&#xff0c;充当事务后写式缓存 。 Hibernate持久性上下文可以包含给定实体的一个引用和一个引用。 一级缓存可确保会话级可重…

canvas动画简单操作

canvas动画 小球滚动效果 关键api&#xff1a; window.requestAnimationFrame(draw) 会递归调用draw函数&#xff0c;替代setIntervalvar x 20; var speed 4; //电脑的帧率是1秒钟60Hz&#xff0c; 就相当于一秒钟可以播放60张图片&#xff0c;就相当于播放一张图片使用16.…

使用PrimeFaces开发数据导出实用程序

我的日常工作涉及大量使用数据。 我们使用关系数据库来存储所有内容&#xff0c;因为我们依赖于企业级的数据管理。 有时&#xff0c;具有将数据提取为简单格式&#xff08;例如电子表格&#xff09;的功能很有用&#xff0c;以便我们可以按需进行操作。 这篇文章概述了我使用P…

Tomcat到Wildfly:配置数据库连接

此摘录摘自《 从Tomcat到WildFly 》一书&#xff0c;您将在其中学习如何将现有的Tomcat体系结构移植到WildFly&#xff0c;包括服务器配置和在其顶部运行的应用程序。 WildFly是完全兼容的Java Enterprise Edition 7容器&#xff0c;与Tomcat相比&#xff0c;它具有更多的可用…

在jOOQ之上构建的RESTful JDBC HTTP服务器

jOOQ生态系统和社区正在持续增长。 我们个人总是很高兴看到基于jOOQ构建的其他开源项目。 今天&#xff0c;我们非常高兴为您介绍BjrnHarrtell结合REST和RDBMS的一种非常有趣的方法。 BjrnHarrtell从小就是瑞典的程序员。 他通常在Sweco Position AB上忙于编写GIS系统和集成&a…