javaone_JavaOne 2015 –第二十版十大收获

javaone

我们刚刚在旧金山有了JavaOne的第二十版。 这将是我自2004年以来第十二次参加不间断的系列活动。最大的教训是什么,可以揭示Java的未来。

模块化斗争

自从Java 2007首次提到模块以来,已经花费了将近9年的时间,或者说,直到2016年9月JDK 9正式发布时为止。 实际上,自JSR 277 Java模块系统以来,已经有11年了 。 当我们考虑这一努力时,将需要十多年的活动和思考( 请参见何鸿tan的原始声明 )。 Oracle对JDK的模块化工作需要自己的传记。 马克·雷因霍尔德(Mark Reinhold)也许有一天会写它,也许它会成为21世纪神话般的人类月份。 有效地重写Java令人恐惧,以至于它遵循HIGH COHESION和LOOSE COUPLING花费了近十年的时间。 除了JDK工程师以外的其他所有人都应该感到非常害怕,尤其是如果您所涉及的业务拥有庞大的Technical DEBT。 许多机构负担不起升级,重写和重新排序旧式类,程序包,更不用说模块了。 确实,对于那些难以承受重压并仍然坚持使用经典Java(JDK 1.0至7.0)的企业而言,可维护性的成本将变得天文数字化。对于Oracle,他们没有选择支付开发,设计和体系结构的全部成本。整个Java平台和社区的利益,以便在将来变得越来越好。 当我们在2016年达到JDK 9 GA时,应该对Oracle表示极大的祝贺。

模块化与我们的未来

应用程序和JDK的模块化是新的谚语,我相信Java和实践的开发人员,设计师和架构师社区都有一个“ LINE-IN-THE-SAND”(又称DEMARCATION POINT或DISRUPTION LAYER),我们将在2016年通过模块化系统可以比JDK平台更快地进行更改。 如果Project Jigsaw的设计正确,则您不再需要与CORBA或IBM派生的老式java.util.Date和java.util.Calendar竞争。 从理论上讲,您应该能够替换这些模块服务,并在不需要它们时将其删除。 如果不需要Swing,则该模块可以使用,对于JavaFX和AWT(仅用于服务器部署)相同。 尽管保证了Java平台的向后兼容性,但这意味着有机会进行试验和提出新的想法。 我预计,对于招聘部门,JDK 9在2017年将成为CAMEL的绝招。 我相信没有人会想以更快的速度触碰Java SE 7或更早版本(经典Java)。 如果那里甚至有经典的Java提示,高级工程师都会查看您的工作规格并运行100英里。 您可以提供1000英镑/天的费用,为期6个月,但认真对待这些债务的人会试图重新模块化古老的Java代码,而当下一个从事这一行业的女性开始使用现代模块化Java框架时,获得丰富的经验,领先一步,在JDK 9上构建下一个伟大的事物。另一方面,模块化并不能解决技术上的麻烦。 如果您企业的关键任务软件是无懈可击的,那么除非行为发生敏捷变化,否则您将继续承受债务。 我认为,这就是Oracle JDK 9团队希望我们成为抢先体验的早期采用者,以便尽可能地测试其企业软件的原因。

增强了将Java推入云的能力

在JavaOne 2015上,有很多关于微服务和构建云企业应用程序的想法和会议演讲。 展览中有一些云供应商,例如JElastic,Red Hat,Pivotal和CloudFoundry。 Oracle发布了自己期待已久的云产品,称为Oracle Java Cloud 。 具有讽刺意味的是,他们的PaaS解决方案提供了与Oracle Coherence集群的服务器,该公司以前称为Tangasol。 Oracle前副总裁Cameron Purdy创建了这种早期的分布式网格和缓存解决方案,实际上,他的拥护者之一Brian Oliver早在2007年就参加了JAVAWUG BOF 26并就Coherence进行了演讲。

Kubernetes和Docker

Arun Gupta是讨论Kubernetes (Google的Linux容器集群)的三位技术演讲者之一。 有新的术语。 荚是共享IP和存储卷的Docker容器的并置组。 服务是一组Pod的单个,稳定的名称,还可以充当负载平衡。 标签名称值对已分配给容器。 在非正式的情况下,LIGHTWEIGHT与HEAVYWEIGHT之间的旧应用程序服务器营销战(通常采用Java EE与Spring的模式)在本次JavaOne会议上退居二线。 如果您碰巧使用Docker或Vagrant以及诸如Chef或Puppet之类的配置管理工具,您可能会吐口水,因为如果您要停止并(重新)启动通过部署从Soup到Nuts配置的虚拟机,配置文件,您不在乎WildFly服务器有多轻或有多重? 更重要的是要知道可以使用已部署的ACME.WAR启动WildFly 8.2,并且HTTP Undertow模块已连接到秘密端口4123,该端口从外部映射到某些虚拟机上的端口80。 如果WAR文件是10MB或1MB,则您不再关心WAR文件的实际大小。

梦想微服务

戴安娜·马什(Dianne Marsh)关于NetFlix开发人员的讨论完全结束了。 许多人都在考虑这些想法,我怀疑很少有很少的组织能够在企业内部实践这些想法,并且很少有敏锐的商业支持。 微服务需要运营团队在跨职能部门(通常跨部门)工作。 在许多传统的美国和英国投资银行,其他大型商业机构,零售组织,数字设计机构中都可以找到SILO驱动工程,这是对Micro服务的厌恶。 因此,请继续做梦,如果您幸运或不幸地成为其中的一部分...最好的希望根本不是微服务,但您可以重新考虑您的MONOLITH并尝试使用COMPONENTISED APPLICATION,如果可以的话在您的企业体系结构中,您应该能够获得模块化的MONOLITH,它比(意大利面条内置的)MONOLITH更好。

Scala和Groovy

–今年,关于替代JVM语言的讨论较少。 我参加了Ted Malaska的Apache Spark演讲,这很有趣。 我还参加了Groovy中Cedric Champeau的“领域特定语言”演讲。

JavaFX逐步移动友好

JavaFX在台式机上像往常一样工作-令人惊讶的是,在今年的会议上,围绕JavaFX的主题没有创新,展示了新功能。 但是,由于Swing处于维护模式已经有好几年了,因此JavaFX的采用比以前更强。 Gluon正在投资对JavaFX的移动跨平台支持。 Gluon已经接管了将JavaFX应用程序移植到iOS和Android的工作。 对于台式机,JavaFX可能需要富文本编辑组件。 对于移动设备,有JavaFXPorts 。 我怀疑该软件团队的下一个巨大工作就是JavaFX 3D和媒体库的帮助。

JavaScript影响

AngularJS在客户端对JavaScript编程提供了一些支持。 在我自己的Digital Java EE 7演讲中,我演示了AngularJS案例工作者应用程序,并且在AngularBeans上还有另一个竞争性演讲,将AngularJS与JSF混合在一起。 Oracle还宣布了自己的JavaScript扩展工具包 ,该工具包基于Knockout.js,JQuery,JQuery UI和RequireJS。 Kito Mann在Polymer网站组件上进行了演讲。 当然,对于那些有兴趣在JVM服务器端运行JavaScript的企业,也有Nashorn技术会议。

无容器构建

