如果您打算在2018年编写Java代码,这是您不能错过的趋势

2018年就在这里,再没有比现在更好的时间回顾2017年,看看它是什么以及它将是什么了。

2018年已经来临了,虽然不到一个月,我们已经可以看到有趣的趋势和功能,这些趋势和功能将改变我们编写代码的方式。 这就是为什么现在该回顾一下2017年,看看哪些趋势将继续存在,以及我们应该关注哪些趋势。

穿上您的安全装备,我们将骑行回到2017年。

您需要了解的有关Java 9的所有信息

毫无疑问,2017年是Java 9的发布者,距Java 8的最初发布已经3年了。新版本经历了一些延误 ,这主要归功于旨在使Java模块化的Project Jigsaw。

该项目将JRE分解为可互操作的组件,从而使开发人员可以使用针对项目实际需要的组件定制的按比例缩小的运行时Jar(rt.jar)。 对于Java而言,这是一个重大变化,并且在过去几年中已经讨论了很多。

这个项目引起了极大的轰动,开发人员担心转换到Java 9和Project Jigsaw。 因此,Java Platform Group的首席架构师Mark Reinhold决定结束这种猜测,并且揭露了有关Jigsaw和Java 9的一些误解

但是,Jigsaw并不是Java 9引入的唯一有趣的更新。另一个有趣的元素是新的默认垃圾收集器,即Garbage First Garbage Collector(G1 GC) 。 它是为具有大内存的多处理器计算机设计的,并支持大于4GB的堆。 虽然它是新的默认垃圾收集器,但是您始终可以切换到首选垃圾收集器。

Java 9引入了StackWalker和Stack-Walking API ,这是一个类,它包含遍历堆栈的方法,为我们提供了当前线程的概述。 换句话说,它是我们感兴趣的特定堆栈跟踪的快照。它还引入了JShell ,这是第一个正式的Java REPL(Read-Eval-Print-Loop),它使我们可以运行几行Java进行测试,而不将它们包装在单独的项目或方法中。

新的Java版本还解决了并发性和并行性方面的一些问题,并为Reactive Streams的发布-订阅框架提供了支持,并改进了CompletableFuture API。
当然,我们不能忘记Java 6中的错误已变成Java 9中的功能: sun.misc.Unsafe 。 该库允许进行低级,不安全的操作,例如绕过构造函数中的安全检查。 这只是Java 9必须提供的功能的一小部分,您可以在Java 9细分中看到完整的列表。

在更广泛地了解时间并观察Java 8产生的兴趣时,我们看到了以下趋势:

Java 9很棒,但是看起来Java 8 Lambdas产生了比Project Jigsaw和新版本附带的其他有趣功能更有趣的方式。 另外,由于Oracle决定朝着更快的发布周期迈进 ,因此Java 9不会长期受到关注,因为它在短短几周内就发布了Java 10。

深入了解日志

一个日志就是一个日志就是一个日志。 还是? 在过去的一年中,我们着手研究日志文件,以尝试了解使用日志文件的正确方法。 我们得出了一些关键结论,这些结论可能会动摇您的日志,或者至少使您对使用日志的方式三思而后行。

我们浏览了Github最受欢迎的项目,并对开发人员的日志记录习惯进行了深入研究。 我们的第一个发现是,开发人员更喜欢通过在日志语句中使用参数化日志来保持代码干净。

通过查看日志,我们可以看到最常用的日志单词是“ to” ,并且一些开发人员使用日志通过使用其他单词来表达自己的感受。 除了“ Whoops”,“ Oooo”和笑脸外,一些原木还充斥着一些奇怪的词语 ,诅咒和其他令人惊讶的元素。

我们还研究了如何使用适当的日志记录来解决一些最常见的Hibernate问题 ,并了解了TripAdvisor公司Viator如何停止依赖100GB的日志文件来了解其应用程序中发生了什么。

但是2017年最令人担忧的发现是超过50%的Java日志记录语句写错了 。 意味着,这些语句没有有关应用程序可变状态的信息。 我们还发现,在生产时,将禁用全部日志记录语句的64%。 kes。

CI / CD的上升和短发布周期

公司以比平常更快的速度前进,引入了频繁的发布,对产品的不断更新,并使团队成员保持最新的最新技术。 对速度的需求导致了持续集成和持续交付实践广泛使用

这导致了应用CI / CD工作流程的可用方法和工具的兴起,所有这些方法和工具都提供了多种选项和功能。 我们采用了市场上可用的前7种CI / CD工具,并对每种工具进行了更深入的研究 ,因此您将知道哪种工具最适合您。

但是,决定使用哪种工具或方法都没有关系,您需要记住,当前的CI / CD工作流程具有软件工程中最大的误解之一:部署新代码时,它并不会终止。 CI / CD周期缺少的链接是监视应用程序,而自动化部署则需要更智能的监视。

不能忘记的工具

