Java月报:2019年2月

2019 年 2 月 16 日 ImportNew

(给ImportNew加星标,提高Java技能)


来自:唐尤华

https://dzone.com/articles/java-annotated-monthly-february-2019


Java Annotated Monthly 由 JetBrains 发布,相关资源与文章请点击英文原文链接


一月份有许多文章回顾了2018年 Java 技术,并对2019年进行了展望。这篇月报对去年进行了总结,并对新的一年充满期待。出于某种原因,月报中还包含了许多 Java 教程,也许每个人都决心从写博客开始新的一年吧!


1. 总结2018,展望2019


  • 2019年,安全加入了 DevOps 大家庭:我原本以为 DevSecOps 已经成熟了?

  • 2018年,DevOps 教给了我们什么:它非常有用,我们应该做得更多!

  • 关于容器(Container)去年我们了解到的内容:这里列出了2018年热门文章列表

  • 2018年 GraalVM 进展:快马加鞭追上 GraalVM,它一定能出现在2019年的名单中!

  • InfoQ 2018回顾以及对2019年的期望

  • 2018 InfoQ 编辑推荐阅读书目:第一部分

  • 2018 InfoQ 编辑推荐阅读书目:第二部分

  • 关于2019年 Java 的一些预测:同样来自 InfoQ

  • 2019凝视我的 Java 水晶球:来自 Azul Systems


2. Java 新闻


下面是一些与 Java 相关的新闻,主要的包括 Raw String Literals 不会出现 Java12 预览版本中,但好消息是 Java 12 功能已开发完成并准备在三月份发布。


  • 书评:优化 Java:无论你是否必须在日常工作中优化,它都是面试时需要知道的知识(以防新年中你决心找一份新工作)

  • 显式命名自动 Java 模块:或者说,开发库实际上不应该依赖自动生成的模块名称

  • IBM 与 Java:展望未来

  • Java 语言架构师 Brian Goetz 谈 Java 与 JDK(语音播客带文字总结)

  • Jep 建议从 JDK12 预览版中删除 326 Raw String Literals:虽然这是个不幸的消息,但还是希望以后能正常发布

  • Raw String Literals 从 Java12中删除,被加入冻结功能列表

  • Netflix OSS 与 Spring Boot:全面回归

  • 船长,我们需要更多的关键字!再一次地,Java 语言开发人员面临了这个问题。如何更新 Java 语言,既要保持向后兼容又不会破坏已有的工作

  • JDK 12 String::transform 方法既简短又复杂的历史

  • 亚马逊 Corretto8 已基本可用

  • 对我们的 Tagir Valeev 来说,好消息是:



我得到了最棒的礼物!感谢 @stuartmarks 和所有为我投票的人! #OpenJDKpic.twitter.com/TOhB2Bk30f

  • Tagir Valeev(@tagir_valeev) 2018.12.22


3. Java 教程与技巧


下面是一大波 Java 教程:包括标准 Java (从 Java8 到 Java11,甚至包括了一些未来发布的特性)、 Spring 和 Spring Boot、 MicroProfile、 Micronaut 以及微服务、经典的设计模式等等。


  • 剖析 Java 本地变量类型推断(Var Type):var 只有三个字母,但是理解如何使用以及在哪里使用 var 远比你想象的要复杂得多

  • Eclipse Collections 的19个练习

  • 你应当知道的编写更好 Java 代码的7个技巧:你已经知道了这些技巧,这里只是再次让自己回顾一遍。 也许可以把它们打印出来随时翻看

  • 迁移到 Java11 你需要知道的这些:这篇文章可以追溯到2018年,但它又出现在我的 Twitter feed 中,值得再次阅读

  • 使用 JAX-RS 和 MicroProfile 实现异步 REST:这是一篇对异步 REST 很好的介绍,文中还介绍了一些 MicroProfile 开发技巧

  • 如何用 MicroProfile 编写响应式应用程序

  • 使用 JUnit 建立测试阶段:可以在持续交付流程中设立阶段

  • Java 中的设计模式: 单例模式:你可能永远不应该使用单例模式,但是你需要知道这些东西,因为它是一个极受欢迎的求职面试问题

  • 使用行为驱动开发和面向接口的设计:设计微服务时 BDD 是一种很好的方式

  • Java 行为驱动开发指南:似乎非常有用,理由参见上面的文章

  • Java Steam 中的异常处理:因为 lambda 的受检异常非常糟糕

  • 门面(Facade)模式:门面模式一种很好的方法,有助于迁移遗留代码、隐藏接口后面混乱的实现并逐步重构

  • 五个黄金重音符:这是一篇原始字符串文字的指南,不过它们是 Java12 中提取的功能。 所以,请看看这个博客

  • 六角形 Java 架构:这是我喜欢的架构模式,文章给出了一个非常简单的例子

  • 重新评估分层架构:3层架构或许过时了,可以有其他选择(比如六角形架构)

  • 如何使用 Java 的函数式 Consumer 接口实例:由于采用了 lambdas 实现(通过函数式接口),有时候可能比你想象的要复杂

  • Java 解剖公园#21:未提交的堆栈:深入 JVM 内部机制

  • Micronaut for Spring 允许 Spring Boot 应用作为 Micronaut 应用方式运行:还包括 Graal,感觉只是为了加入更多时髦的技术词汇

  • 基于现代 Java 技术栈的微服务架构:JDK 11、Kotlin、Spring5 与 Spring Boot 2、Gradle 5(支持 Kotlin DSL)、JUnit5 以及 Spring Cloud

  • 排名前5的 Java 多线程和并发课程:大多数是付费课程。理解并发机制有助于了解程序背后发生了什么,但以我的经验,这些知识对回答面试问题最有用

  • 用 Java 方法修饰符可以避免 public 方法的反模式:虽然很好理解,但让我很吃惊的是文章竟然没有提到 Java9 引入模块以后 “public” 的定义发生了怎样的变化

  • Java 中的小对象有什么问题?:额,没有影响?开发人员当然应该意识到 Object 和原始类型之间的区别,但是大多数应用程序中,我们不需要为内存使用过度焦虑

  • 在 JDK 11 中使用 Java Packager:这是一篇关于即将发布的打包工具教程(可能加入 Java13?)

  • 一头扎进 Java 学习:每周六更新一篇 Java 测验


