链接:www.codeceo.com/article/java-develop-trend.html

英文:https://dzone.com/articles/if-youve-written-java-code-in-2016-here-are-the-tr

翻译作者:小峰

当涉及到代码时,有很多热门话题,并且与时俱进总是潮流所向。如果你想知道如何分离糟粕和精华,那么我们已经准备就绪,只欠各位阅读下文的东风。

在接下来的内容中,我们将查看2016年的热点,以及2017年会更热的热点。当然说的是Java方面的。好的,那就启航吧。

Java 9,你真好,你让我神魂颠倒

首先从Java 6中的一个bug说起,这个bug在Java 9中将变成一个功能:sun.misc.Unsafe。此库是用于执行低级别、不安全操作的方法的集合。例如,使用allocate Instance方法允许你跳过对象初始化阶段或绕过构造函数中的安全检查。

虽然Oracle考虑过干脆删除Unsafe库,但社区改变了他们的主意,并最终使Unsafe库成为了Java 9的一个功能。

这不是唯一一次社区谈论Java 9或Java未来版本的可能变化。今年早些时候,Brian Goetz,Oracle的Java语言架构师发布了JEP 286的调查结果。

该提案建议在未来的Java版本中引入Local Variable Type Inference,以简化Java应用程序的编写。实质? 74%的开发人员希望不要那么冗长,并且能够声明变量而不必指定相关联的类型。

过了200多天,直到Java 9将被发布(因为我们掰着手指在数它的发布日期),我们有足够的时间来挖掘不同的JEPs,并找到新的和改进的功能。这就是我们遇到的JEP 266:更多并发更新,包括CompletableFuture和令人兴奋的java.util.concurrent.Flow类的更新。

毫无疑问,过去一年中,Java 9已经成为了头条新闻,并且随着我们进入2017年,它将继续获得越来越多的关注。现在我们要做的是等待,希望它不会被再次延迟发布。

关于Java EE?

2016年对于Java Enterprise Edition,也被称为Java EE来说是有意义的一年。它一直是全球Java社区的一个混乱的来源,因为它建立在Java SE之上。从官方来说,它就“只是”一个规范,通过来自Oracle(如Glassfish参考实现)和其他厂商如Red Hat和IBM的实际可用的实现。

Java EE存在着许多问题,主要是这一个“Oracle是否已经放弃了企业软件?”。Java EE的致命打击来自Gartner的“应用程序平台市场指南”报告。在报告中,Gartner指出,Java EE是为了“已经过时且不再满足现代应用程序需求的模型”而构建的。唉~

Java EE社区表示Gartner说得不太对,并由此引发了围绕这个版本的讨论。Java EE 8预计将在2017年上半年发布,我们觉得现在就赞誉它还为时尚早。我们必须等待,看看结果如何以及Java EE是否会崩溃。

关于更多Java

Java不仅仅是Java 9,它还有很多趋势是你必须保持在潮流之上的。一个好的开始浏览2016年的100个顶级Java库,检查在过去一年是否有任何你可能错过了的东西。

此外,如果库并非你所好,那么还有一些有趣的来自于Google的Java库(不是Guava)值得一阅。

遵循教育路线,有一些关键的元素你只能随着经验的增长而学到,所以准备好学习吧。

如果你正在寻找挑战,那么有很多项目值得你花时间。你可以试着去解决这些优雅的问题,字符串操作,或者甚至Java音乐播放器,边玩边学习。当然,如果你遇到任何问题或有任何疑问的话,伟大的Stackoverflow随时为你提供服务。这里有七个我们发现的最佳问题。

有趣的小轶事:你能猜到GitHub的顶级Java项目如何使用日志吗?我们分析了1,313个GitHub存储库中的779,236个Java日志记录语句,以找出答案:ERROR,WARN还是FATAL?

将Java放在容器中

容器在新一年中变得非常有用,并且它们在管理servlet的生命周期,将URL映射到特定servlet并确保URL请求者具有正确的访问权限时也非常方便。

很多人都对Java容器感兴趣。在我们对Alpine Linux和Docker的结合激起了兴趣的几个月后,单OverOps就可以支持聊天,然后我们看到越来越多的用户使用他们的容器尝试它。

这就是为什么我们决定尝试Alpine Linux的原因,Alpine Linux是独立的,脱离了Linux,基于musl libc(读作’muscle’)和busybox。除了轻量级这个特点,它也遵循安全为主的原则,并且使用grsec / Pax,对于Linux内核而言增强了安全。