工具无处不在。 我们将它们用于CI / CD周期,作为我们的监控实践的一部分,或作为跟上我们敏捷工作流程的一种方式。 在过去的一年中,我们介绍了一些有趣的工具,试图了解它们之间的差异以及它们如何帮助我们的不同流程。

第一个也是最广为人知的是Docker,它可能被更好地描述为一个平台,但是我们已经决定检查它必须提供的监视方法。 克里斯·沃德(Chris Ward)研究了监视堆栈的5个组件,并教会了我们如何使日志有用,增强性能监视和错误跟踪以及其他要素。

说到监视应用程序,不幸的是,总是会发生应用程序故障,我们希望尽快知道它们的发生。 但是,我们如何发现重要的和不重要的? 通过使用异常检测工具。 您可能会猜到,市场上有许多工具可用,我们列出了您需要了解的5种顶级工具

已经出现了一段时间的另外两个流行工具是Grafana和Kibana 。 它们都提供数据可视化并且看起来非常相似,但是引人注目的还有更多。 它们之间有一些主要区别,识别它们将帮助您了解哪一个适合您的可视化需求。

但是可视化并不是全部,有时它全都在帮助我们部署应用程序的基本工具中。 Pivotal Cloud Foundry和Kubernetes是2种流行的云部署平台,很难选择合适的平台。 但是,我们真的需要选择和使用其中之一吗? 答案可能会让您感到惊讶

一些技巧和窍门

快乐的开发人员是富有成效的开发人员。 问自己,我们是否幸福听起来比实际更富于哲学性,但这是我们需要回答的重要问题。 在2017年,我们清楚地了解了导致开发人员不满意的十大原因 ,以及它如何影响我们的公司,应用程序和工作流程。

该研究中提到的原因之一是代码质量和编码实践不佳,可以通过同行评审来解决。 就个人而言 ,由于我们在研发团队中引入了对等代码审查(也是由于我们最近的一轮主要融资 ),对于OverOps来说,2017年对我们来说是有意义的一年。

坦白地说,此举是在我们进行了大量研究之后得出的,其中包括与其他公司的对话,阅读案例研究以及考虑各种网站上解释的各种意见和方法。

代码审查对我们来说很重要,这是越来越多的公司将其纳入工作流程的一种方法。 如果您也考虑开始使用代码审查,那么我们已经收集了一些概念和工具来帮助您入门。

着眼于编码实践,在过去一年中不断增加的一种方法是实施例外收件箱零政策 。 我们从与之交谈的工程团队那里听说过这种做法,这似乎是一个很好的做法。

例外收件箱零的目的是拥有一个收件箱,我们可以在其中收集,查看和处理例外,为此,我们将应用收件箱零概念,确认每个例外,加以处理并最终消除它。

过去一年中,我们遵循的另一种做法是将警报变成有意义的警报。 监视应用程序还不够,并且无论如何, 我们都应遵循一些特定的准则和方法以充分利用我们的监视技术。

在过去的一年中,我们遵循了许多良好的做法,这些做法帮助我们提高了工作效率,总体上感到高兴,毫无疑问,在整个2018年将继续遵循这些做法。

自动化所有事情(以及根本原因分析)

在过去的一年中,我们与数百个(甚至数千个)工程团队进行了交谈,以了解常见的应用程序问题存在于何处。 我们能够找出一些相似之处,并将这些新发现的知识带入了写作中。

最重要的是,监视我们的应用程序是一项艰巨的工作,它需要流程和工具才能使我们正确执行。 通过这一认识以及与工程团队的交谈,我们创建了理想的Java生产监视堆栈

至此,我们意识到必须有更好的方法来监视我们的应用程序,并且答案就在根本原因之内。 毫无疑问,我们所有人都希望找到系统中问题,错误或异常的根本原因,但是很难准确地了解我们要查找的内容。

因此,我们决定将根本原因分析转变为自动过程,以显示识别,理解和解决问题所需的完整数据。 OverOps ARC AI (自动根本原因)实时分析应用程序代码,并在任何错误背后提供完整的源代码,变量,DEBUG日志和JVM状态。 检查一下

我们与TripAdvisor,Intuit,Comcast,Zynga等公司进行了交谈,以了解他们如何自动执行错误解决工作流程。 我们了解到,通过自动根本原因分析,他们在Java应用程序中识别和解决生产错误所花费的时间从几天减少到几分钟。

最后的想法

2017年是繁忙的一年,但感觉就像我们每年都在说。 在过去的一年中,我们采用了许多方法,工作流和最佳实践,我们毫不怀疑它们会在2018年继续延续下去。

如果我们不得不猜测,2018年将是AI,自动化以及使工具和实践对我们有用的一年。 今年,我们将能够专注于编写代码,推进应用程序和创建新功能。

翻译自: https://www.javacodegeeks.com/2018/01/youre-planning-write-java-code-2018-trends-cant-afford-miss.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值