4. Java 语言、框架、开发库和技术


本月另一个重点是测试(在新年里决心编写更好的自动化测试)。关于 Docker/Kubernetes,这两项技术似乎已经跨过了“很酷和即将来临”阶段,成为了我们现在使用的技术。


  • Headless Selenium 浏览器:支持多种参数用 Selenium 进行自动化 UI 测试

  • 用 Selenium WebDriver 跨浏览器测试教程:与 Selenium WebDriver 亲密接触

  • 如何实现微服务通信:对常用方法进行了概述

  • Kubernetes vs Docker: 最具影响力的开源项目:这些技术正变得越来越常见,这篇文章是一份入门指南,供那些正在迎头赶上的人参考

  • 利用 Google 云平台为 Docker Kubernetes 项目建立持续集成(CI)与持续交付(CD)流程

  • 使用微服务与 Kubernetes

  • Kubernetes 未来的方向是虚拟器:好吧,让我们忘掉 Docker 吧

  • 混沌工程是什么要走向何方(视频):译注,混沌工程(Chaos Engineering)是基于软件的服务被实现为具备复杂行为和故障模式的分布式系统

  • 理解区块链基础及使用案例:如果区块链出现在你的新年任务列表中,值得一看

  • M220j:为 Java 开发者准备的 MongoDB 教程:M220j 是一个针对 Java 开发者的新课程。在课程的介绍视频里,你甚至可以看到熟悉的 JetBrains 界面。课程中使用 IntelliJ IDEA 讲解

  • 令人抓狂的连接池:换句话说,默认的连接池配置通常性能很糟,应该针对你的具体应用场景进行配置

  • 减少加法操作:更近距离地观察编译器是如何工作的


5. 文化与社区


这个月有一个关于职业倦怠的主题,每当一年结束和下一年开始的时候都会产生倦怠感。 退一步思考下列问题是正常的:我们究竟做了多少工作,工作的效率如何,对工作的感觉如何,以及我们希望做些什么。


  • 克服软件截止日期压力的3个优先级技巧

  • 如何创造更多的时间:战胜待办事项清单的终极策略:这篇文章帮助我们理解为什么总是感觉自己没有效率以及应对方法

  • 如何激发你的创造力——爱因斯坦的方法:请记住,软件开发是一种创造性过程。译注:这篇文章介绍了“组合游戏(Combinatory Play)”的概念、方法及应用

  • 如何恰当地在软件开发中减速,达成“慢就是快”

  • 即插、即用、重复:提升专注高效的最佳策略

  • 远程工作者战胜“隐士”习惯的7种奇怪方法:好消息是,如果你家里有正在上学的孩子,并且由你负责孩子学校教育的话,你已经在做这些事情了

  • 保持在线:如何在分布式团队中工作

  • Alexandria Ocasio-Cortez 关于种族主义算法的说法是绝对正确的:或者说,电脑程序毕竟是由人编写的

  • 利用人工智能促进工作场所的团队包容性:包容性有助于是改善和弥补多样性的不足之处

  • 着手重新构建一个系统是成功的标志:或者说,如果应用程序虽然功能没问题,但并没有按照你的方式构建,不要自责

  • 雇佣并留住开发人员——创造伟大的团队:换句话说,雇佣开发人员是很难的

  • 维护开发者关系的专业建议:内容包含一些来自 Trisha Gee 的技巧


6. 最后


这是一个了解 IntelliJ IDEA 和其他 JetBrains 产品新闻的机会,你可能已经错过:


  • Intellij IDEA 2019.1 EAP 已经启动。


我们将在 Twitter 上再一次分享 IntelliJ IDEA 使用技巧,请关注我们!


如果你有任何有趣或有用的 Java/JVM 新闻可以通过 Java Annotated Monthly 分享,请留言或通过 Twitter 给我留言。


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

关注「ImportNew」,提升Java技能

喜欢就点「好看」呗~


登录查看更多
0

相关内容

Java 是一门编程语言,拥有跨平台、面向对象、泛型编程等特性。
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
202+阅读 · 2020年2月24日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
领域知识图谱构建,115页2019著作带你学习KGC(附下载)
专知会员服务
82+阅读 · 2020年1月9日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
2019年10月编程语言排行榜:前8名15年如一日
大数据技术
7+阅读 · 2019年10月13日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
2019年深度学习的十大预测
人工智能学家
6+阅读 · 2019年1月31日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
2018年推荐系统入门指南
论智
15+阅读 · 2018年7月14日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
1月书讯:从这10本好书开读
图灵教育
5+阅读 · 2018年1月23日
Semantics of Data Mining Services in Cloud Computing
Arxiv
4+阅读 · 2018年10月5日
Arxiv
3+阅读 · 2018年4月5日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关资讯
2019年10月编程语言排行榜:前8名15年如一日
大数据技术
7+阅读 · 2019年10月13日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
2019年深度学习的十大预测
人工智能学家
6+阅读 · 2019年1月31日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
2018年推荐系统入门指南
论智
15+阅读 · 2018年7月14日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
1月书讯:从这10本好书开读
图灵教育
5+阅读 · 2018年1月23日
Top
微信扫码咨询专知VIP会员