Docker仍然是业界最热门的工具之一。该公司承担了运输代码的挑战性任务,并且使它更快更容易地使用容器。但是,如果你想在Docker上使用Java,那么你可能需要重新考虑一下,因为它可能会导致你打破(Java)戒律。

关于DevOps?

我们知道你在想什么——下面我们将来说一说这个流行语。我们在2016年遇到的最常见的主题之一是DevOps,它有着各种各样的含义和工作方法。它的要旨是专注于知道在一个实时应用程序中发生了什么,并能够控制它。

我们怎么做到这一点?通过监控我们的生产环境。性能问题,错误和异常总是在产生,我们必须知道究竟发生了什么。但是,我们怎么知道什么时候以及为什么产生了某些问题?这就是Observability的概念所在,帮助我们深入了解系统并知道发生了什么。

它是DevOps工作流程的一部分,并且在控制理论中,它是通过其外部输出的知识来推断系统内部状态如何的一种度量手段。这里出现了另一个“流行语”:Instrumentation。正是Instrumentation允许我们在应用程序对我们和我们的用户发疯前获得洞察。

在我们建立这些基石之后,现在是时候提供可以帮助我们监控应用程序性能的工具了。一旦应用程序启动并运行,我们需要知道是否以及何时抛出错误或异常。这就是为什么市场上有许多错误跟踪工具,因此,所有你需要做的是选择正确的。

错误不是唯一需要我们关注的问题,2016年剩下的最大挑战是处理日志文件。每个人都会使用日志文件来搜索和理解应用程序中的错误、崩溃和异常。有些人使用直接方法和筛选纯文本日志文件,而其他人依靠日志管理工具来帮助他们在log-haystack中找到错误。

日志文件在2016年依然是个坑

如果你正在寻找一种新的方式来调试生产错误和异常,那么OverOps(2016年期间进行了修改)可以为你提供了整个调用堆栈的完整源代码和变量状态。导致失败的每个参数和每个变量会被传递到事务或工作流中。

还有很多

我们还不能忽略微服务的趋势。有人会说,这就是另一个令人难以忍受的流行语,而另一些人则高歌吟颂其分解庞然大物或采取逆向方法和注重消极方面的优势。

无论你用什么方法看,这些日子好像每个人都搞微服务。现在你只需要小心在使用微服务时不要在生产中涉及它。

无服务器计算架构在过去几年中也一直受到关注。无服务器计算的概念涉及部署代码,而不是服务器。云提供商不是购买、管理和扩展服务器,而是处理对VM的请求。

所以你仍然需要服务器,但这个新模式承担了这个责任。或者换句话说,在处理到服务器或安装的任何软件上的部署都没有麻烦。基本上,所有你需要的是一个管理的云服务和一台计算机。

以及最后一个,即使人工智能和机器学习已经存在一段时间了,但依然感觉每个人还是在谈论它们。它们不再是科学家和研究人员的秘密,几乎在任何新兴技术中都可以看到实现的影子。

最近这一领域的喧嚣尘上和演变进步使得非研究人员更容易了解相关内容。现在,你完全可以轻松访问相关的算法和工具。你必须知道你在做什么,而且通过机器学习能力来增强应用程序会容易得多。

进军社区

你必须热爱Java社区。因为它们不仅影响了语言的未来版本,而且还通过聚会、文章和一切有关Java的信息丰富了我们所有人。2016年有一些非常令人惊叹的会议,如JavaOne,QCon,并且更多伟大的会谈你现在还可以重新观看。

在软件开发中学习新事物的主要资源之一是观看在线讲座和视频。这是一个伟大的平台,因为里面有Java专家与我们分享他们的经验,而你无需离开舒适的沙发四处奔波。

或者,如果你不喜欢看视频,那么浏览Java decks也可以让你保持更新到当前的新趋势。

同伴支持与我们工作的每个方面都是相关的,而且我们可以从我们周围的人那里学到很多东西。一个关键的特点是多产,因为总有改进的余地。我们所要做的就是准备好接受建议,并倾听任何愿意发言的人。

不要忘记开源

社区的另一个关键因素是支持和促进开源项目。事实上,我们已经正式推出了你一直在等待(也有可能并非如此)的命令行工具——Bullshifier。它用于在大得离谱的代码基础上测试一些监控能力,通过成千上万的调用深度,成千上万的类,并结束了异常的事务。

最后的想法

在2016年我们邂逅了很多主题和流行语。有一些我们已经知晓,有一些崭新的东西则允许我们以完全不同的方式去看Java。现在我们期待着2017年的Java 9,期待2017年Java会有一些更新和更惊人的功能,会谈,项目,甚至一两个新的流行语。

看完本文有收获?请转发分享给更多人


欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。

  • 长按下方的二维码可以快速关注我们

  • 如想加群讨论学习,请点击右下角的“加群学习”菜单入群

Java程序员不容错过的开发趋势相关推荐

  1. java程序员如何进行物联网开发

    树莓派作为它作为全新的物联网开发方式,其的家族越来越强大,从1A到当前的4B系统列为主,另外还有zero系列,计算模块,不久前推出了pi pico开发板,其价格比较低,适合各种人学习从儿童编程到开发者 ...

  2. Java程序员如何转Android开发

    最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区别: ...

  3. 2018年,Java程序员转型大数据开发,是不是一个好选择?

    近日网上有一篇关于Java程序员职场生存现状的文章"2017年 Java 程序员,风光背后的危机",在Java程序员圈子里引起了广泛关注和热议. 2017年,Java 程序员面临更 ...

  4. Java程序员不可错过的12款开发框架

    Java开发应用很广泛,所以程序员求职行业和方向也很多.那么,Java程序员必须要掌握哪些开发框架?下面小编总结了这12款Java程序员必须掌握的开发框架.一起来看看吧! 十二个必须掌握Java开发框 ...

  5. 程序员必玩:盘点程序员不容错过的手机游戏

    点击上面 免费订阅本账号! 本公众号主要推送javaweb开发相关技术,基础知识点,同时会深入剖析复杂的问题,分享一些优秀的框架,大型项目经验,当今最流行的Javaweb技术,热点科技新闻,招聘信息, ...

  6. Scikit-Learn 学得如何?程序员不容错过十大实用功能来袭

    作者 | Rebecca Vickery 译者 | 弯月,责编 | 屠敏 封图 | CSDN 付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) Scikit-learn是使用最广泛的P ...

  7. Java程序员不可错过的11个IDEA插件

     作者:葛俊 www.jianshu.com/p/686ba0ae4ac2 善用Intellij插件可大幅提升我们的效率 以下是我用过不错的Intellij插件 1. .ignore 地址:https ...

  8. Java 程序员必备的辅助开发神器(2022 年版),建议收仓

    持续集成 Git Bash(Git 客户端) :https://git-scm.com Gitea(Git 私服):https://gitea.io Gitee(国内开源 Git 私服):https: ...

  9. Java程序员必备的辅助开发神器(2022年版)

    持续集成 Git Bash(Git客户端) :https://git-scm.com Gitea(Git私服):https://gitea.io Gitee(国内开源Git私服):https://gi ...

  10. Java程序员转Android开发必读经验

    小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区 ...

最新文章

  1. 【青少年编程】【一级】 奔跑的马
  2. linux 设置与网络同步的时间
  3. IDEA Reference - Essentials(基本要义)
  4. cmd系统命令不识别
  5. 丰田pcs可以关闭吗_丰田车必备的配置有哪些是在亚洲龙上体现了?
  6. 大疆手持云台和华为mate20_告别手残,华为Mate30与大疆手持云台拍照真香
  7. 用canvas给自己的博客园加背景(二)
  8. c语言的各种类型的指针,简单总结C语言中各种类型的指针的概念
  9. 编码速度非常慢_有BUG?MySQL中的 utf8 居然并不是真正的UTF-8编码?
  10. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
  11. 卡巴斯基6.0的授权文件
  12. 锐捷Linux认证失败,锐捷上网认证常见问题及解决办法
  13. matlab常见函数表达式,MATLAB常用函数简介
  14. logback 简介
  15. C# 读取写入Json文件
  16. 几分钟搞定,文件名称中文转英文
  17. 读书摘录---《李嘉诚成功语录 》
  18. 字符串搜索算法之Sunday
  19. echarts设置背景图片
  20. android qq群加群代码,逆向分析某QQ恶意自动邀请加群APK

热门文章

  1. 《游戏设计师修炼之道:数据驱动的游戏设计》一3.2 漏洞管理计划和技术开发...
  2. python 传参open
  3. PHP程序员7小时学会Kotlin 第二小时
  4. Shell 工作原理
  5. Android框架之AsyncHttpClient
  6. C#中调用Windows API的要点 .
  7. LA 2218 Triathlon (Geometry, Half Plane Intersection)
  8. [Node] 基础知识
  9. 用C#编程合并多个WORD文档
  10. poj 2356 Find a multiple dfs 爆搜!!!!