Rust高级开发培训 Certificate for Zhu Bing
Add to LinkedIn
Certificate ID:
738935
Authentication Code:
b1b72
Certified Person Name:
Zhu Bing
Trainer Name:
Gris Ge
Duration Days:
3
Duration Hours:
21
Course Name:
Rust高级开发培训
Course Date:
11 October 2023 09:30 to 13 October 2023 16:30
Course Outline:
课程介绍:
Rust是一种现代系统级编程语言,以其内存安全性、并发性和性能而闻名。本课程将向学员系统讲解Rust的核心语法及重点概念,通过“理论 + 实战”的方式帮助学员对Rust有深入的理解,最终能熟练使用这门语言开发各种复杂项目。。
学时:
3天,共计21小时(每日含1小时休息)
课程安排:
第一天:
Rust语言基础
- Rust语言概述
- 词法结构
- 面向表达式
- 数据类型
- 函数与闭包
- 模式匹配
- 智能指针
- 字符与字符串
- 集合容器
- 迭代器
- Rust模块
- Cargo包管理器
- 实际项目的组织结构
- 定义自己的Crate
Cargo及crates.io
- 使用发布配置来定制构建
- 将包发布到crates.io上
- 编写有用的文档注释
- 使用pub use来导出合适的公共API
- 创建crates.io账户
- 为包添加元数据
- 发布到crates.io
- 发布已有包的新版本
- 使用cargo yank命令从cargo.io上移除版本
- Cargo工作空间
- 创建工作空间
- 使用cargo install从crates.io上安装可执行程序
Rust语言核心概念
- Rust语言架构
- 所有权:内存管理基础知识
- 所有权:安全管理之内存安全
- 所有权:Copy语义和Copy trait
- 所有权:深入理解Move语义
- 所有权:Move与析构
深入理解生命周期
- 完全理解Scope和NLL
- 深入理解生命周期和生命周期参数
- 深入理解生命周期参数Early bound
- 借用检查:深入理解生命周期参数Tvs&T
- 深入理解生命周期参数: trait对象的生命周期参数
- 深入理解生命周期参数:高阶生命周期
线程与并发
- 理解线程与并发
- 线程间安全共享数据
- 构建并发系统
- 无锁并发
第二天
trait与泛型
- trait静态分发
- 认识trait对象
- 泛型和trait实现模板方法
- trait对象本质
- 对象安全本质
- 利用Enum代替trait对象
- trait覆盖实现的一个解决方案
- trait对象与Sized
- trait对象与Box Self
- 编程范式:Rust语言编程范式
Rust的面向对象编程特性
- 面向对象语言的特性
- 对象包含数据和行为
- 封装实现细节
- 作为类型系统和代码共享机制的继承
- 使用trait对象来存储不同类型的值
- 为共有行为定义一个trait
- 实现trait
- trait对象会执行动态派发
- trait对象必须保证对象安全
- 案例:实现面向对象的设计模式
Rust错误处理概要
- Rust错误处理:Option
- Rust错误处理:Result
- Rust错误处理:try
- Rust错误处理:Panic
Rust元编程之反射
- Rust元编程之反射的两种应用思路
- Rust元编程之编译过程与宏展开概述
Rust元编程之声明宏
- 三件套介绍
- Bang宏实现原理
- 使用配置文件动态生成代码
- Derive宏案例
- 属性宏
深入理解Unsafe Rust
- Unsafe Rust安全抽象概述
- Unsafe Rust安全抽象:Drop检查
- Unsafe Rust安全抽象:型变
- UnsafeRust的其他知识点
第三天
Rust异步编程基础
- Rust异步编程之IO模型
- epoll和io_uring
- 事件驱动编程模型
- epoll代码实践
- Reactor代码实践
- MiniMio代码实践
- Mio代码实践
- 异步编程模型概要
- Future和Futures-rs介绍
- 编写异步echo服务
- 深入理解异步Task模型
- Waker实现
- Futures库源码分析
- async-await语法
- 生成器
- Pin与Unpin
- no-std异步生态介绍
- 实现异步缓存
- 异步运行时生态介绍
- smol运行时
- async-std运行时
- tokio运行时
构建异步Web框架
- Rust异步Web框架概述
- Rust异步Web框架--Rocket
- Rust异步Web框架--tide
- Rust异步Web框架--actix-web
- Rust异步Web框架--gotham-and-thruster
- Rust异步Web框架--tower
- Rust异步Web框架--hyper
- Rust异步Web框架--warp
Web框架实战之HTTP库实战
- Web框架实战之了解hyper-tower_http-http-body之间的层次关系
- Web框架实战之创建初始项目
- Web框架实战之设计框架接口
- Web框架实战之实现路由结构
- Web 框架实战之实现 Handler
- Web 框架实战之添加 tracing 打印
- Web 框架实战之实现提取器
- Web 框架实战之实现提取器和中间件
- Web 框架实战之错误处理支持
编写自动化测试
- 如何编写测试
- 测试函数的构成
- 使用assert!宏检查结果
- 使用assert_eq!宏和assert_ne!宏判断相等性
- 添加自定义的错误提示信息
- 使用should_panic检查panic
- 使用Result<T, E>编写测试
- 控制测试的运行方式
- 并行或串行地进行测试
- 显示函数输出
- 只运行部分特定名称的测试
- 通过显式指定来忽略某些测试
- 测试的组织结构
- 单元测试
- 集成测试