Advanced Python系列之Coroutines架构内幕与源码实战

Advanced Python系列之Coroutines架构与源码实战_Rasa培训

课程名称:Advanced Python系列之协程Coroutines架构内核与源码实战

课程关键词:Coroutines, AsyncIO, Event Loop, IO-Bound, CPU-Bound, Event, Task, Task Queue, Async, Await, Epoll, Future, Callback, Decorator, Context, contextvars, Custom Event Loop, Selector, Server

课程介绍:

具备手动实现Concurrency异步编程框架不仅是学习一门编程语言的高阶能力的标志,更因为其背后解耦合思维及应对大规模服务的能力而成为是编程高手的基本硬核实力的皇冠上的明珠。

本课程聚焦于Python实战中最重要的Coroutines协程编程为核心,不仅抽丝剥茧的解密围绕Awaitable、Coroutines、Future、Task等构架起来的整个Python异步编程架构和每一个技术实现细节,更重要的是带领学员手动构建起来自己的Python异步编程框架。

整个课程共24讲,由浅入深的对基于Coroutines的Python异步编程核心功能进行各个击破,从工业级框架Rasa对Coroutines源码使用出发,循序渐进的剖析Event Loop、Aysnc、Await、Task、Future、Concurrency、Coroutines和Decorator的整合、使用Coroutines常见的误区、Task本地的Context Variables、对Coroutines的底层API的使用、Coroutines调试、统一的消息系统API开发、自定义Awaitables对象、结合Socket实现异步Callback、第三方Event Loop的使用、手动实现异步Event Loop等。从环环相扣的知识体系的推进中带来持续丝滑的学习体验。

尤其是手动实现自己的异步消息框架系统的源码部分,不仅带领学员重构当今工业级Python代码的内核实现,同时会通过自己动手实现的方式贯通本课程的核心内容,帮助学员通过构建硬实力在Advanced Python领域感受到会当凌绝顶一览众山小的美妙滋味。

课程收获:

1,通透的理解Python协程编程中一切架构密码和实现内幕

2,参照Python官方AcyncIO框架实现自己的Python异步框架系统

3,理解和驾驭任何Python异步编程框架的能力

课程内容:

第1讲: 通过72行工业级代码鉴赏Python消息驱动框架的核心组件Coroutines、Tasks、Events及其最佳实践(21 mins)

1,工业级代码对Python消息框架的使用代码示例

2,Python消息驱动框架核心组Coroutines、Tasks、Events等解析

3,Python消息驱动框架核心流程源码剖析

第2讲:Python消息驱动架构、并发请求状态管理、及为何Python能够支持任何级别的高并发请求内幕解密 (22 mins)

1,单线程、非阻塞式Event Loop架构详解

2,操作系统对消息循环系统的内核级支持解密

3,基于Task Queue的任务状态关系剖析

第3讲:Python AsyncIO异步编程框架(单线程、多线程、多进程)及其内核Coroutines解析 (224mins)

1,以Coroutines为基石统一了Python异步编程系统的AsyncIO解析

2,使用Task封装一切

3,AsyncIO工作机制解析

第4讲:Coroutines状态转化详解及使用Async定义和使用Event Loop运行Coroutines解密

1,Coroutines状态转换剖析

2,Async定义Coroutines对象及使用解析

3,使用Event Loop执行Coroutines详解

第5讲:为何使用Await直接作用Coroutine无法实现代码的concurrency?

1,Await运行机制解析

2,使用Await代码试验之一及其背后问题分析

3,使用Await代码试验之二及其背后问题分析

第6讲:使用Task封装Coroutines内幕工作机制解析及代码实战

1,Task对Coroutines封装原理剖析

2,联合使用Coroutines、Task和Await代码示例

3,使用Task完成程序的并发执行

第7讲:实际生产环境中如何充分使用Task封装Coroutines后代码的并发潜力?

1,使用AsyncIO的Task进行并发编程最佳实践模型

