What I Learned
-
Ripgrep项目Walk部分学习
-
参数解析分层
-
复杂问题分离-组合处理,多用组合
- 文件内容遍历搜索:分解为文件发现和单个文件内容搜索
-
面向
trait
编程 -
任务窃取初步初见
-
并发编程经典模型
- Worker —- Work —— Visitor 经典抽象
- 生产者-消费者模型
-
-
rust标准库学习
-
Iterator
acc
是accumulator
的缩写,标识累积计算过程中的中间结果fold
函数,用于将集合中的所有元素通过操作"折叠"成单个值- 消费self构建新的迭代器,Map之于map等
-
Result、Option
- ref与&的区别
-
-
tokio项目学习
- Pin和Upin的理解,为什么需要Pin
- Waker和Context的机制
- CPU的执行速度与I/O的速度差异,需要异步任务让出线程,而非为了让出而让出
- future的简单实现
-
Tcp 和 Udp网络编程
- tcp和udp的区别
- 对有连接的理解:tcp双方对共同状态信息的维护,udp发送的都是独立的数据包,故无连接
- trait对象和普通对象的内存结构
Challenges & Solutions
This Week’s Win
- 架构设计理解加深,对组合和面向trait编程有了进一步理解
- 真正理解了Tcp的有连接
- Iterator中map等方法通过构建中间结构体(如Map)来实现
- FnOnce、FnMut、Fn的深入学习
- 并行编程的模型
Next Week Focus
- 继续学习tokio
- 学习andriod语音项目
学习时长: 完成任务: