您的位置 首页 java

如果你在2016年写过Java代码,这些趋势你不应该错过

文丨Henn Idan

译丨vincentsun 、班纳睿

转载自:

现如今有很多关于代码的趋势话题,试图跟上所有事情本身就是一项全职工作。如果你不清楚如何从糠中分离小麦,我们已经为你做好这个工作了。

在本文中我们将回顾2016年热点,在新的一年哪些将有更高的热度。当然,是与 Java 相关的。准备好像在2017年一样编程吧!

Java 9,你太棒了,你让我心动

在年初,Java 6的一个bug即将转变为Java 9的一个特性:sun.misc.Unsafe。这个库包含了一系列方法,这些方法执行低层次的,不安全的操作。比如,使用分配实例方法允许你跳过对象初始化阶段,或绕过构造函数里面的安全检查。

尽管Oracle想过整个移除Unsafe库,社区最终改变了他们的想法,并转变为了Java 9的一个特性。

毫无疑问,Java 9在去年成为了头条新闻,随着我们进入2017年,它将获得越来越多的关注。现在我们需要做的就是等待,并期待它不会再一次推迟。

Java EE怎么样?

2016年是一个……对于Java企业版(也被称为Java EE)有意义的一年。全世界的Java社区一直对其很疑惑,因为它是在Java SE之上建立的。正式地说,它“仅仅”是一个规范,带有从Oracle及其他如RedHat和IBM等厂商能获取到的真实实现(就像Glassfish引用实现)。

围绕Java EE有很多问号, 其中主要的一个是“Oracle已经放弃企业软件了吗?”,但对于Java EE的一个致命的打击来自于 Gartner 的“应用平台的市场指导”。在里面,Gartner说Java EE是基于一个“不再能满足现代应用需求的过时模型”建立的。哎呀~

Java EE社区说Garter不完全对,这再次引发了围绕这个版本的讨论。Java EE 8预计在2017年上半年发布,我们猜测现在赞扬它还为时过早。但我们需要等待,看看Java EE如何,以及是否,会崩溃。

对于Java有更多消息

Java不仅仅是Java 9,还有很多你要跟上的趋势。一个好的起点是浏览2016年Top-100 Java库,检查一下过去一年你是否错过了任何事情。

同时,如果你对Java的关注主要是库,也有一些来自于Google的有趣的Java库(不是Guava)值得一看。

遵循教育的目的,有一些关键元素是随着你经验加深可以学习到的,最好是准备好打开你的思想然后去……学习。

如果你在寻求挑战,有很多项目值得你看。有优雅的问题解决,字符串操作,或甚至一个Java音乐播放器可以让我们摆弄和学习。而且当然,如果你遇到任何问题或有什么想问的,你有StackOverflow。这里是我们找到的7个最好的问题。

为你透露点小道消息:你能猜到GitHub的顶尖Java项目是怎样使用日志的吗?因为从1,313个Github目录中,我们分析了779,236个Java日志语句来找到答案:ERROR,WARN还是FATAL?

用容器装载Java

容器为我们带来了巨大的惊喜,它们能很好地用于servelet生命周期的管理,将URL映射到一个特定的servlet,以及保证URL请求者有正确的访问权限。

很多人对Java容器感兴趣。几个月前的一个OverOps支持聊天激起了我们将Apline Linux和 Docker 进行结合的兴趣。从那时起,我们看到越来越多的人用他们的容器来尝试这一点。

这就是为什么我们决定使用Alpine Linux,一个独立的Linux版本,被用于musl libc(发音为“muscle”)和busybox。除了轻量级,它也是面向安全的,它使用了作为Linux内核安全增强的grsec/Pax。

Docker仍是业界最火爆的工具之一。Docker公司试图使用容器,解决更快速更容易地运输代码的挑战。然而,如果你考虑在Docker上使用Java,你最好三思而行,因为这可能会导致你打破(Java)法则。

DevOps如何呢?

我们知道你在想什么——我们在讨论一个流行语。在2016年我们遇到的最常见的话题就是DevOps,它有一系列的含义和工作方法。其主旨是了解在一个实际部署的应用中发生了什么,并能够控制它。

我们怎么能实现DevOps呢?通过监控我们的生产环境。性能问题、错误和异常经常发生,我们需要知道发生了什么。但我们怎样能知道什么时候以及为什么某些事件会发生呢?这就引入了Observability(可视性)概念,帮助我们获取深入系统的视角,理解到底是什么发生了。

这是DevOps工作流的一部分,在控制论里面,这是能多好地从系统的外在输出推断出系统内在状态的一个度量。在此,引入了另一个“流行语”:Instrumentation(仪表)。它允许我们在应用乱套之前,对其深入了解。

在我们建立了这些基石后,到了拿出帮助我们监控我们应用性能的工具的时候了。一旦应用被启动和运行,我们需要知道是否以及什么时候错误或异常会出现。这就是为什么市场中存在无数的错误追踪工具,你需要做的就是选择最适合你的一款。

错误不是唯一需要我们关注的问题,2016年遗留的最大的挑战是如何处理日志文件。所有人都是用日志文件来搜索和理解他们应用中的错误、崩溃和异常。有些人用直接的方式,在纯文本日志文件中搜索,有些人依靠日志管理工具来帮助他们在日志干草堆中寻找bug。

2016年的日志文件还是很糟糕

如果你在寻找一个新的方式调试你的产品的错误和异常,OverOps(2016年经历过一次改版)为你提供了在整个调用堆栈中完整的源代码和变量状态。包括所有的,传入了导致错误的事务的,参数和变量。

其他点点滴滴

我们无法忽视microservices( 微服务 )的趋势。有些人会说这是另一个令人无法容忍的流行语,但其他人会背诵将一个单片软件拆分的好处,或者是采用反向的方法并关注消极的方面。

但无论怎么看,似乎最近所有人都沉浸在微服务中。现在你只需要小心在你使用它的时候,不要把生产环境中的任何事情搞砸。

无服务器计算体系结构在过去几年同样获得了大量的关注。无服务器计算的概念讨论的是部署代码,而不是服务器。用户不再需要购买、管理和扩展服务器,而是由云提供商处理对虚拟机的请求。

所以你还是需要服务器的,但这个新的模型把操纵服务器的责任从你身上拿走了。或者换句话说,你不再面临处理在服务器上部署代码或安装任何类型的软件的麻烦了。基本上,你只需要一个被管理的云服务和一个电脑。

最后,尽管它们已经存在一段时间了,似乎所有人都在讨论人工智能和机器学习。它不再是科学家和研究者保留的秘密,而在几乎所有新出现的技术中都有所实现。

围绕这个领域最近的流行语和演化使得非研究者也可以接触到它。现在你很容易接触到相关的算法和工具。你一定要知道你在做什么,但是用机器学习能力强化你的应用容易了很多。

对社区的呼吁

你会爱上Java社区的。它们不仅影响这门语言未来的版本,还通过各种关于任何Java的聚会、文章和信息来丰富我们。2016年有很多非常棒的会议,包括JavaOne、QCon,而且有很多很棒的演讲,你可以现在查看录像。

学习软件开发领域最新进展的主要资源之一,是观看在线的演讲和视频。这是一个很棒的平台,在这里Java专家们坐在沙发上,与我们分享经验。

或者,如果你不喜欢看视频,浏览Java服务台也能让你跟上现在最新的趋势。

但同行支持在我们工作的所有方面都是相关的,我们能从周围的同行身上学到很多。一个关键的特性是,要做到高产,因为总有可以改进的空间。我们需要做的就是准备好接受建议,并聆听任何愿意发言的人的意见。

别忘记开源

社区另一个关键的元素是支持和贡献开源项目。事实上,我们启动了你们期待已久的(或根本没期待的)命令行工具——Bullshifier。我们可以用它测试我们部分监控的能力,这种监控是针对超大规模的代码的,这种代码有针对上千个类的上千层函数调用事务,最后还出现了异常。

最后的思考

我们发现在2016有很多的话题和流行语。 有些我们已经知道, 一些则是全新的,可以让我们以完全不同的方式看待Java。现在我们对2017年充满希望,期待着Java 9,并且希望有更多新的惊人的特性、演讲、项目,甚至可能是一两个新的流行词。

文章来源:智云一二三科技

文章标题:如果你在2016年写过Java代码,这些趋势你不应该错过

文章地址:https://www.zhihuclub.com/190383.shtml

关于作者: 智云科技

热门文章

网站地图