一些工作上的思考
今天写交接文档 发现可写的内容并不多 确实 最大的收获是什么呢?
- 刷了150道leetcode(用时半年 忘的差不多了)
- 开源了一个基于协程的UDP可靠传输库(用时半年 虽然星还没过百)
- 开源了两个网络库(一个c的 c++的写的并不好)
- 又看/调了不少服务器库 大部分是协程的(helio brpc workflow)
继trafficserver后我终于看到了"理想中"的服务器设计模型—brpc 当看到不是裸着的epoll_wait后确实很兴奋 但看了部分实现(随机调度)后 突然又很难受 一个是因为多线程条件竞争读起来非常之痛苦 再一个是"自由"的代价太大 "理想中"的服务器模型根本不存在 多少有点儿信仰崩塌
业务上的收获
- 过了几遍nginx源码 从业务处理到nginx框架设计再到内核协议栈处理以及hack 以及netfilter插件 期间也用bpftrace脚本debug了协议栈(很新奇 但现在忘的差不多了) 总体收获就是对协议栈代码(2.3.22)更熟 以及对nginx代码的吐槽
- 不喜欢业务 我觉得在dpdk限定死的回调里做业务过于"死板" 不确定的东西太多 还有一条是因为"公司结构" 想要深入学习"阻力"很大 很难看到"开源"之精神
- 我始终认为dpdk不"优雅" 近期我觉得上层协议栈才是最优解
总结
三年工作总感觉自己收获的东西太少 一个是在dpdk方向上没有做到的融汇贯通 再一个就是很难静下心去学新东西了