SpringOne Platform 2016回顾

我最近结束了在拉斯维加斯参加SpringOne Platform会议的总结。 这是我第一次参加SpringOne。 这是聆听演讲并与软件开发领域的一些顶级专家进行对话的一种体验。

如果您没有参加SpringOne,那么您肯定会想要阅读这篇文章。 我们将介绍这四个主题,以及如何在将来的工作中潜在地应用它们。

  • 反应设计
  • 使用Spring Boot 1.4简化测试
  • 缩短开发反馈循环
  • 为开源社区做贡献

反应设计

Spring Reactive包含到核心Spring框架中是Spring 5发行版路线图 。 结果,SpringOne的许多会议都专门讨论了什么是反应式设计以及如何使用它。

Node.js开发人员应该已经熟悉该模式,这确实是Node.js的存在理由。 响应式设计基于事件驱动的非阻塞I / O原理。 如果这一切听起来令人困惑,那就更好地知道您不是唯一对此概念感到不适的人–我也仍在努力吸收它。

用简单的术语表示什么:以“标准”(命令式)的方式编写程序时,对外部源(无论是数据库还是服务)的调用将使调用线程在继续执行之前等待响应。 响应式设计通过创建一个承诺(即一个事件)并在以后读取返回结果(非阻塞)来改变这种情况。

由于大大减少了执行相同工作量所需的线程数量(每个线程占用内存,数据库和服务只能同时服务于有限数量的连接),因此可以大大减少系统资源的使用。

会谈中经常提到的反应式设计的另一个关键概念是背压 。 背压会在订户和生产者之间产生反转。 生产者通常会规定返回给订阅者的金额,通常是整个结果集的大小,而背压则允许订阅者定义它希望在时间以及何时接收多少(即订阅者只会处理完先前的退货后,向生产者请求更多)。 这有助于防止订户被大型数据集淹没,并通过仅发送订户准备就绪的工作以及随时间分配负载来减少对生产者的需求。

这些背压功能共同帮助创建了更可靠的服务。 我认为,这是整个行业从反应设计中获得真正好处的地方。

为了对反应式编程进行更正式的介绍,Spring的David Syer撰写了一个由三部分组成的出色的系列文章,内容涉及使用Spring React进行编程: 第1 部分 / 第2 部分 / 第3部分

使用Spring Boot 1.4简化测试

Pivotal最近发布了Spring Boot 1.4 ,它具有许多有趣的新功能( 例如,从类路径中的图片自动生成ascii横幅! ),并引入了Spring Core 4.3 ,使开发人员的工作更加轻松。

在添加的所有功能中,我最兴奋的是所有新的测试支持。 对像Spring这样的IoC / DI容器的普遍批评是,由于开发人员必须编写所有上下文设置以测试其代码,这会使代码的测试更加困难(尽管也可以通过更好地缓解这些问题来缓解这些问题)代码设计)。 幸运的是Pivotal和社区已经做出了回应,并添加了一套新功能,以减轻编写单元测试的负担。 有关所有新测试功能的全文,请参见此处

使代码易于测试是缩短反馈循环的最重要的使能功能之一,我将在稍后介绍更多内容。 有关Spring Boot 1.4的完整发行说明,请查看此链接

缩短开发反馈循环

我参加过的以前的会议和演讲通常都集中在新工具,新模式或新技术上。 尽管收益可能显而易见,但将收益引入组织的过程通常很困难。 但是,我很高兴看到Pivotal将两个主题演讲的大部分内容用于我最近阅读的一个领域; 持续交付

连续交付的主要原则是,每次提交都应启动一系列自动化过程(测试,部署),最后将代码交付给至少一个类似于生产的环境(如果不是生产本身)。

为了实现这一目标,连续交付在很大程度上取决于自动化。 单元测试,以验证代码是否满足质量阈值;集成测试,以确保应用程序在环境中能够正常运行;部署脚本,以防止在部署至环境时出现配置问题。

在这些过程中,具有增强开发周期的功能,例如允许开发人员更快地验证更改的单元测试,完全审核更改/部署的能力以及使回滚部署的过程变得非常容易的功能。 所有这些过程从本质上帮助降低了风险,但是与生产的频繁部署一起通过缩小部署之间的增量来降低风险。

尽管开发环境中没有灵丹妙药,但连续交付,快速而自信地部署到生产环境(有时一天数百次)的能力可能是将优秀软件公司与劣质软件公司区分开的标志性特征。 而且,任何编写一行代码的组织都是一家软件公司。

为开源社区做贡献

紧接着以缩短反馈循环为主题,这是开源项目从我们的操作系统(Linux),框架(Spring)和平台(Cloud Foundry)等众多领域接管软件世界的一个核心原因,这是因为开源提供了封闭项目无法提供的反馈循环:工具的用户可以为此做出贡献!

这就是使Spring从成为IoC / DI容器发展到几乎包罗万象的生态系统( https://spring.io/projects )的原因。 参与开源项目是建立知识库,学习新思想以及在组织或直接地理区域之外建立联系的绝佳方法。 对开源项目的贡献范围从修复问题添加新功能

所以,如果你有兴趣的贡献, 很多更多 机会 ,以 如此。

最后的想法

参加SpringOne平台是一次很棒的经历。 看到Spring社区在过去几年中在将新项目添加到平台并扩展他们已经拥有的项目的功能方面所取得的进步,真是令人惊讶。

有关Spring的继续更新,请访问以下博客: https : //spring.io/blog 。 另外,请通过订阅右侧边栏中的内容确保在Keyhole上关注我们的博客!

Spring 5的新功能以及与Pivotal员工的对话使我对Spring和Java的未来感到非常兴奋!

翻译自: https://www.javacodegeeks.com/2016/08/springone-platform-2016-retrospective.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值