4006-998-758
3000+课程任你选择
响应式编程培训
研发学院 响应式编程培训
张逸

高质量编码实践者,领域驱动设计布道师,微服务系统架构师,大数据平台架构师,敏捷转型咨询师。热衷于编程语言学习与技艺提升,致力于将企业架构、精益需求管理、领域驱动设计与微服务架构完美结合,打造面向企业的业务中台;致力于将数据仓库、实时流处理、机器学习与高性能存储完美结合,打造面向行业的智能数据中台。

拥有近20年的软件开发与架构设计经验,曾先后就职于中兴通讯、惠普 GDCC、中软国际、ThoughtWorks 等大型中外企业,任职角色为高级软件工程师、架构师、技术总监、首席咨询师。精通包括 Java、Scala、Python、C#、JavaScript、Ruby 等多种语言,熟练掌握面向对象思想、测试驱动开发与重构、领域驱动设计、函数式编程、架构、大数据分析、敏捷与过程改进,并致力于大型软件企业的面向服务系统架构设计、大数据平台架构设计以及互联网 Web 系统架构设计,曾经连续四届荣获微软最有价值专家,具有丰富的企业软件系统和分布式开发经验。


查看老师详情
课程内容

课程目标

开发人员已经习惯于传统编程范式的思维习惯,无论是面向过程设计还是面向对象设计,其本质仍然是顺序式编程,指令会按照编写代码的顺序依次执行。若非特别情况,这种按顺序执行的方式一定是阻塞式的,前一条指令没有执行完毕,则后续指令会等待。这与我们的思维模式是相对应的。

然而,随着大规模软件系统的质量属性要求以及CPU的多核化,并行(或并发)开发与异步编程模型成为了开发人员必不可少需要掌握的编程技能,而函数式编程思想也重新焕发了活力,由于纯函数的无副作用以及对不变性的限制,使得函数式编程可以更好地与并发编程结合起来。

为了满足程序响应性、容错性等质量属性要求,响应式编程应运而生,它的特点包括:

  •  消息驱动

  •  异步处理

  • 非阻塞编程

学习和了解响应式编程,其目的不仅仅是要学会使用响应式编程框架进行项目开发,更重要的是打破传统编程固有思维,开拓新的编程与设计视角,从设计本质的角度去理解响应式编程,只有如此,才能在正确的场景选择合适的响应式框架,以实际满足项目需求为目的进行响应式编程。这正是本次培训的目的。


课程大纲

响应式编程的本质思想

一言以蔽之,响应式编程就是异步数据流编程,此时,需要改变思维惯式,将程序传递的内容视为“流(stream)”,然后通过消息驱动进行非阻塞的异步处理。如果结合函数式编程思想,即所谓的“函数式响应式编程(FRP)”,则可以更好地结合函数的转换特性,以不变方式轻松地实现对流的各种转换与操作。

本部分内容包括:

  • 响应式编程范式详解

  • 理解响应式宣言

  •  案例剖析:

  •  以响应式编程思想实现:Word Counter

 

响应式编程后端框架

RxJava

ReactiveX是最早的响应式编程框架,它参考了设计模式中的迭代器模式与观察者模式,并结合了函数式编程思想,以事件处理的形式实现了响应式编程的异步非阻塞处理。ReactiveX框架提供了多种语言的支持,包括Java、JS、Scala、Python以及Swift与Kotlin等语言,支持响应式编程的后端与前端开发。

本部分内容主要介绍RxJava的后端开发(实际上,RxJava也被大量应用于Android开发),内容包括:

RxJava设计原理

Observable对象

RxJava的常用操作符

 RxJava 2.0的Reactive Streams

 

AKKA Stream

AKKA是基于Actor模型的并发与分布式编程框架,而AKKA Stream则是针对AKKA框架提供的响应式框架,具有异步、非阻塞的流处理功能。AKKA Stream适用于从一个活动数据流提取或聚合我们想要的数据。由于数据的获取是以流的形式进行,就避免了对整个数据的获取而造成的阻塞,使得整个过程响应快速。而AKKA Stream底层基于AKKA分布式编程框架,使得我们可以非常方便地进行分布式编程,支持每个流处理的Actor水平扩展。

本部分内容包括:

  • AKKA框架基础

  • Actor编程模型

  •  AKKA编程

  •  AKKA Stream编程

 

案例:分布式数据采集

通过移动、联通、电信三大运营商提供的物联网接口(演练时以模拟接口进行)对用户的SIM卡指标数据进行采集。采集的SIM卡数量最多可能达到10W。

 

Spring Web Reactive

Spring Framework 5提供了Web的响应式编程框架,包括Spring WebFlux、WebClient、WebSockets以及测试框架与Spring Reactor。在前端框架的响应式编程中,Spring Web Reactive还属于新兴框架,在生产项目中较少使用。但考虑到在Java生态圈中Spring的重要地位,有必要将该框架列入重要的技术选型名单中。

内容包括:

  •  Spring WebFlux

  •  WebClient

  •  WebSockets

  •  Web框架的测试

 

响应式编程前端框架

RxJS

与RxJava相似,但RxJS主要针对前端的响应式编程,通过该框架可以非常方便地创建流,并对流对象进行合并、过滤、转换等操作,并通过该框架侦听事件以及处理事件,实现前端界面的快速响应与非阻塞请求。本部分内容包括:

  •   RxJS的安装

  •  RxJS的开发(内容与RxJava相似)

案例:基于RxJS开发Follower关注

类似对微博或Twitter人员的关注,实现功能包括:

  •   显示Follower名单

  •   清除Follower列表中的列表项

  •   刷新Follower列表



返回上一级