乐趣区

关于c++:腾讯T9级别技术专家是怎么炼成的

明天给大家分享一下腾讯 T9 级别的技术顾问的学习路线,心愿对在自学晋升的敌人有一些帮忙,学习路径总结在上面这张思维导图外面了,感觉还不错的请点赞珍藏反对一下、尺寸所限略显含糊,有须要的敌人能够进群获取。

思维导图☟


一、精进基石

1、数据算法与构造

**1.1 排序(11 种)与 KMP
1.2 红黑树证实
1.3 B 树与 B + 树
1.4 Hash 与布隆过滤器 **

2、设计模式(23 种)

**2.1 责任链模式
2.2 过滤器墨海
2.3 公布订阅模式
2.4 工厂模式 **

3、工程治理

**3.1 Makefile/cmake/configure
3.2 git /svn 与继续集成
3.3 Linux 零碎运行时命令 **

二、高性能网络设计

1、代码实现

**1.1 网络 io 与 select/poll/epoll
1.2 reactor 的原理与实现
1.3 http/https web 服务器的实现
1.4 websocket 协定与服务器实现 **

2、计划剖析

**2.1 服务器百万并发的实现(c10K,c1000k,C10M)
2.2 redis/memcached/Nginx 网络组件
2.3 Posix API 与网络协议栈
2.4 UDP 牢靠协定 QUIC/KCP**

三、根底组件实现

1、池式构造

 **1.1 手写线程池
 1.2 内存池 ringbuffer
 1.3 异步申请池 性能优化,异步 mysql 异步 dns 异步 redis
 1.4 mysql 连接池
 1.5 redis 连接池 **

2、高性能组件

 **2.1 原子操作 CAS 
 2.2 音讯队列与无锁队列
 2.3 定时器的计划 红黑树 工夫轮 最小堆
 2.4 锁的实现原理 互斥锁,自旋锁,乐观锁,乐观锁,分布式锁
 2.5 服务器连贯保活 keepalived
 2.6 try/catch 的实现 **

3、开源组件

 **3.1 libevent/libev 框架
 3.2 异步日志计划 log4cpp
 3.3 应用层协定 protobuf/thrift
 3.4 openssl 加密
 3.5 json 与 xml 解析器
 3.6 字符编码 unicode/gbk/utf-8**
 

四、零声自研框架

1、携程框架的实现 NtyCo

 **1.1 协程的原理与工程案例
 1.2 协程的调度器实现 **

2、用户态协定栈 NtyTcp(tcp/ip)

 **2.1 滑动窗口 拥塞管制 满启动
 2.2 tcp 定时器的实现
 2.3 epoll 的源码实现 **
 

五、根底开源框架


1、skynet

 1.1 skynet 高性能网关
 1.2 actor 实现与 cluster/ 负载平衡
 1.3 skynet 网络与热更新 数据共享 

2、ZeroMQ

 2.1 ZeroMQ Router-Dealter 模式
 2.2 源码剖析:音讯模型与工程案例
 2.3 源码剖析:网络机制 

3、DPDK

 3.1 dpdk PCI 原理与 testpmd/l3fwd/skeletion   
 3.2 kni 数据流程
 3.3 dpdk 实现 dns
 3.4 dpdk 的高性能网关的实现
 3.5 半虚拟化 virtio/vhost 的减速

六、中间件开发

1、MySQL

 **1.1 SQL 语句 索引 存储过程 触发器 
 1.2 数据库连接池与 sql 解析分析
 1.3 存储引擎原理 MyISAM 与 Innodb 事务隔离
 1.4 本人实现一个存储引擎 MySQL 源码
 1.5 MySQL 集群与分布式 高可用高并发 **

2、Redis

 **2.1 Redis 相干命令与长久化
 2.2 Redis 连接池与异步操作
 2.3 源码剖析:存储原理与数据模型
 2.4 源码剖析:主从 原子模型
 2.5 redis 的集群计划 **

3、NGINX

 **3.1 Nginx 应用 conf 配置
 3.2 nginx 模块开发 过滤器模块
 3.3 Nginx 模块开发 handler 模块
 3.4 源码剖析:Nginx Http 状态机
 3.5 源码剖析:过程间通信与 Slab 共享机制 **

4、mongodb

 **4.1 Mongo 接口编程与 MongoDB 命令应用
 4.2 MongoDB 的集群计划 **

5、dfs

 **5.1 ceph
 5.2 fastdfs**
 

七、Linux 内核

1、过程治理

 **1.1 过程治理与调度
 1.2 锁与过程间通信
 1.3 零碎调用 如何本人实现一个 syscall**

2、内存治理

 **2.1 物理内存 搭档算法
 2.2 过程虚拟内存 mm_struct
 2.3 页的回收与页替换 **

3、文件系统

 **3.1 虚构文件系统
 3.2 Ext2/3/4 文件系统
 3.3 无长久的存储 **

4、设施驱动

 **4.1 内核编译与降级
 4.2 过程通信组件的实现
 4.3 网卡的实现吧 **
 

八、性能剖析

1、工具 wrk/ webbench/ loadbalance/valgrind

2、Google gTest/Memtrack

3、火焰图 / 热图

九、分布式架构

1、腾讯的 Tars

2、虚拟化的 docker

3、分布式注册核心 etcd

4、P2P 网络穿透 打洞 去中心化的网络

十、微服务即时通讯

退出移动版