Java程序猿有哪些不容错过的开发趋势?

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

在接下来的内容中,我们将查看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,它还有很多趋势是你必须保持在潮流之上的。一个好的开始浏览过去一年的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允许我们在应用程序对我们和我们的用户发疯前获得洞察。

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

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

日志文件依然是个坑

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

还有很多

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

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

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

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

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

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

进军社区

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

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

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

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

不要忘记开源

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

最后的想法

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

2017年你最喜欢的Java功能、会谈或话题是什么?我们很乐意在下面的评论聆听各位的声音

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容

  • 当涉及到代码时,有很多热门话题,并且与时俱进总是潮流所向。如果你想知道如何分离糟粕和精华,那么我们已经准备就绪,只...
    尧淳阅读 353评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效...
    OneAPM_Official阅读 1,676评论 1 49
  • 嘉宾,JJ林俊杰,陆贞传贞中可爰吃货鬼鬼。 精彩任务:出场各有精彩,完成拍照任务笑料百出,800米跑步合力完成,撕...
    娟娟小妞儿阅读 844评论 0 0
  • 2013.3.12 持续阴郁了好几天的南方小城,终于按捺不住眼泪,下起绵绵的雨。 来到这个城市这么久,却一直都不喜...
    Closears阅读 336评论 0 1