人们肯定对Spring Boot感兴趣,并且可能是WildFly Swarm ,正是出于与可能在微服务上出售相同的原因。 显然,最大的区别是围绕Hot JVM类重载和动态资源的技术支持。 这些扩展解决方案与应用服务器中的WAR部署投资背道而驰,这并不奇怪,尽管该规则的例外是带有Scala(和Java)的Play Framework。 诸如JetBrain的IDEA 15和Netbeans 8.1之类的IDE允许通过HOT更改进行交互式和实验性开发。 dvelopers可以对Java代码进行合理的更改,更重要的是可以更改CSS,页面viewS和JavaScript文件,而无需重新启动应用程序。 借助Micro服务及其亲密的同僚,他们在WildFly Swarm和Spring Boot中构建了无容器构建,这种高度交互的模式(我在Bret Victor中进行频道介绍-在这里发明原理 )被取消了。 在WildFly Swarm的情况下,最大的问题是它们还没有爆炸式,可动态重装的ShrinkWrap实现,它可以允许JVM重载类和Web资源。 唯一的解决方法是可能用APPLE-IDIOMATIC-SPLIT-TEAMS-SECRET方法编写应用程序。 用户界面设计团队开发了一个新的前端,该前端负责按标题,标题,图形和描述显示产品列表。 服务器端团队编写远程端点服务以查询数据库。 前后团队在REST API或Web界面上达成共识,但他们对产品本身或说明一无所知。 他们将使用模拟数据进行测试。 高管将在发布前用Apple iPhone Invisible Edition 5150以及所有相关信息,标题,标题,英雄图形,配件,描述和价格填充产品数据库。 对于苹果公司来说,这是一个很好的解决方案,因为它是一家Kool-Aid公司,对较小的团队,中小型企业甚至一人(和一人򊰥�通常,您需要一个完整的堆栈解决方案,您可以从头到尾完全使用它,反之亦然。无容器则非常适合RESTful端点和服务器。 代码Hale的DropWizard向我们展示了如何实现这一目标。对于Java的Web前端工作还不太好(尚未)。

詹姆斯写Java

Mike Duigou的演讲James编写Java:我通过阅读James Gosling的代码[CON3563]所学到的知识 –这真是一场精彩的会议。 我很高兴看到这个直播,因为它让我想起了不要在编码中沾沾自喜的想法。 詹姆士·高斯林(James Gosling)绝对会继续用自己的知识来扩展编码。 还有改进的空间。

Java至少还有20年的生命。 从23岁(初级工程师)到63岁(ACME / PEABODY的首席架构师和静态代码),完全有可能在Java平台上工作。 我认为这当然是可以实现的。 Java编程语言和JVM之外的其他行业实践将对该生态系统产生深远影响。 硬件将不断扩展。 JVM将不得不处理1TB RAM和垃圾回收。 确实,这是JVM工程团队的下一个增长领域。 JDK 10应该希望看到值类型来帮助进行内存分配。 在服务器端,云仍然是新的前沿领域,因为它仍不确定蓝领Java开发人员将如何决定云的价值。

在用户体验方面,JavaFX使富客户端接口的寿命延长了。 JavaScript非常适合Web浏览器和HTML5,CSS元素,但是对于重型图形动画,声音和媒体渲染,富客户端是应用程序的必需。 毕竟,本机移动开发中可能有一个冗长的尾巴,Java和JavaFX只能位于LOCKED-IN平台两个据说不可逾越的WALL GARDENS之上。 如果Java坐着,潜行并潜伏在那里,那么机会就来了,它偶尔会做一次,然后继续前进。 但是,将需要专门的发烧友和小型敏捷的创新型初创公司保持压力,并确保移动开发的UNIVERSALITY继续进行。 我相信这是有机会的,因为移动芯片组将在10年内成倍增长。 看看JavaFX和其他JavaScript桥接解决方案在短短几年内(更不用说20年)将我们带到何处,将会很有趣。

Java MODULE系统是巨大的机会。 它是最终的DESIGN-FOR-REPLACEMENT功能,而不是Java编程中的功能,而是Java虚拟机和JDK发行版中的功能。 我们,开发人员,设计师和建筑师是否会永远使用它? 我们将在SOLID的修改中使用它吗? 还是我们会以某种方式滥用它? 模块化可能位于标尺的两个相对端,并且比例不同:物联网和微服务分布式应用程序模块。 就硬件和软件而言,未来很难预测。 我们唯一能做的就是参与其中,并不断前进。 让我们一起享受旅程吧。

+ PP +

Arun Gupta,用于通过微服务和容器重构Java EE应用程序(CON1700)

拉斐尔·贝内维德斯(左)和安东尼·杜randint(右)

Stephen Chin在Raspberry Pi,Oracle Demogrounds和JCP Hackergarten上焊接

徽章2015

这是给Java冠军和Googler同事Kevin Nilson的。 凯文的儿子正在JavaOne 2015的Ignite会议上讲话!

翻译自: https://www.javacodegeeks.com/2015/11/javaone-2015-the-twentieth-edition-ten-takeaways.html

javaone

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

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

相关文章

java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份

Java项目中调用bat批处理配合使用BCP进行多用户数据的备份一、项目需求最近项目中需要对数据库(Sql Server系列数据库)进行备份。项目中的需求不是简单的整个数据库的备份,而是根据用户来备份,具体的备份策略如下:①系统为某一赛事管理类型的…

mycat和应用程序集成_企业应用程序集成简介

mycat和应用程序集成本文是我们名为“ EAI的Spring集成 ”的学院课程的一部分。 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来,您将深入研究Spring Integration的基础知识,例如通道,转…

activemq和jms_带有ActiveMQ和Maven的JMS Sender应用程序

activemq和jms我们已经看到了如何使用ActiveMQ和Maven创建JMS Receiver应用程序 。 让我们看看我们如何类似地创建JMS Sender应用程序 。 web.xml与创建接收器应用程序时使用的相同&#xff1a; <web-app xmlns"http://java.sun.com/xml/ns/javaee"xmlns:xsi&qu…

java经纬度曲线简化_JAVA 后台计算 经纬度 最短距离

1、 代码块package com.ilogie.tms.util;import java.io.IOException;import java.math.BigDecimal;import java.text.MessageFormat;public class LocationUtils {// 以下为 获得 两点之间最短距离private static final BigDecimal EARTH_RADIUS MathUtil.toBigDecimal(6378.…

java ee的小程序_在Java EE应用程序中实现自动重试

java ee的小程序最初&#xff0c;我想将此博客称为“ 具有拦截器驱动的重试策略的灵活超时 ”&#xff0c;但后来我认为它太“繁重”。 该声明以及修改后的标题应该&#xff08;希望&#xff09;使您了解此帖子可能谈论的内容;-) 触发 这篇文章主要由我在较早的一篇文章中收到…

jboss eap 7_EAP 7 Alpha和Java EE 7入门

jboss eap 7红帽JBoss企业应用程序平台7&#xff08;JBoss EAP 7&#xff09;是基于开放标准构建并符合Java Enterprise Edition 7规范的中间件平台。 它建立在WildFly等经过验证的创新开源技术之上&#xff0c;这将使Java EE 7的开发更加容易。 这是有关如何开始使用最新ALPHA…

为什么说php单线程,php单线程的缺点是什么?

PHP即“超文本预处理器”&#xff0c;是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言&#xff0c;与C语言类似&#xff0c;是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习&#xff0c;使用广泛&#xff0c;主要适用于Web开发领…

openshift 部署_在OpenShift上部署Java EE微服务

openshift 部署我昨天用WildFly Swarm在博客上发布了有关简单JAX-RS微服务的博客。 您学习了如何使用Maven构建所谓的“胖子”&#xff0c;还使用Maven Docker插件对我们的微服务进行了Docker化并在Docker Machine上本地运行。 这是在本地测试事物的好方法。 到目前为止&#x…

apache.camel_Apache Camel 2.16发布–十大亮点

apache.camelApache Camel 2.16于上周五发布。 这篇博客文章是我尝试在此新版本中进行前10名&#xff08;加1作为奖励&#xff09;的亮点。 1.动态到 来自骆驼用户的最常见的常见问题是&#xff0c;如何将消息发送到端点&#xff0c;uri应该使用消息中的动态值&#xff08;例…

设计模式示例_责任链设计模式示例

设计模式示例本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中&#xff0c;您将深入研究大量的设计模式&#xff0c;并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因&#xff0c;并了解何时以及如何应用模式中的每一个。 在这里查看 &#x…

edmonds算法matlab,匈牙利算法的matlab实现

匈牙利算法算法简介算法原理算法实现(附代码)测试算法简介下面摘用百度百科中的解释。匈牙利算法(Hungarian method)是由匈牙利数学家Edmonds于1965年提出&#xff0c;因而得名。匈牙利算法是基于Hall定理中充分性证明的思想&#xff0c;它是二分图匹配最常见的算法&#xff0c…

java jooq_将Java EE与jOOQ结合使用的初学者指南

java jooqJava EE附带了自己的持久性API&#xff1a;JPA。 当您想要将RDBMS实体&#xff08;表/关系&#xff09;映射到Java实体&#xff08;类&#xff09;时&#xff0c;JPA最强大&#xff0c;主要遵循1&#xff1a;1映射策略。 其背后的思想是&#xff0c;业务逻辑通常不像关…

php扩展 waf,基于PHP扩展的WAF实现

访问一下看看结果&#xff1a;可以看到ls命令成功的执行了&#xff0c;也就是说我们的正常文件是不会被拦截的&#xff0c;而只有upload目录中的文件会被拦截&#xff0c;这样做又会引发另一个弊端&#xff0c;倘若攻击者通过某种方法将shell写入正常的文件中&#xff0c;或是与…

junit4 集成测试_使用JUnit规则进行干净的集成测试

junit4 集成测试JUnit Rules的优势&#xff0c;尤其是在进行集成测试时&#xff0c;几乎不能被高估。 在本文中&#xff0c;我们将阐明ExternalResource扩展的有用性。 在我们必须使用抽象外部资源的第三方库的情况下&#xff0c;这简化了灯具控制。 作为示例&#xff0c;我们将…

多项式在matlab中的应用,matlab的应用-多项式函数及多项式拟合

matlab的应用-多项式函数及多项式拟合 Matlab 的应用- 多项式函数及多项式拟合 本节将向大家简要介绍 matlab 在多项式处理方面的应用。 多项式函数主要有&#xff1a; roots 求多项式的根 poly 特征多项式 polyval 多 项式的计算 poly2str(p, x )多项式代换 polyfit 多项式曲线…

乐惠科技php面试题,程序员中的奇葩,使用php构建魔兽世界

这是用PHP编写的魔兽世界服务器。现在它已经调试了登录服务器的过程。目前的魔兽世界客户端是2.4.3_8606。服务器列表和帐户密码数据需要查询AUTH库。世界服务器身份验证过程已完成&#xff0c;数据包加密已完成后续进程正在开发中......数据库文件在根目录: sql/sql.7z今天在群…

javafx窗体程序_JavaFX真实世界应用程序:EIZO CuratOR Caliop

javafx窗体程序JavaFX Real-World应用程序第四号称为Caliop 。 它是EIZO为医院手术室开发的CuratOR解决方案的前端。 前端在壁挂式控制台上运行&#xff0c;并允许操作团队查找有关患者的信息&#xff0c;控制各种视频源到不同显示器的路由&#xff0c;录制视频&#xff0c;拍摄…

java8 streams_Java 8 Streams:过滤和谓词否定

java8 streams最近&#xff0c;有关LJC 邮件列表的成员在流中.filter方法中使用谓词否定的有趣讨论&#xff0c;因此我认为值得在博客文章中进行总结。 讨论是关于使用.filter和否定谓词的方法。 这篇文章的代码可以在我的github帐户中找到 。 也许这就是您可能会想到的方式&…

hystrix熔断 简介_Hystrix简介– Hello World

hystrix熔断 简介在以前的博客文章中&#xff0c;我介绍了需要像Netflix Hystrix这样的库的动机。 在这里&#xff0c;我将跳入一些非常基本的方法来开始使用Hystrix&#xff0c;并在更复杂的用例中进行跟进。 你好&#xff0c;世界 以下是“ Hystrix命令”的一个简单的Hello …

php中哪个函数用于读取文件,PHP内置函数fget读取文件

php fgets()函数从文件指针读取一行语法:fgets(file,length)参数说明必需的. 指定姚要读取的文件长度可选. 指定姚都区的字节数. 默认值为102字节从文件所指向的文件中读取一行&#xff0c;并返回最大长度为1个字节的字符串. 遇到换行符(包含在返回值中&#xff0c;)&#xff0…