2,并发编程代码实现

3,代码解析

第8讲:对AcyncIO Task Cancellation三层境界内幕解析及代码实战

1,手动实现Task Cancellation代码及其解析

2,使用wait_for及TimeoutError来实现超时异常及处理

3,使用shield方法来完成对Task的保护及对TimeoutError的处理

第9讲:基于Awaitable的Python异步编程Future解析及其在企业级开发中的最佳实践

1,基于Awaitable继承结构解析:Coroutines、Future、Task

2,Future的状态设置和操作

3,联合使用Future和Await来实现Callback机制解析

第10讲:联合使用Coroutines和Decorators代码实战

1,Decorator内部工作机制解析

2,Decorator封装Coroutines代码实现

3,Decorator操作Coroutines代码测试及分析

第11讲:使用Coroutines在处理CPU及IO耗时操作时候常见的误区剖析

1,使用Coroutines操作耗时操作容易导致误区的本质剖析

2,使用Coroutines操作CPU耗时工作代码示例及问题分析

3,使用Coroutines操作IO耗时工作代码示例及问题分析

第12讲:AsyncIO中三大底层 lower-level方法解析及代码实战

1,asyncio.new_event_loop方法解析及代码实战

2,asyncio.run_until_complete方法解析及代码实战

3,asyncio. call_soon方法解析及代码实战

第13讲:AsyncIO对Coroutines的Debug机制及代码解析

1,关于AsyncIO的Debug模式解析

2,通过Debug模式获得消息队列中耗时任务的运行时间

3,自定义Debug的设置

第14讲:设计统一的API接口处理Coroutines及普通函数解析与实战

1,Event Loop和Tasks队列实例化

2,Coroutines function及Coroutines instance处理

3,对于Plain function融入消息系统的处理

第15讲:Python Coroutines Task本地私有的 Context Variables解密与代码实战

1,属于Task私有的Context Variables解析

2,Context Variables代码实战

3,Context Variables最佳实践分析

第16讲:如何使得一个Coroutines任务在消息队列中立即运行?

1,如何实现 “Forcing an Event Loop Iteration” ?

2,代码实现

3,运行结果分析

第17讲:第三方Event Loop框架使用解析及代码实战

1,使用第三方Event Loop之Uvloop剖析

2,uvloop实现代码实现

3,第三方框架使用分析

第18讲:从代码实战的角度证明Coroutines Async只是Generator的Syntactic Sugar

1,使用@asyncio.coroutine来封装Yield而实现Coroutines

2,不同的Generator交互执行代码实现与执行分析

3,从代码的角度验证Coroutines的Generator本质

第19讲:自定义实现awaitables接口关键功能解析及代码实战

1,awaitable接口解析及其实现关键功能解析

2,自定义awaitable代码实现

3,代码运行分析

第20讲:Selector Socket及Waitables的Callback的联合使用

1,为何selector和waitable是完美的配合?

2,代码实现

3,代码解析

第21讲:使用Task实现对Coroutines和Future的封装代码实战及运行机制解析

1,Task初始化方法

2,step方法具体实现及运行分析

3,future对结果的获取代码分析

第22讲:设计自己的Python异步事件编程系统的架构内幕及关键点分析

1,构建自定义消息系统的核心组件解析

2,自定义异步框架的关键架构

3,具体组件间的相互作用和运行机制剖析

第23讲:实现Python自定义的Asynchronous异步编程消息循环系统代码实现

1,完整的自定义Event Loop代码实现

2,Event Loop代码剖析

3,事件循环系统的while循环机制思考

第24讲:在Server中使用手动实现的Event Loop框架代码实战及运行解析

1,在Server使用自定义Event Loop完整源码实现

2,代码详解

3,运行机制总结

Advanced Python系列之Coroutines架构与源码实战_Rasa面试_02


Advanced Python系列之Coroutines架构与源码实战_Rasa课程_03