{"id":28470572,"url":"https://github.com/0voice/develop_skill_tree","last_synced_at":"2025-07-01T17:30:33.821Z","repository":{"id":49037311,"uuid":"380982327","full_name":"0voice/develop_skill_tree","owner":"0voice","description":"2021年最新整理，名企校招各大岗位的技能树，含技术细节，Java，C/C++，前端，运维，测试，运营岗位。持续更新中","archived":false,"fork":false,"pushed_at":"2024-05-20T12:11:42.000Z","size":378,"stargazers_count":250,"open_issues_count":0,"forks_count":120,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-07T09:44:36.466Z","etag":null,"topics":["android","cpp","csharp","golang","harmonyos","java","php","python"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0voice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-28T09:50:43.000Z","updated_at":"2025-05-18T13:18:21.000Z","dependencies_parsed_at":"2024-05-20T13:31:56.609Z","dependency_job_id":"4cf4a4cb-a7cc-460a-891f-ba124854ea57","html_url":"https://github.com/0voice/develop_skill_tree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0voice/develop_skill_tree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fdevelop_skill_tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fdevelop_skill_tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fdevelop_skill_tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fdevelop_skill_tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0voice","download_url":"https://codeload.github.com/0voice/develop_skill_tree/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fdevelop_skill_tree/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263006990,"owners_count":23398740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","cpp","csharp","golang","harmonyos","java","php","python"],"created_at":"2025-06-07T09:39:55.455Z","updated_at":"2025-07-01T17:30:33.800Z","avatar_url":"https://github.com/0voice.png","language":null,"readme":"\u003ch1\u003e2021年最新整理，名企校招各大岗位的技能树，含技术细节，Java，C/C++，前端，运维，测试，运营岗位。持续更新中...\u003c/h1\u003e\n\n-----------\n\n### 一、软件岗位技能树\n* [Linux C/C++后台开发](#anchor_point_1)\n* [GoLang后台云原生](#anchor_point_2)\n* [Java后台开发](#anchor_point_3)\n* [Python架构师](#anchor_point_4)\n* [大数据技能树](https://github.com/0voice/develop_skill_tree/tree/main/bigdata_skill_tree)（正在抓紧更新中）\n* [iOS技能树](https://github.com/0voice/develop_skill_tree/tree/main/ios_skill_tree)\n* [Android技能树](https://github.com/0voice/develop_skill_tree/tree/main/android_skill_tree)\n* [前端技树](https://github.com/0voice/develop_skill_tree/tree/main/javascript_skill_tree)\n* [PHP技能树](https://github.com/0voice/develop_skill_tree/tree/main/php_skill_tree)\n* [Python全栈自动化测试技能树](https://github.com/0voice/develop_skill_tree/tree/main/python_automatic_test_skill_tree)\n* [运维岗技能树](https://github.com/0voice/develop_skill_tree/tree/main/operation_skill_tree)\n* [C#技能树](https://github.com/0voice/develop_skill_tree/tree/main/c%23_skill_tree)\n* [鸿蒙技能树](https://github.com/0voice/develop_skill_tree/tree/main/harmonyos_still_tree)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003ch2 id=\"anchor_point_1\"\u003eLinux C/C++后台开发\u003c/h2\u003e\n\n### 1 精进基石专栏\n\n#### 1.1 数据结构与算法\n\n##### 1.1.1 面试必聊的排序与KMP\n\n* 插入排序\n* 插入排序\n* 快速排序\n* 希尔排序\n* 桶排序\n* 基数排序\n* 归并排序\n* 字符串匹配KMP算法\n\n##### 1.1.2 随处可见的红黑树\n\n* 红黑树的应用场景进程调度cfs\n* 内存管理红黑树的数学证明与推导\n* 手撕红黑树的左旋与右旋\n* 红黑树添加的实现与添加三种情况的证明\n* 红黑树删除的实现与删除四种情况的证明\n* 红黑树的线程安全的做法\n* 分析红黑树工程实用的特点\n\n##### 1.1.3 磁盘存储链式的B树与B+树\n\n* 磁盘结构分析与数据存储原理\n* 多叉树的运用以及B树的定义\n* 证明B树插入的两种分裂\n* B树删除的前后借位与节点合并\n* 手撕B树的插入，删除，遍历，查找\n* B+树的定义与实现\n* B+树叶子节点的前后指针\n* B+树的应用场景与实用特点\n* B+树的线程安全做法\n\n##### 1.1.4 海量数据去重的Hash与布隆过滤器，bitmap\n\n* hash的原理与hash函数的实现\n* hash的应用场景\n* 分布式hash的实现原理\n* 海量数据去重布隆过滤器\n* 布隆过滤的数学推导与证明\n\n##### 1.1.5 图论算法，dijkstra，dfs，bfs，动态规划\n\n* 图的构建与需求应用场景\n* dijkstra的实现\n* 经典动态规划问题\n\n#### 1.2 设计模式\n\n##### 1.2.1 创建型设计模式\n\n* 单例模式\n* 工厂方法模式\n* 抽象工厂模式\n* 原型模式\n\n##### 1.2.2 单例模式\n\n* 适配器模式\n* 代理模式\n* 桥接模式\n* 组合模式\n\n##### 1.2.3 行为型设计模式\n\n* 策略模式\n* 观察者模式\n* 责任链模式\n* 状态模式\n\n#### 1.3 工程管理\n\n##### 1.3.1 手写: Makefile/cmake/configure\n\n* Makefile的规则与make的工作原理\n* 单文件编译与多文件编译\n* Makefile的参数传递\n* 多目录文件夹递归编译与嵌套执行make\n* Makefile的通配符，伪目标，文件搜索\n* Makefile的操作函数与特殊语法\n* configure生成makefile的原则\n* cmake的写法\n\n##### 1.3.2 操作:git/svn与持续集成\n\n* git的工作流程\n* 创建操作与基本操作\n* 分支管理，查看提交历史\n* git服务器搭建\n\n##### 1.3.3 linux系统运行时参数命令\n\n* 进程间通信设施状态 ipcs\n* Linux系统运行时长 uptime\n* CPU平均负载和磁盘活动iostat\n* 监控，收集和汇报系统活动sar\n* 监控多处理器使用情况mpstat\n* 监控进程的内存使用情况pmap\n* 系统管理员调优和基准测量工具 nmon\n* 密切关注Linux系统 glances\n* 查看系统调用strace\n* ftp服务器基本信息 ftptop\n* IO监控iotop\n* 电量消耗和电源管理powertop\n* 监控mysql 的线程和性能 mytop\n* 系统运行参数分析htop/top/atop\n* Linux网络统计监控工具 netstat\n* 显示和修改网络接口控制器ethtool\n* 网络数据包分析利刃tcpdump\n* 远程登陆服务的标准协议 telnet\n* 获取实时网络统计信息 iptraf\n* 显示主机上网络接口带宽使用情况iftop\n\n### 2 高性能网络设计专栏\n\n#### 2.1 网络编程\n\n##### 2.1.1 项目:网络io与select，poll, epoll\n\n* socket与文件描述符的关联\n* sigio的异步通知\n* 多路复用select/poll\n* 手撕epoll单线程，多线程，多进程的多种写法\n* 代码实现LT/ET的区别\n\n##### 2.1.2 项目: reactor的原理与实现\n\n* reactor针对业务实现的优点\n* epoll封装send_cb/recv_cb/accept_cb\n* reactor多核实现\n* 跨平台(select/epoll/kqueue)的封装reactor\n\n##### 2.1.3 项目: http/https服务器的实现\n\n* reactor sendbuffer与recvbuffer封装http协议\n* http协议格式\n* http2.0与http3.0\n* 有限状态机fsm解析http\n* https的工作流程\n* https证书配置\n\n##### 2.1.4 项目: websocket协议与服务器实现\n\n* reactor sendbuffer与recvbuffer封装websocket协议\n* websocket握手流程\n* websocket协议头封装\n* tcp分包与粘包的解决方案\n* websocket数据流的编解码\n\n#### 2.2 网络原理\n\n##### 2.2.1 项目:服务器百万并发实现\n\n* 同步处理与异步处理的数据差异\n* 网络io线程池异步处理\n* ulimit的fd的百万级别支持\n* sysctl.conf的rmem与wmem的调优\n* conntrack的原理分析\n\n##### 2.2.2 redis， memcached，nginx网络组件\n\n* redis单线程reactor的实现\n* memcached的多线程master-worker的reactor实现\n* nginx的多进程reactor的实现\n* 多进程reactor的坑点，惊群，共享内存\n\n##### 2.2.3 posix API与网络协议栈\n\n* connect，,listen,accept与三次握手\n* listen参数backlog\n* syn泛洪的解决方案\n* close与四次挥手\n* 11个状态迁移\n* 大量close_wait与time_wait的原因与解决方案\n* tcp keepalive与应用层心跳包\n* 拥塞控制与滑动窗口\n\n##### 2.2.4 udp的可靠传输，QUIc，KCP\n\n* udp的优缺点\n* udp高并发的设计方案\n* qq早期为什么选择udp作为通信协议\n* udp可靠传输原理\n* quic协议的设计原理\n* quic的开源方案quiche\n* kcp的设计方案与算法原理\n\n#### 2.3 自研框架:协程框架实现NtyCo\n\n##### 2.3.1 协程的设计原理与切换汇编实现\n\n* 协程存在的3个原因\n* 同步与异步性能，服务端异步处理，客户端异步请求\n* 协程原语 switch, resume, yield,\n* 一协程切换的三种实现方式，setjmp/longjmp，ucontext，汇编实现\n* 汇编实现寄存器讲解\n* 协程初始启动eip寄存器设置\n* 协程栈空间定义，独立栈与共享栈的做法\n* 协程结构体定义\n\n##### 2.3.2 协程的调度器实现与性能测试\n\n* 调度器的定义分析\n* 超时集合，就绪队列，io等待集合的实现\n* 协程调度的执行流程\n* 协程接口实现，异步流程实现\n* hook钩子的实现\n* 协程实现mysql请求\n* 协程多核方案分析\n* 协程性能测试\n\n#### 2.4 自研框架:用户态协议栈NtyTCP\n\n##### 2.4.1 tcp/ip设计\n\n* 用户态协议栈的存在场景与实现原理\n* netmap开源框架\n* eth协议，ip协议，udp协议实现\n* arp协议实现\n* icmp协议实现\n\n##### 2.4.2 tcp/ip定时器与滑动窗口的实现\n\n* tcp协议头实现\n* tcp控制块的实现滑动窗口的实现\n* 重传定时器，坚持定时器，time_wait定时器，keepalive定时器\n\n##### 2.4.3 Epoll的实现\n\n* epoll数据结构封装与线程安全实现\n* 协议栈fd就绪回调实现\n* epoll接口实现\n* LT/ET的实现\n\n### 3 基础组件实现专栏\n\n#### 3.1 池式组件\n\n##### 3.1.1 手写线程池与性能分析\n\n* 线程池的异步处理使用场景\n* 线程池的组成任务队列执行队列\n* 任务回调与条件等待\n* 线程池的动态防缩\n* 扩展:nginx线程池实现对比分析\n\n##### 3.1.2 ringbuffer与内存池实现\n\n* 内存池的应用场景与性能分析\n* 内存小块分配与管理\n* 手写内存池，结构体封装与API实现\n* 避免内存泄漏的两种万能方法\n* 定位内存泄漏的3种工具\n* 扩展:nginx内存池实现\n\n##### 3.1.3 异步请求池 http/mysql/redis/dns\n\n* 异步请求处理流程\n* King式四元组，create, comm it, callback,destory\n* 异步请求框架封装\n* 应用协议redis/dns/http请求封装\n\n##### 3.1.4 mysql/redis连接池的实现\n\n* 连接池性能的影响的2个因素，tcp连接和mysql认证\n* 连接请求归还策略\n* 连接超时未归还策略\n* 链接断开重连策略\n* 连接数量最优策略\n\n#### 3.2 高性能组件\n\n##### 3.2.1 原子操作CAS与锁实现原理实现\n\n* 互斥锁的使用场景与原理\n* 自旋锁的性能分析\n* 原子操作的汇编实现\n\n##### 3.2.2 消息队列与无锁实现\n\n* 有锁无锁队列性能\n* 内存屏障Barrier\n* 数组无锁队列设计实现\n* 链表无锁队列设计实现\n\n##### 3.2.3 定时器方案红黑树时间轮最小堆\n\n* 定时器的使用场景\n* 定时器的红黑树存储\n* 时间轮的实现\n* 最小堆的实现\n* 分布式定时器的实现\n\n##### 3.2.4 try/ catch组件的实现\n\n* setjmp/longjmp\n* try/catch宏定义实现\n* try/catch嵌套\n* try/catch线程安全\n* 线程私有数据pthread_key\n\n#### 3.3 开源组件\n\n##### 3.3.1 libevent/libev框架实战的那些坑\n\n* 服务端reactor事件封装\n* libevent接口分析event_base_new,event_add，event_del,event_base_loop\n* memcached网络模块分析\n* libev的主要数据结构EV_WATCH，EV_WATCH_LIST\n* libevent与libev性能对比\n\n##### 3.3.2 异步日志方案log4cpp\n\n* 日志库性能瓶颈分析\n* 异步日志库设计与实现\n* 批量写入与双缓存冲机制\n* 奔溃后的日志找回\n\n##### 3.3.3 应用层协议设计ProtoBuf/Thrift\n\n* lM，云平台,nginx，http， redis协议设计\n* 如何保证消息完整性\n* 手撕protobuf IM通信协议\n* protobuf序列化与反序列化\n* protobuf编码原理\n\n###### 3.3.4 Openssl对称加密与非对称加密\n\n* 对称加密与非对称加密\n* hash的数据结构与使用\n* 内存分配与管理\n* 抽象l0 BI0的具体实现\n* base64编码的原理\n* RSA的使用场景与数学证明\n* https证书操作与原理分析\n\n##### 3.3.5 Json数据解析/Xml解析器和工具包\n\n* cjson,jsoncpp, repidjson接口应用\n* json序列化和反序列化\n* TinyXML2接口应用\n* XML序列化和反序列化\n* XML/json不同应用场景\n\n#### 3.3.6 字符编码Unicode原理及编程实践\n\n* 字符集与字符编码的关系\n* UTF8/UTF16/UTF32具体区别\n* mysql，redis，nginx使用中的字符集问题分析\n* zlib数据压缩\n* 手撕zlib压缩与解压\n* nginx中的zlib实现原理\n\n### 4 中间件开发专栏\n\n#### 4.1 MySQL\n\n##### 4.1.1 MySQLSQL语句，索引，视图，存储过程，触发器\n\n* MySQL体系结构，SQL执行流程\n* SQL CURD与高级查询\n* 视图，触发器，存储过程MySQL权限管理\n\n##### 4.1.2 MySQL索引原理以及SQL优化\n\n* 索引，约束以及之间的区别\n* B+树，聚集索引和辅助索引\n* 最左匹配原则以及覆盖索引\n* 索引失效以及索引优化原则\n* EXPLAIN执行计划以及优化选择过程分析\n\n##### 4.1.3 MySQL事务原理分析\n\n* 事务的ACID特性\n* MySQL并发问题脏读，不可重复读，幻读\n* 事务隔离级别\n* 锁的类型，锁算法实现以及锁操作对象\n* S锁 X锁 IS锁 IX锁\n* 记录锁，间隙锁，next-key lock\n* 插入意向锁，自增锁\n* MVCC原理剖析\n\n##### 4.1.4 MySQL缓存策略\n\n* 读写分离，连接池的场景以及其局限\n* 缓存策略问题分析\n* 缓存策略强一致性解决方案\n* 缓存策略最终一致性解决方案\n* 2种mysql缓存同步方案从数据库与触发器+udf\n* 缓存同步开源方案 go-mysql-transfer\n* 缓存同步开源方案canal原理分析\n* 3种缓存故障，缓存击穿，缓存穿透，缓存雪崩\n\n##### 4.1.5 MySQL集群方案与Replication原理\n\n* 分库分表:水平分库，垂直分库，水平分表，垂直分表\n* MySQL官方三种集群方案replication，Fabric，Cluster\n* 三个开源集群方案MMM，MHA，Galera Cluster\n\n#### 4.2 Redis\n\n##### 4.2.1 Redis 相关命令详解及其原理\n\n* string, set,zset，list，hash\n* 分布式锁的实现\n* lua脚本解决ACID原子性\n* Redis事务的ACID性质分析\n\n##### 4.2.2 Redis协议与异步方式\n\n* Redis协议解析\n* 特殊协议操作订阅发布\n* 手撕异步red is协议\n\n##### 4.2.3 存储原理与数据模型\n\n* string的三种编码方式int, raw, embstr\n* 双向链表的list实现\n* 字典的实现，hash函数\n* 解决键冲突与rehash\n* 跳表的实现与数据论证\n* 整数集合实现\n* 压缩列表原理证明\n\n##### 4.2.4 主从同步与对象模型\n\n* 对象的类型与编码字符串对象\n* 列表对象哈希对象集合对象有序集合\n* 类型检测与命令多态内存回收\n* 对象共享对象空转时长\n\n##### 4.2.5 集群方案主从复制/哨兵/集群与持久化\n\n* redis的3种集群方式主从复制，sentinel, cluster\n* 4种持久化方案\n* 大厂的那些分布式缓存方案\n\n#### 4.3 Nginx\n\n##### 4.3.1 Nginx反向代理与系统参数配置conf原理\n\n* Nginx静态文件的配置\n* Nginx动态接口代理配置\n* Nginx对Mqtt协议转发\n* Nginx对Rtmp推拉流\n* Openresty对Redis缓存数据代理\n\n##### 4.3.2 进程间通信与Slab共享机制\n\n* shmem的三种实现方式\n* 原子操作\n* nginx channel\n* 信号\n* 信号量\n* 文件锁，互斥锁\n* slab共享内存\n* 如何解决\"惊群\"问题\n* 如何实现负载均衡\n\n##### 4.3.3 广告内容推送Nginx过滤模块的实现\n\n* Nginx Filter模块运行原理\n* 过滤链表的顺序\n* 模块开发数据结构ngx_str_t,ngx_list_t,ngx_buf_t,ngx_chain_t\n* error日志的用法\n* ngx_comond_t的讲解\n* ngx_http_module_t的执行流程\n\n##### 4.3.4 访问频率统计Nginx handler模块的实现\n\n* Nginx Handler模块运行原理\n* ngx_module_t/ngx_http_module_t的讲解\n* ngx_http_top_body_filter/ngx_http_top_header_filter的原理\n* ngx_rbtree_t的使用方法\n* ngx_rbtree自定义添加方法\n* 模块性能测试\n\n##### 4.3.5 Nginx http状态机流程\n\n* Nginx的核心数据结构ngx_cycle_t,ngx_event_moule_t\n* http请求的11个处理阶段\n* http包体处理\n* http响应发送\n* Nginx Upstream机制的设计与实现\n\n#### 4.4 MongoDB\n\n##### 4.4.1 接口编程与文档操作\n\n* 接口编程与文档操作\n* 文档/集合/聚合函数操作\n* 五种索引做法单字段索引，复合索引，TTL索引，全文索引,hash索引\n* GridFS存储大文件\n* WiredTiger存储引擎wiredTiger的事务journal日志\n\n##### 4.4.2 集群方案与持久化备份\n\n* Master-Slave的三个服务Mongos/config/shard服务\n* Replica Set读写策略\n* Sharding的实现与原理\n* 三种Mongodb性能优化策略时间同步，磁盘预读功能，内存管理\n* 项目: MongoDB跨数据中心的数据复制平台\n  * 抓取Oplog操作日志\n  * 日志分离\n  * 日志订阅\n  * 数据路由\n  * Cache同步\n\n### 5 开源框架\n\n#### 5.1 Skynet\n\n##### 5.1.1 Skynet设计原理\n\n* 多核并发编程-多线程，多进程，csp模型，actor模型\n* actor模型实现-lua服务和c服务\n* 消息队列实现\n* actor消息调度\n\n##### 5.1.2 skynet网络层封装以及lua/c接口编程\n\n* skynet reactor网络模型封装\n* socket/socketchannel封装\n* 手撕高性能c服务\n* lua编程以及lua/c接口编程\n\n#### 5.1.3 skynet重要组件以及手撕游戏项目\n\n* 基础接口skynet.send, skynet.call , skynet.response\n* 广播组件multicastd\n* 数据共享组件sharedatad datasheet\n* 手撕万人同时在线游戏\n\n#### 5.2 ZeroMQ\n\n##### 5.2.1 消息队列与ZeroMQ的应用\n\n* REQ/REP模型原理分析\n* PUB/SUB模型原理分析\n* PUSH/PULL模型原理分析\n* Router/Dealer模型原理分析\n\n##### 5.2.2 ZeroMQ源码分析:消息模型的实现\n\n* 消息模型\n* 消息传递模式\n* 一消息分帧\n* 一中间层代理\n* 消息丢失处理\n* \n##### 5.2.3 ZeroMQ源码分析:网络机制与性能分析\n\n* 零拷贝技术\n* 消息高水位标记\n* 无锁队列\n* 可靠性设计\n\n#### 5.3 DPDK\n\n##### 5.3.1 DPDK环境与testpmd/l3fwd/skeleton\n\n* DPDK环境参数讲解\n* 多队列网卡的工作原理\n* CPU亲和性\n* Burst数据包的优缺点\n* DPDK轮询模式异步中断，轮询模式，混合中断轮询模式\n* virtio与vhost\n\n##### 5.3.2 DPDK的用户态协议栈实现\n\n* 内核网络接口KNI的实现原理\n* 接收线程/发送线程/KNI线程\n* 内存数据结构rte_mbuf，rte_mempool\n* 端口数据结构rte_kni， rte_kni_conf, rte_kni_ops,rte_eth_conf\n* 协议数据结构rte_ether_hdrrte_ipv4_hdr，rte_udp_hdr\n* 数据处理接口\n* rte_eth_rx_burst,rte_kni_tx_burst,rte_pktmbuf_mtod\n\n##### 5.3.3 千万级流量并发的DNS处理\n\n* udp协议包处理\n* dns协议实现\n* 配置文件解析\n* 数据结构rte_ring\n* trex数据包性能测试\n\n##### 5.3.4 高性能数据处理框架 VPP\n\n* vpp使用vmxnet3\n* DPDK ACL实现数据过滤\n* vpp web应用\n* vpp基础库VPPInfra\n* 高速查找路由表，CAM表\n\n##### 5.3.5 DPDK的虚拟交换机框架 OvS\n\n* 0vS三大组件ovs-vswitchd，ovsdb-server，openvswitch.ko\n* 0vS报文处理机制\n* 0vS 4种数据路径\n* VXLAN数据协议\n\n### 6 Linux内核源码专栏\n\n#### 6.1 进程原理\n\n##### 6.1.1 进程原理与运行分析\n\n* task_struct结构数据\n* 进程的生命周期\n* 进程优先级\n* 进程状态迁移\n* 写时复制\n\n##### 6.1.2 全方位剖析调度机制\n\n* 调度器stop/rt/deadline/cfs/idle\n* 调度策略SCHED_RR/SCHED_FIFO\n* smp多核调度\n\n##### 6.1.3 锁与进程间通信\n\n* 自旋锁的实现\n* 互斥锁的实现\n* 大内核锁BKL-Big Kernel Lock\n* 消息队列\n* 共享内存\n\n#### 6.2 内存管理\n\n#### 6.2.1 内存原理与内存杂乱繁多的细节\n\n* uma与numa的内存结构\n* tlb的工作原理\n* mm_struct结构体\n* 页表与缺页异常\n* 高速缓存\n\n##### 6.2.2 物理内存与虚拟内存管理\n\n* 分配器原理\n* slab/slub/slob分配器\n* 不连续页原理\n* 内存映射\n* 伙伴算法\n\n##### 6.2.3 虚拟内存及API调用\n\n* 进程内存映射\n* 进程堆栈管理\n* 用户空间与内核空间\n* 系统调用kmalloc/vmalloc\n\n#### 6.3 文件系统\n\n##### 6.3.1 虚拟文件系统\n\n* 通用文件模型\n* VFS结构\n* 文件操作系统调用\n* file/inode原理\n\n##### 6.3.2 无持久存储的文件系统\n\n* 文件系统数据结构\n* 管理/proc数据项\n* 系统控制机制\n* sysfs数据结构\n* 挂载文件系统\n* 文件目录操作\n* sysfs增加数据\n\n##### 6.3.3 磁盘文件系统\n\n* Ext2文件系统\n* Ext3文件系统\n* Ext4文件系统\n\n#### 6.3.4 用户态文件系统fuse\n\n* fuse使用场景fuse原理\n* fuse实现\n* 用户态文件接口实现\n\n### 6.4 设备驱动\n\n#### 6.4.1 实现进程间通信组件\n\n* file_operation原理\n* 系统调用的流程\n* ioctl流程\n* 请求中断\n\n#### 6.4.2 块设备运行原理\n\n* 资源管理\n* I/0调度\n* BI0结构原理\n* PCI总线原理\n\n##### 6.4.3 虚拟网络适配器的实现\n\n* 网络结构体 net_device/net_device_ops\n* sk_buff原理\n* 网卡数据中断\n* 网卡mmap\n\n### 7 性能分析专栏\n\n##### 7.1 性能工具\n\n* 高性能代码构建系统 tundra\n* Http压测工具 WRK\n* 网站压测工具 webbench\n\n##### 7.2 调试库\n\n* 内存调试性能分析工具 Valgrind\n* 谷歌C++测试框架 GoogleTest\n* 内存分配跟踪库 MemTrack\n\n##### 7.3 内核跟踪与火焰图分析\n\n* 内核探测SystemTap\n* 火焰图分析与生成\n\n### 8 分布式架构专栏\n\n#### 8.1 架构实战\n\n##### 8.1.1 腾讯微服务RPC框架Tars\n\n* Tars微服务应用场景\n* RPC协议的序列化与反序列化\n* 路由管理Registry\n* 服务发布管理 Patch\n* 分布式MySQL与分布式Cache\n* 服务发现与服务治理解决方案\n\n##### 8.1.2 容器化Docker与容器编排\n\n* Docker镜像管理\n* 镜像元数据管理与存储驱动\n* 网络管理与GRE实现跨网络通信\n* Docker容器安全解决方案SElinux\n* Dockerfile的容器构建\n* 编排三剑客Fig/Compose/Swarm\n* 编排小神器Fleet\n* Flynn体系架构与实现原理\n\n##### 8.1.3 容器化管理 k8s与核心组件\n\n* k8s使用场景\n* k8s核心组件APIServer，scheduler，controller manager,kubelet，kube-proxy\n* 网络核心原理单pod单ip,pod和网络容器\n* 用户认证与namespace设计\n\n#### 8.2 架构原理\n\n##### 8.2.1 分布式注册服务中心etcd\n\n* etcd的应用场景与功能分析\n* 强一致性raft算法原理\n* etcd的分布式锁实现\n* 单机部署与集群部署\n\n##### 8.2.2 内核级支持的分布式存储Ceph\n\n* ceph的集群部署\n* monitor与OSD\n* ceph 5个核心组件\n* ceph集群监控\n* ceph性能调调优与benchmark\n\n##### 8.2.3 快播核心技术揭秘P2P框架的实现\n\n* 网关NAT表分析\n* NAT类型，完全锥型NAT，对称NAT，端口限制锥形NAT，IP限制锥型NAT\n* 代码逻辑实现NAT类型检测\n* 网络穿透的原理\n* 网络穿透的3种情况\n\n### 9 架构原理\n\n#### 9。1 互联网并发云盘\n\n##### 9.1.1 fastdfs架构分析和配置\n\n* fastdfs架构分析\n* 快速配置fastdfs\n* 上传文件逻辑分析\n* 下载文件逻辑分析\n\n##### 9.1.2 fastdfs存储原理\n\n* tracker, storage分析\n* 存储机制\n* 支持断点续传\n* 相同文件内容只保存一份\n\n##### 9.1.2 分布式fastdfs存储集群部署\n\n* 同步机制\n* 线性扩容\n* 如何实现高可用\n* 负载均衡\n\n##### 9.1.3 高负载nginx/fastcgi\n\n* fastdfs-nginx-module模块分析\n* fastcgi请求与响应\n* nginx与fastcgi如何通信\n* nginx-fastcgi-fastdfs如何实现上传下载\n\n##### 9.1.4 文件传输和接口设计\n\n* 云盘接口设计\n* 云盘数据库设计\n* 云盘文件上传，下载功能实现\n* 云盘源码业务流程实现\n\n##### 9.1.5 产品上云公网发布/测试用例\n\n* 使用云服务器的各种坑分析\n* fiddler监控http请求,postman模拟请求\n* wrk测试接口吞吐量\n* jmeter压力测试\n\n#### 9.2 微服务即时通讯\n\n##### 9.2.1 IM即时通讯项目框架分析和部署\n\n* 接入层、逻辑层、持久层架构划分\n* 消息实时性分析\n* 即时通讯数据库设计\n* 单聊、群聊消息原理\n* 群成员管理\n* 未读消息原理\n* 池化技术的使用\n* 快速配置IM项目\n\n##### 9.2.2 IM消息服务器/文件传输服务器\n\n* protobuf通信协议设计\n* 数据库分表设计\n* reactor百方并发模型\n* login_server负载均衡\n* 登录请求响应模型\n\n##### 9.2.3 消息服务器/路由服务器\n\n* 请求登陆逻辑\n* 最近联系会话逻辑\n* 查询用户在线主题\n* 未读消息机制\n* 单聊消息推拉机制\n* 群聊消息推拉机制\n* 路由转发机制\n\n##### 9.2.4 数据库代理服务器设计\n\n* main函数主流程\n* 响应流程\n* redis缓存\n* 消息计数（单聊和群聊)\n* 未读消息机制\n* 群成员管理\n* 单聊群聊\n\n##### 9.2.5 文件服务器和docker部署\n\n* 在线文件传输机制分析\n* 离线文件传输机制分析\n* etcd微服务注册与发现\n* docker制作与部署\n\n##### 9.2.6 产品上云公网发布/公网测试上线\n\n* 单元测试案例\n* testbench如何设计\n* IM项目性能压测\n* 定制私有功能\n* 云服务器部署\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\n\u003ch2 id=\"anchor_point_2\"\u003eGoLang后台云原生\u003c/h2\u003e\n\n\u003cbr/\u003e\n\n\n### 1 语法精讲\n\n#### 1.1 语法基础\n\n* 错误处理\n* 包定义以及导入\n* 结构体定义\n* 反射原理\n* 闭包\n* 值传递,引用传递,defer函数\n\n#### 1.2 并发编程\n\n* goroutine\n* 锁(读写锁，互斥锁，原子操作)\n* 通道channel\n* runtime包解析\n* Context使用原则\n\n#### 1.3 网络编程\n* tcp编程\n* udp编程\n* http的实现\n* websocket\n      \n#### 1.4 第三方测试框架\n\n* goconvey\n* gostub\n* gomock\n* monkey\n      \n#### 1.5 源码分析\n\n* GC实现\n* 调度器源码\n* 定时器实现\n* map与切片\n      \n### 2 中间件\n\n#### 2.1 MySQL\n\t\t\t\n* golang的CRUD\n* jmorion/sqlx包\n* 连接池的实现\n* 异步mysql\n      \n#### 2.2 Gin\n\n* RESTful API\n* URL查询参数\n* query接收数组和 Map\n* 表单参数\n* 上传文件\n* 分组路由route以及中间件授权\n* json、struct、xml、yaml、protobuf渲染\n\n#### 2.3 Redis\n\n* go-redis\n* get/set/zset操作\n* redis连接池\n* 分布式锁\n      \n#### 2.4 MongoDB\n\t\t\t\n* mongo-driver\n* BSON解析\n* CRUD操作\n* 文档管理\n* 连接池的实现\n      \n#### 2.5 Kafka\n\t\t\t\n* saram包\n* 同步与异步模式\n* zstd压缩算法\n* 横向扩展\n* go实现生产消费者\n* 原理分析-topic和partition\n* 原理分析-消息分发策略\n* 分区副本机制\n      \n#### 2.6 etcd\n\t\t\t\n* etcd原理与实现\n* 分布式锁的实现\n* etcd操作\n* 服务发现与注册\n      \n#### 2.7 ElasticSearch\n\t\t\t\n* es服务器实例\n* go-elasticsearch包\n* node与cluster\n* Index与Document\n* 检测与配置\n      \n#### 2.8 gRPC\n\t\t\t\n* protoc-gen-go开发包\n* .proto文件编写\n* gRPC Service Stub\n* rpc接口设计\n* 通信模式-客户端流、服务器端流、双向流模式\n* 拦截器\n* 多路复用\n* 负载均衡\n* 安全认证\n      \n### 3 源码分析\n\n#### 3.1 Go标准库源码分析\n\t\t\t\n* 编译和调试源码\n* 协程实现原理\n* Channel实现原理\n* GC实现原理\n      \n#### 3.2 Gin HTTP框架源码分析\n\t\t\t\n* 原生HTTP库源码分析\n* gin路由设计\n* gin中间件设计\n* gin engine实现\n* gin context实现\n      \n### 4 项目实战\n\n#### 4.1 游戏后端\n\n* leaf框架\n* 网关模块\n* 协议模块\n* 日志模块\n* 网络模块\n      \n#### 4.2 流媒体web后端\n\t\t\t\n* Restful接口设计\n* scheduler设计\n* apidefs结构体定义\n* mysql建库建表\n* 项目上云 腾讯云COS\n      \n#### 4.3 小程序后端\n\t\t\t\n* 公众号开发流程\n* 微信消息接收与解析\n* 公众号验证URL+Token\n* 内网环境接口测试\n* 后端程序测试脚本\n      \n#### 4.4 goadmin后台权限管理系统\n\t\t\t\n* RESTful API 设计\n* Gin框架精讲\n* JWT 认证\n* 支持 Swagger 文档(基于swaggo)\n* GORM对象关系映射\n* 基于Casbin的 RBAC 访问控制模型\n      \n#### 4.5 goim千万级高并发推送服务\n\t\t\t\n* 支持单个、多个、广播消息推送\n* 心跳检测（应用心跳和tcp、keepalive、http log pulling）\n* 接入层支持多协议（websocket，tcp，http）\n* 可拓扑的架构（job、logic模块可动态无限扩展）\n* 基于Kafka做异步消息推送\n* 注册发现服务\n* 消息协议设计（基于protobuf）\n* goim推送服务架构分析\n* grpc客户端服务端编程\n      \n#### 4.6 腾讯云大数据\n\n* 腾讯云大数据套件TBDS\n* 云数据仓库PostgreSQL\n* 弹性MapReduce\n* WeData数据开发平台\n      \n### 5 云原生\n\n#### 5.1 微服务\n\n* go-micro原理\n* rpc的讲解\n* 服务间的同步机制\n* json/protobuf\n      \n#### 5.2 DevOps\n\n* 项目管理 CODING-PM\n* 测试管理 CODING-TM\n* 制品库  CODING-AR\n* 代码托管 CODING-CR\n      \n#### 5.3 持续部署\n\n* spinnake的实现\n* webhook外部对接\n* 蓝绿发布/金丝雀发布\n* SCF云函数\n* 快速回滚\n      \n#### 5.4 容器化\n\n* Docker化部署\n* k8s集群\n* CVM云服务器\n* TKE容器服务\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\n\u003ch2 id=\"anchor_point_3\"\u003eJava后台开发\u003c/h2\u003e\n\n\u003cbr/\u003e\n\n### 1 数据结构与算法\n\n#### 1.1 常用数据结构与算法\n\n* 算法复杂性分析\n* 线性表、链表数据结构详解\n* 队列、栈结数据结构详解\n* 基础排序算法详解\n* 数论\u0026枚举\u0026递归\u0026分治\u0026回溯思想详解\n* 贪心算法与动态规划\n* 快排与归并排序详解\n* 二分搜索、哈希表详解\n* 并查集算法详解\n* 树，基本概念，二叉树(遍历)，红黑树详解\n* B树，Trie树，赫夫曼树，堆树详解\n* 图论、深度优先遍历、广度优先遍历详解\n* 最小生成树、最短路径详解\n* 布隆过滤器与位图详解\n\n### 2 Java基础\n\n#### 2.1 Java基础知识\n\n* Java语言的特点\n* 面向对象与面向过程对比\n* Java平台的三个版本J2EE、J2SE、J2ME\n* JDK、JRE、JVM之间的区别于关系\n* Java环境变量\n* javac命令和java命令\n* 字节码，采用字节码的好处\n* import java和javax的区别\n* Java和C++的区别\n* Java数据类型\n* Java访问修饰符\n* 字符型常量和字符串常量的区别\n* 面向对象编程三大特性:封装、继承、多态\n* 接口和抽象类的区别\n* 重载和重写的区别\n* java对象\n* java引用\n\n#### 2.2 Java异常\n\n*  Java异常处理\n*  Runtime Exception与Error\n\n#### 2.2 Java反射\n\n*  java反射概念\n*  java反射(Reflection)的底层实现原理\n*  创建反射实例\n*  反射中,Class.forName和classloader的区别\n* 序列化与反序列化\n\n#### 2.3 java拷贝\n\n* 浅拷贝与深拷贝\n* 拷贝的几种方法\n\n#### 2.4 多线程与并发\n\n* 进程与线程\n* 并发与并行\n* Thread和Runnable\n\n#### 2.5 Java容器及底层实现\n\n* Collection\n* Set\n* SortedSet\n* HashSet\n* TreeSet\n* Iterator\n* ListIterator\n* List\n* Vector\n* Stack\n* ArrayList\n* LinkedList\n* Map\n* SortedMap\n* TreeMap\n* HashMap\n* Hashtable\n\n### 3 性能调优专题\n\n#### 3.1 Jvm性能调优\n\n##### 3.1.1 JVM类加载机制详解\n\n* 从JDK源码(C++)级别深度剖析类加载全过程\n* 启动类、扩展类、应用程序类加载器源码深度剖析\n* 类加载双亲委派机制及如何打破详解\n* 手写自定义类加载器\n* Tomcat类加载机制源码剖析\n\n##### 3.1.2 JVM内存模型\n\n* 堆内存分代机制及对象生命周期详解\n* 线程栈及栈帧内部结构详解\n* 方法区(元空间)及常量池详解(深入到Hotspot底层C++级别解析)\n* 程序计数器详解\n* 本地方法栈详解\n\n##### 3.1.3 类字节码文件深度剖析\n\n* 数据类型\n  * 无符号数\n  * 表\n* 组成\n  * 0~3字节：魔数：文件类型\n  * 4~7字节：jdk本号\n  * 常量池\n    * 字面量：常量字符串、final常量值\n    * 符号引用\n      * 类和接口的fully Qualified Name\n      * 字段的方法和描述符\n      * 方法的名称和描述符\n  * u2访问标志：类/接口、public、final、abstract\n  * 继承关系\n    * u2类索引：类的全限定名\n    * u2父索引：父类的全限定名\n    * nu2+1接口索引：实现接口的全新定名\n  * 字段表集合：描述接口、变量\n    * u2访问标志\n    * u2 name_index\n    * u2 descriptor_index\n    * u2 attributes_count\n    * u2 attributes\n  * 方法表集合：描述方法\n  * 属性表集合\n    * code属性\n    * exception属性\n    * LineNumberTable属性\n    * LocalVariableTable属性\n    * sourceFile属性\n    * constantvalue属性：通知虚拟机自动为静态变量赋值\n    * innerClass属性\n    * Deprecated和Synthetic属性\n    * stackMapTable属性\n    * Signature属性：记录泛型信息\n    * BootstrapMethod属性\n\n##### 3.1.4 垃圾收集机制详解\n\n* 垃圾收集算法详解\n  * 标记清除算法详解\n  * 复制算法详解\n  * 标记整理算法详解\n  * 分代垃圾收集算法详解\n* 复制垃圾收集机制详解\n  * 垃圾收集三色标记算法详解\n  * 对象漏标解决方案增量更新与原始快照(SATB)详解\n  * 读写内存屏障实现原理剖析(深入到Hotspot底层C++级别解析)\n  * 记忆集(Remember Set)与卡表(Cardtable)详解\n  * ZGC底层颜色指针详解\n\n##### 3.1.5 十种垃圾收集器详解\n\n* Serial垃圾收集器详解\n* ParNew垃圾收集器详解\n* Parallel垃圾收集器详解\n* CMS垃圾收集器详解\n* G1垃圾收集器详解(深入到Hotspot底层C++级别解析)\n* ZGC垃圾收集器详解\n* Epsilon与Shenandoah垃圾收集器详解\n\n##### 3.1.6 JVM调优工具详解\n\n* JDK自带Jstat、Jinfo、Jmap、Jhat及Jstack调优命令详解\n* Jvisualvm、Jconsole调优工具详解\n* 阿里巴巴JVM调优工具Arthas详解\n\n##### 3.1.7 GC日志详细分析\n\n* GCEasy日志分析工具使用\n* GCViewer日志分析工具使用\n\n##### 3.1.8 JVM调优实战\n\n* 日均百万交易系统JVM堆栈大小设置策略与调优\n* 亿级流量电商系统堆内年轻代与老年代垃圾回收参数设置与调优\n* 高并发系统如何基于G1垃圾回收器优化性能\n* 每秒10万并发的秒杀系统为什么会频繁发生GC\n* 电商大促活动时，严重Full GC导致系统直接卡死的优化实战\n* 线上生产系统OOM监控及定位与解决\n\n#### 3.2 Mysql性能调优\n\n##### 3.2.1 SQL执行原理详解\n\n* 连接器详解\n* 分析器详解\n* 优化器详解\n* 执行器详解\n* Innodb的Buffer Pool机制详解\n* Redo重做日志、Undo回滚日志与Binlog详解\n\n##### 3.2.2 索引底层剖析\n\n* 数据结构角度\n  * B+树索引\n    * 索引查找步骤\n    * 索引选择\n    * 联合索引\n  * Hash索引\n  * FULL TEXT索引\n* 物理存储角度\n  * 聚簇索引\n  * 非聚簇索引\n* 逻辑角度\n  * 主键索引\n  * 唯一索引\n  * 单列索引\n  * 多列索引\n* 索引使用角度\n  * 覆盖索引\n  * 索引下推\n\n##### 3.2.3 执行计划与SQL优化\n\n* explain工具深度使用\n* 阿里巴巴索引优化最佳实践\n\n##### 3.2.4 Mysql锁机制与事务隔离级别详解\n\n* Mysql锁\n  * 性能\n    * 乐观锁\n    * 悲观锁\n  * 操作\n    * 读锁\n    * 写锁\n  * 粒度\n    * 表锁\n    * 行锁\n  * 其它\n    * 间隙锁\n    * 临键锁\n  * 死锁以及优化解决\n* 事务隔离级别\n  * 读未提交\n  * 读已提交\n  * 可重复读\n  * 串行化\n* MVCC多版本并发控制机制详解\n  * Undo版本链\n  * 事务一致性视图ReadView\n  * 实现\n    * Read Committed级别实现原理\n    * Repeated Read级别实现原理\n\n#### 3.3 Tomcat调优\n\n##### 3.3.1 整体认知Tomcat项目架构\n\n* 理解Tomat启动流程\n* 理解对Http请求解析与处理流程\n* 核心组件认知\n  * wrapper\n  * context\n  * host\n  * engine\n  * container\n* Tomcat 8 与Tomcat7 对比\n\n##### 3.3.2 生产环境配置\n\n* Tomcat server.xml 配置详解 \n* Tomcat集群与会话复制方案实现\n* Tomcat虚拟主机配置\n\n##### 3.3.3 掌握Tomcat线程模型背后原理\n\n* Tomcat 支持四种线程模型介绍 \n* 通过压测演示Nio与 Bio模型的区别\n* Tomcat Bio实现源码解读\n* Tomcat Nio 实现源码解读\n* Tomcat connector 并发参数解读\n\n#### 3.4 Nginx调优\n\n##### 3.4.1 Nginx快速掌握\n\n* 核心模块\n* 标准Http模块\n* 可选Http模块\n* 第三方模块\n* nginx 事件驱动模型及特性\n\n##### 3.4.2 熟练掌握Nginx核心配置\n\n* 基本配置\n* 虚拟主机配置\n* upstream\n* location\n* 静态目录配置\n\n##### 3.4.3 掌握Nginx负载算法配置\n\n* 轮循+权重\n* ip hash\n* url hash\n* least_conn\n* least_time\n\n### 4 并发编程专题\n\n#### 4.1 操作系统内核原理\n\n* 进程管理详解\n* 内存管理详解\n* 文件系统详解\n* IO输入输出系统详解\n* 进程间通信机制详解\n* 网络通信原理剖析\n\n#### 4.2 阻塞队列\n\n* ArrayBlockingQueue 数组有界队列详解\n* ConcurrentLinkedQueue 链表无界队列详解\n* PriorityBlockingQueue 优先级排序无界队列详解\n* DelayQueue 延时无界队列详解\n* SynchronousQueue详解\n* LinkedBlockingDeque详解\n\n#### 4.3 java内存模型\n\n##### 4.3.1 线程通信机制\n\n* 内存共享\n* 消息传递\n\n##### 4.3.2 内存模型\n\n* 重排序\n* 顺序一致性\n* happens-before\n* as-if-serial\n* 双重检查锁\n* final内存语义\n\n##### 4.3.3 synchronized\n\n* 锁对象\n  * 普通同步方法，锁是当前实例对象\n  * 静态同步方法，锁是当前类的class对象\n  * 同步方法块，锁是括号里面的对象\n* 实现机制\n  * Java对象头\n  * monitor\n* 锁优化\n  * 轻量级锁\n  * 重量级锁\n  * 锁消除\n  * 锁粗化\n  * 偏向锁\n* 使用方式\n  * 普通同步方法，锁是当前实例对象\n  * 静态同步方法，锁是当前类的class对象\n  * 同步方法块，锁是括号里面的对象\n\n##### 4.3.4 volatile\n\n* 原子性\n* 可见性\n* 禁止重排序\n* 实现机制\n\n#### 4.4 线程池\n\n##### 4.4.1 Executors\n\n* newCachedThreadPool\n* newFixedThreadPool\n* newScheduledThreadPool\n* newSingleThreadExecutor\n\n##### 4.4.2 ThreadPoolExecutor\n\n* 构造参数含义\n* 任务提交\n* 任务执行\n* 线程池调优\n* 线程池监控\n* 底层原理实现\n\n##### 4.4.3 ScheduledThreadPoolExecutor\n\n* 构造参数含义\n* 底层原理实现\n* 日常开发注意问题\n\n##### 4.4.4 Future\n\n* 异步计算\n* FutureTask\n* 内部基于AQS实现\n\n##### 4.4.5 线程间通信\n\n* 内存共享\n* 线程之间共享程序的公共状态,通过读和写内存中的公共状态进行隐式通信\n* 线程之间必须通过发送消息来现实进行通信\n\n#### 4.5 并发集合\n\n* ConcurrentHashMap原理、源码、实战详解\n* ConcurrentLinkedQueue原理、源码、实战详解\n* ConcurrentSkipListMap原理、源码、实战详解\n* ConcurrentSkipListSet原理、源码、实战详解\n* ArrayList、LinkedList与CopyOnWriteArrayList详解\n* HashMap与ConcurrentHashMap源码剖析\n* Set与CopyOnWriteArraySet详解\n\n#### 4.6 原子操作\n\n##### 4.6.1 基本类型\n\n* AtomicInteger:原子更新整形类型\n* AtomicLong:原子更新长整型类型\n* AtomicBoolean:原子更新boolean类型\n\n##### 4.6.2 数组\n\n* AtomicIntegerArray:原子更新整形数组里的元素\n* AtomicLongArray:原子更新长整型数组里的元素\n* AtomicReferenceArray:原子更新引用类似数组里的元素\n\n##### 4.6.3 引用类型\n\n* AomicRefernce:原子更新引用类型\n* AtomicReferenceFieldUpdater:原子更新引用类型里的字段\n* AtomicMarkableReference:原子更新带有标记为的引用类型\n\n##### 4.6.4 字段类型\n\n* AtomicIntegerFieldUpdater:原子更新整形的字段的更新器\n* AtomicLongFieldUpdater:原子更新长整型字段的更新器\n* AtomicStampedReference:原子更新电邮版本号的引用类型\n\n### 5 框架源码专题\n\n#### 5.1 应用框架Spring\n\n##### 5.1.1 Spring IOC源码剖析\n\n* 整体认知spring 体系结构\n* 理解Spring IOC 容器设计原理\n* 掌握Bean生命周期\n * 初始化InitializingBean/@PostConstruct\n * Bean的后置处理器BeanPostProcessor源码分析\n * 销毁DisposableBean/@PreDestroy\n* Spring Context 装载过程源码分析\n * BeanFactoryPostProcessor源码分析\n * BeanDefinitionRegistryPostProcessor源码分析\n* Spring IOC 循环依赖问题源码深度剖析\n* Factorybean与Beanfactory区别\n\n##### 5.1.2 Spring Aop源码剖析\n\n* 掌握Spring AOP 编程概念\n* AOP注解编程\n * @EnableAspectJAutoProxy\n * @Before/@After/@AfterReturning/@AfterThrowing/@Around\n * @Pointcut\n* 基于Spring AOP 实现应用插件机制\n* Spring AOP源码分析\n * ProxyFactory源码解析\n * AOP代理源码解析\n * 拦截器链与织入源码解析\n* Spring事务控制与底层源码分析\n * @EnableTransactionManagement源码剖析\n * @Transactional源码剖析\n\n##### 5.1.3 Spring MVC源码剖析\n\n* 理解MVC设计思想\n* 从DispatchServlet 出发讲述MVC体系结构组成\n* 基于示例展开DispatchServlet 核心类结构\n* MVC初始化及执行流程源码深度解析\n* RequestMaping源码实现解析\n* 熟悉MVC组件体系\n * 映射器原理实现\n * 执行适配器原理实现\n * 视图解析器原理实现\n * 异常捕捉器原理实现\n\n##### 5.1.4 Spring注解式开发\n\n* @Bean/@ComponentScan/@Configuration/@Conditional\n* @Component/@Service@/Controller/@Repository\n* @Lazy/@Scope/@Import/@Value/@Profile\n* @Autowired/@Resources/@Inject\n\n##### 5.1.5 Spring 5新特性\n\n* 新特性详解\n* 响应式编程模型\n* 函数式风格的ApplicationContext\n* Kotlin表达式的支持\n* SpringWebFlux模块讲解\n\n##### 5.1.6 Spring Security原理与源码剖析\n\n* 快速入门与高级应用\n* 核心安全过滤器源码剖析\n* 会话管理源码剖析\n* 命名空间配置源码剖析\n* 授权体系结构源码剖析\n* Outh1.0与Outh2.0协议详解\n\n##### 5.1.7 Spring Webflux详解\n\n* Webflux快速入门\n* 响应式编程实战\n* JDK响应式流编程实战\n* Reactive Stream 响应式流详解\n* Webflux服务端开发详解\n* Webflux客户端声明式rest client框架开发讲解\n\n#### 5.2 ORM框架MyBatis\n\n##### 5.2.1 MyBatis快速掌握\n\n* MyBatis、Hibernate及传统JDBC对比\n* Mybatis全局参数详解\n* 详解configuration 、properties、 settings、 typeAliases、 mapper\n* 掌握xml和annotations和Criteria差异\n\n##### 5.2.2 Mybatis源码分析\n\n* 整体认识mybatis源码结构\n* Mybatis核心应用配置与原理解析\n* Spring与MyBatis集成源码剖析\n* Configuration、Mapper、SqlSession、Executor源码解析\n\n##### 5.2.3 Mybatis徒手实现\n\n* 熟悉MyBatis内部运行机制\n* 熟悉MyBatis初始化过程\n* 源码debug一行行详细讲解\n* MyBatis二级缓存应用\n* 手写实现一套mybatis框架\n\n### 6 分布式框架专题\n\n#### 6.1 分布式消息中间件\n\n##### 6.1.1 Rabbitmq\n\n* RabbitMq概述与集群高可用环境搭建\n* RabbitMq工作模式深度详解\n* RabbitMq路由机制与镜像机制\n* RabbitMq消息防丢失与削峰限流\n* 死信队列与延时队列详解\n* 消息防重复消费与消息积压快速处理\n* RabbitMq与Spring、Springboot整合\n\n##### 6.1.2 RocketMq\n\n* 解密RocketMq集群部署与快速入门\n* 深入分析RocketMq模块划分与集群原理讲解\n* 详解普通消息、顺序消息、事务消息、定时消息\n* 深入RocketMq Broker、Consumer、Producer源码剖析\n* 详解RocketMq监控与运维\n* 企业实战RocketMq消息中间件API架构开发\n\n##### 6.1.3 Kafka\n\n* Kafka发展介绍与对比\n* Kafka集群搭建与使用\n* Kafka副本机制与选举原理详解\n* Kafka架构设计原理分析\n* 基于Kafka的大规模日志系统实现原理分析\n* 亿级流量生产系统Kafka性能优化最佳实践\n\n#### 6.2 分布式储存中间件\n\n##### 6.2.1 Redis\n\n* Redis核心数据结构剖析\n* Redis在微博，微信及电商场景典型应用实践\n* Redis持久化机制与安全机制详解\n* Redis主从及哨兵架构详解\n* Redis Cluster集群架构实战及原理剖析\n* 集群数据分片算法及动态水平扩容详解\n* Jedis、Redisson客户端源码剖析\n* Redis高并发分布式锁实战\n* Redis缓存穿透，缓存失效，缓存雪崩实战解析\n* Redis布隆过滤器实现\n* Redis缓存设计与性能优化\n\n##### 6.2.2 MongoDB\n\n* MongoDB基础概念数据库、集合、索引及文档详解\n* MongoDB高可用集群搭建实战\n* MongoDB性能优化最佳实践\n\n##### 6.2.3 FastDFS\n\n* FastDFS应用背景和原理介绍\n* FastDFS文件存储项目实战\n* FastDFS分布式部署实战\n\n##### 6.2.4 Elasticsearch\n\n* ElasticSearch快速入门实战与底层原理剖析\n* DSL高级语法与高可用架构实战\n* ElasticSearch集群架构原理与源码剖析\n* ElasticSearch数据建模与性能调优\n* ELK、FileBeat企业级架构与面试剖析\n* 亿级流量电商系统搜索实战\n\n#### 6.3 分布式框架\n\n##### 6.3.1 Zookeeper\n\n* Zookeeper快速入门\n* Zookeeper多节点集群部署实战\n* Zookeeper典型应用场景实战\n * 服务注册与订阅\n * 分布式配置中心\n * 分布式锁\n* Zookeeper中znode、watcher、ACL、客户端API详解\n* Zookeeper客户端服务端源码剖析\n* Zookeeper集群leader选举源码剖析\n* Zookeeper集群ZAB协议源码剖析\n* Zookeeper迁移、扩容、监控详解\n\n##### 6.3.2 Dubbo\n\n* Dubbo框架介绍与手写模拟Dubbo\n* Dubbo的基本应用与高级应用\n* Spring与Dubbo整合原理与源码分析\n* Dubbo的可扩展机制SPI源码解析\n* Dubbo容错机制与高扩展性分析\n* Dubbo RPC协议底层原理与实现\n* Dubbo服务导出源码解析\n* Dubbo服务引入源码解析\n* Dubbo服务调用源码解析\n* Dubbo负载均衡源码解析\n\n##### 6.3.3 ShardingSphere\n\n* 数据读写分离及分库分表场景详解\n* 常见数据分片算法hash、list、range、tag详解\n* 常见数据库中间件Mycat和ShardingSphere对比\n* 解密Sharding-jdbc核心概念与快速开始\n* 深入Sharding-jdbc特性详解与模块划分\n* 实战订单交易中orders和ordersItem分库分表开发\n* 深入Sharding-jdbc源码之sql解析、sql路由、sql改写、sql执行、结果合并\n\n##### 6.3.4 Netty\n\n* 网络与IO模型基础进阶\n * HTTP请求与响应格式详解\n * HTTP重定向与转发详解\n * Cookie机制详解\n * HTTP缓存控制与代理服务详解\n * HTTPS 与 SSL/TLS详解\n * 对称加密与非对称加密、数字签名与证书详解\n * 七层网络协议详解\n * ТСР协议与流量控制详解\n * TCP协议可靠性是如何保障的\n * Socket与文件描述符详解\n * Socket与Tcp协议、Http协议的关系\n * Socket底层实现原理详解 \n* BIO、NIO及AIO线程模型详解\n* Netty线程模型及源码剖析\n* 高性能序列化协议protobuf及源码分析\n* 粘包拆包现象及解决方案、编解码器源码分析\n* Netty心跳机制源码剖析\n* 直接内存与Netty零拷贝详解\n* Netty之Http协议开发应用实战（仿斗鱼弹幕系统实现）\n* Netty之WebSocket协议开发应用实战（贪吃蛇多人联机网游实现）\n\n#### 6.4 微服务系列专题\n\n##### 6.4.1 微服务架构变迁史\n\n* 淘宝电商微服务架构变迁史\n* 京东电商微服务架构变迁史\n\n##### 6.4.2 Spring Boot详解及源码剖析\n\n* Spring boot 快速开始及核心配置详解\n* Spring boot 部署方式及热部署详解\n* Web开发模板引擎Thymeleaf及Freemarker详解\n* Spring Boot集成Mybatis，Redis，RabbitMq等三方框架\n* Spring Boot启动过程源码分析\n* Spring Boot自动装配源码分析\n\n##### 6.4.3 Spring Cloud Alibaba详解及源码剖析\n\n###### 6.4.3.1 Nacos 注册中心详解及源码分析\n\n* 服务注册与发现详解及源码剖析\n* 服务心跳与下线详解及源码剖析\n* 服务健康检查详解及源码剖析\n* Nacos集群架构实战及源码剖析\n* Nacos集群节点间服务数据同步详解及源码剖析\n* Nacos集群架构CAP原理详解\n  * AP架构详解\n  * CP架构详解\n    * 集群脑裂问题及解决方案\n* Nacos源码高并发设计精髓\n  * 防止读写并发冲突CopyOnWrite设计思想\n  * 异步任务及内存队列有效提升系统并发\n  * 异步批量同步集群节点数据有效提升系统性能\n* 阿里云超大规模微服务注册中心设计架构详解\n\n###### 6.4.3.2 Nacos 配置中心实战及源码分析\n\n* Nacos配置中心架构剖析\n* Nacos配置中心使用详解\n  * 多环境切换及配置共享\n    * 支持profile粒度的配置\n    * 支持自定义 namespace 的配置\n    * 支持自定义 Group 的配置\n    * 支持自定义扩展的 DataId 配置\n  * 运行时配置动态刷新及服务热加载\n  * 高可用分布式配置中心实战\n* Nacos Config Client源码分析\n  * Client端从配置中心获取配置源码分析\n  * Client动态感知配置中心配置变更源码分析\n  * Spring整合Nacos实现配置更新源码分析\n* Nacos Config Server源码分析\n  * 服务端是配置推送源码分析\n  * 配置持久化源码分析\n  * 集群架构下其他节点同步配置数据源码分析\n\n###### 6.4.3.3 LoadBalancer 客户端负载均衡器实战\n\n* LoadBalancer替换Ribbon配置\n* RestTemplate整合LoadBalancer\n* WebClient整合LoadBalancer\n\n###### 6.4.3.4 Ribbon 客户端负载均衡详解及源码分析\n\n* Ribbon服务发现及客户端缓存源码剖析\n* Ribbon客户端负载均衡源码剖析\n  * 轮询策略\n  * 随机策略\n  * 最小并发策略\n  * 响应时间加权策略\n  * 重试策略\n  * 权重策略\n* 自定义扩展Ribbon客户端负载均衡算法\n* Ribbon框架源码设计缺陷及优化\n\n###### 6.4.3.5 Feign 声明式服务调用详解及源码分析\n\n* Fegin的设计架构剖析\n* Fegin自定义相关配置使用详解\n  * 日志配置\n  * 契约配置\n  * 拦截器配置，自定义拦截器\n  * 超时时间配置\n  * 客户端组件Apache HttpClient \u0026 OkHttp配置\n  * GZIP 压缩配置\n  * 编码器解码器配置\n  * 如何实现Feign到Dubbo的无缝迁移\n* Feign 方法参数拼接Http请求源码剖析\n* Feign 整合Ribbon源码剖析\n* Spring整合Fegin源码剖析\n\n###### 6.4.3.6 Sentinel 限流降级熔断详解及底层源码分析\n\n* 限流源码剖析\n  * 限流类型详解及源码剖析\n    * QPS限流源码剖析\n    * 线程数限流源码剖析\n  * 限流模式详解及源码剖析\n  * 限流效果详解及源码剖析\n    * 请求快速失败\n    * 请求预热\n    * 请求排队\n  * 限流算法详解及源码剖析\n    * 计数器限流\n    * 滑动时间窗口限流源码剖析\n    * 令牌桶限流源码剖析\n    * 漏桶限流源码剖析\n* 熔断降级源码剖析\n  * 服务断路器设计思想及源码剖析\n    * 接口平均响应时间超时熔断源码剖析\n    * 接口异常比例过高熔断源码剖析\n    * 接口异常数过多熔断源码剖析\n  * 服务降级注解自动化配置源码剖析\n* 热点限流规则源码剖析\n  * 秒杀场景指定热点参数限流实现\n* 系统负载限流源码剖析\n  * 系统级负载Load限流\n  * 系统级平均响应时间限流\n  * 系统级线程数限流\n  * 系统级QPS限流\n  * 系统CPU使用率限流\n  * 系统黑白名单授权规则限流\n* Sentinel网关限流源码剖析\n* Sentinel规则持久化实战及其源码分析\n  * 原始模式下规则推送的源码分析\n  * Sentinel规则持久化扩展点分析\n  * Sentinel控制台改造\n  * 拉模式实现及其源码分析\n    * 动态规则扩展之读写数据源的实现\n    * 客户端拉模式规则持久化实战\n    * 拉模式改造之整合Spring Cloud\n* 推模式实现及其源码分析\n  * 基于Nacos配置中心控制台推送规则实战\n  * 基于Nacos控制台的推模式持久化源码分析\n  * Sentinel控制台改造\n  * 基于Sentinel控制台推送规则实战\n  * Sentinel推模式整合Spring Cloud\n* Spring整合Sentinel源码剖析\n\n###### 6.4.3.7 Seata 微服务分布式事务详解及源码分析\n\n* Seata AT,XA,TCC,Saga区别\n* Seata AT模式多数据源，微服务下使用详解\n* Seata全局事务注册源码剖析\n* Seata分支事务客户端注册源码剖析\n* Seata分支事务客户端全局锁冲突自旋设计原理剖析\n* Seata分支事务服务端全局锁设计源码剖析\n* Seata全局事务提交源码剖析\n* Seata全局事务回滚源码剖析\n* Seata分支事务第二阶段异步提交源码剖析\n* Seata分支事务第二阶段生成反向Sql执行回滚源码剖析\n* Spring整合Seata源码剖析\n\n###### 6.4.3.8 Gateway 统一网关详解及源码剖析\n\n* Gateway核心概念和工作原理分析\n* Gateway使用详解\n  * RoutePredicateFactories路由断言工厂配置\n  * RoutePredicateFactories路由断言工厂配置\n  * GlobalFilters全局过滤器配置\n  * Gateway Cors跨域配置\n  * Gateway整合Sentinel限流实战\n  * Gateway网关高可用部署\n* Gateway扩展\n  * 服务动态路由\n  * 服务统一限流熔断\n  * 服务统一缓存\n  * 服务统一授权认证\n  * 服务统一性能监控\n  * 服务统一灰度发布\n* Gateway源码剖析\n  * WebFlux核心请求流程分析\n  * Gateway整合WebFlux源码分析\n  * GateWay路由匹配核心源码分析\n  * GateWay请求过滤器链源码分析\n  * 整合Ribbon核心源码分析\n  * 请求转发到下游微服务源码分析\n\n###### 6.4.3.9 Skywalking链路追踪组件实战\n\n* Skywalking整体架构剖析\n* Skywalking使用详解\n  * Skywalking OAP\u0026UI服务搭建\n  * 告警通知配置\n  * 基于mysql/elasticsearch跟踪数据持久化\n  * @Trace自定义链路追踪\n  * Skywalking集成日志框架\n  * Skywalking集群部署\n* 进阶扩展：Java Agent实战\n\n###### 6.4.3.10 Spring Security OAuth2微服务安全实战\n\n* 微服务API安全机制详解\n* 微服务安全之Oauth2协议详解\n  * Oauth2介绍\u0026常用场景分析\n  * Oauth2设计思路详解\n  * 客户端四种授权模式详解\n* 微服务安全之传统Session的认证与授权\n* 微服务安全之Token机制的认证与授权\n* JWT安全认证方案详解\n* 微服务接入网关实现SSO\n\n##### 6.4.4 Spring Cloud Netflix详解及源码剖析\n\n* Eureka服务注册与发现详解及源码分析\n* Ribbon 客户端负载均衡详解及源码分析\n* Fegin 声明式服务调用详解及源码分析\n* Hystrix实现服务限流，降级，熔断详解及源码分析\n* Hystrix实现自定义接口降级,监控数据及监控数据聚合\n* Zuul统一网关详解，服务路由，过滤器使用及源码分析\n* 分布式配置中心Config详解\n* 分布式链路跟踪Sleuth详解\n\n### 7 项目实战专题\n\n#### 7.1 亿级流量微服务电商中台\n\n##### 7.1.1 电商核心中台架构整体设计\n\n* 淘宝电商后端架构变迁史\n* 京东电商后端架构变迁史\n* 阿里小前台大中台架构详解\n  * 业务中台\n  * 技术中台\n  * 数据中台\n* 领域驱动模型DDD设计\n  * DDD基本概念介绍\n  * DDD分层架构与微服务之间的关系\n  * DDD与中台架构的关系\n  * DDD小范围落地实战\n\n##### 7.1.2 基于Spring Cloud微服务架构拆分\n\n* 会员服务\n  * 详解电商平台会员模块介绍、配置详解\n  * 详解电商平台会员业务与技术实现\n  * 解密电商平台SSO单点跨域详解\n  * 解密电商平台会员数据库分库分表\n* 商品服务\n  * 详解电商平台商品模块介绍、配置详解\n  * 详解电商平台商品模块业务与技术实现\n  * 解密电商平台商品详细页静态化与缓存\n* 订单服务\n  * 详解电商平台订单模块介绍、配置详解\n  * 详解电商平台订单业务与技术实现\n  * 解密订单分布式事务、幂等性、重复消费问题\n  * 秒杀库存分布式锁实战\n* 支付服务\n  * 支付宝支付功能实战\n  * 微信支付功能实战\n  * 商家对账功能详解\n* 营销服务\n  * 优惠券功能设计与实现\n  * 满减优惠活动设计与实现\n  * 团购优惠活动设计与实现\n* 后台服务\n  * 电商管理后台模块详解\n  * 后台系统权限、资源、账号、角色关系及技术实现\n\n##### 7.1.3 电商平台技术解决方案\n\n##### 7.1.3.1 分布式解决方案\n\n* 分布式锁\n  * Mysql实现\n  * Redis实现\n  * Zookeeper实现\n* 分布式事务\n  * 基于2PC/3PC实现\n    * Atomic框架\n  * 基于消息队列实现\n    * Rabbitmq\n    * Rocketmq\n  * 基于蚂蚁金服TCC方案实现\n    * Tcc-transaction框架\n    * Bytetcc框架\n  * 基于阿里巴巴Seata方案实现\n* 分布式调度中心\n  * Quartz框架\n  * xxl-job框架\n  * TBSchedule框架\n* 分布式配置中心\n  * 阿里巴巴Nacos框架\n  * Spring Cloud Config\n  * Apollo框架\n* 分布式全局序列号\n  * 雪花算法详解与不足详解\n  * 基于Redis自研分布式主键ID详解\n* 分布式Session\n  * Spring Session\u0026JWT实现\n* 海量数据分库分表\n  * 基于ShardingSphere实战订单分库分表\n  * 基于Redis自研分布式主键ID详解\n  * 永不扩容的订单表方案实战\n* 商品搜索\n  * 基于Elasticsearch实战商品搜索\n  * 多分类、多品牌、多属性、多规格等分词搜索实战\n\n##### 7.1.3.2 高并发秒杀系统实现\n\n* Redis与JVM多级缓存架构\n  * 亿级流量商品详情页Openresty多级缓存架构方案实战\n  * 缓存穿透、缓存失效、缓存雪崩及热点缓存重建优化及实战\n* 消息中间件流量削峰与异步处理\n* 限流策略实现\n  * Nginx限流\n  * 计数器 \n  * 滑动时间窗口 \n  * 令牌桶、漏桶算法 \n  * Sentinel/Hystrix限流\n* 全链路电商压测\n  * 基于电商正向流程全链路压测实战\n  * 基于逆向流程全链路压测实战\n* 性能调优实战\n  * 高并发场景JVM GC调优实战\n  * 高并发场景Mysql调优实战\n  * 高并发场景Tomcat调优实战\n  * 高并发场景Nginx调优实战\n* 性能监控\n  * 监控系统Prometheus使用详解\n  * 监控报警系统Grafana图表配置及异常报警\n  * Prometheus+Grafana 监控电商系统各项性能指标\n* 秒杀商品详细页多级缓存架构实战\n  * 基于静态化CDN加速方案详解\n  * 基于Redis本地cache方案详解\n  * 基于OpenResty lua脚本缓存方案详解\n* 秒杀交易全链路架构实战\n  * 秒杀下单系统安全防刷策略实现\n  * 大促下单高峰服务降级实现详解\n  * 订单场景分布式事务实战\n\n##### 7.1.3.3 集群上云\n\n* 虚拟容器技术详解\n  * 虚拟服务之Docker\n    * Docker的镜像，仓库，容器详解\n    * 快速开始搭建Docker环境\n    * DockerFile使用详解\n    * DockerCompose集成式应用组合\n    * Docker服务编排实现\n  * Kubernetes容器管理\n    * Kubernetes介绍与快速开始\n    * Kubernetes对象\u0026Master组件\u0026Node节点详解\n    * Kubernetes生产集群环境搭建与使用\n  * 电商中台项目云服务部署\n    * 项目整体Docker容器化部署\n    * 项目整体Kubernetes集群部署\n  * 秒杀系统项目云服务部署\n    * 项目整体Docker容器化部署\n    * 项目整体Kubernetes集群部署\n\n#### 8.2 BAT内部自研分布式调用链中间件\n\n* 分布示调用链简介与发展史\n* 调用链平台概要设计\n* Javassist、字节码插桩、JavaAGENT\n* 埋点采集\n  * 采集点为：Dubbo、Jdbc Driver、Spring\n  * 采集点为：Tomcat、Http、Redis\n* Classloader深入加载机制\n* 深入分析调用链中Threadlocal、Threadpool应用\n* 分布式环境部署与问题排查\n\n#### 8.3 秒杀系统实现\n\n#### 8.4 拼团系统实现\n\n### 9 互联网工具专题\n\n#### 9.1 Git\n\n* 整体认知GIT体系结构\n* Git客户端与服务端快速搭建\n* Git的核心命令详解\n* Git企业应用最佳实践\n\n#### 9.2 Maven\n\n* Maven生命周期详解\n* Maven插件体系详解\n* Maven核心命令详解\n* Maven的pom配置体系详解\n* Nexus私服搭建实战\n\n#### 9.3 Jenkins\n\n* 整体认知Jenkins体系结构\n* Jenkins如何做持续集成\n* Jenkins搭建及使用详解\n* Jenkins插件体系详解\n\n#### 9.4 Linux\n\n* Linux原理、启动、整体架构讲解\n* Linux运维常用命令实战\n* Linux用户与权限讲解\n* Shell脚本编程实战\n\n#### 9.5 虚拟容器\n\n##### 9.5.1 Docker\n\n* Docker的镜像，仓库，容器详解\n* 快速开始搭建Docker环境\n* DockerFile使用详解\n* DockerCompose集成式应用组合\n* Docker服务编排实现\n\n##### 9.5.2 Kubernetes\n\n* Kubernetes介绍与快速开始\n* Kubernetes对象\u0026Master组件\u0026Node节点详解\n* Kubernetes生产集群环境搭建与使用\n\n### 10 区块链技术\n\n### 10.1 区块链技术基础\n\n* 项目架构与技术点讲解\n* 区块链原理整体介绍\n\n##### 10.2.1 区块链整体结构设计与实现\n\n* 共识机制\n* 工作量证明原理\n* 挖矿算法\n\n##### 10.2.2 密码学\n\n* 对称加密\n* 哈希(hash)加密\n* 非对称加密\n* 数字签名\n\n##### 10.2.3 比特币钱包的设计与实现\n\n* 钱包结构\n* 钱包转账\n* 钱包余额\n\n##### 10.2.3 比特币交易的设计与实现\n\n* 比特币交易UTXO\n* 比特币余额\n\n##### 10.2.4 P2P去中心化网络设计与实现\n\n* 区块链P2P网络\n* 网络节点发现\n* 网络节点通讯\n* 区块广播\n* 交易广播\n\n### 11 源码中的优秀设计模式\n\n#### 11.1 设计原则\n\n* 开闭、单一职责及里氏替换原则\n* 依赖倒置、接口隔离、合成复用原则\n* 迪米特法则\n\n#### 11.2 创建型模式\n\n* 工厂方法、抽象工厂及单例模式\n* 建造者与原型模式\n\n#### 11.3 结构型模式\n\n* 适配器、装饰器及代理模式\n* 外观、桥接、组合及享元模式\n\n#### 11.4 行为型模式\n\n* 模板方法、策略及观察者模式\n* 迭代器、责任链、命令及中介者模式\n* 备忘录、状态、访问者及解释器模式\n\n#### 11.5 设计模式对比及应用场景\n\n* 线程池的单例模式实现\n* 电商优惠促销策略模式实现\n* AOP底层代理模式实现\n* RedisTemplate、JdbcTemplate模板模式实现\n* Zookeeper监听器观察者模式实现\n* 微服务网关鉴权责任链模式实现\n* 多级缓存架构装饰器模式实现\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003ch2 id=\"anchor_point_4\"\u003ePython架构师\u003c/h2\u003e\n\u003cbr/\u003e\n\n### 1 Python基础\n\n#### 1.1 Python入门\n\n* 基本数据类型\n* 序列\n* 运算\n* 缩进和选择\n* 循环\n* 函数\n* 面向对象及扩展\n\n#### 1.2 Python进阶\n\n* 词典\n* 文本文件的输入输出 \n* 模块 \n* 函数的参数传递 \n* 循环设计 \n* 循环对象 \n* 函数对象 \n* 错误处理 \n\n#### 1.3 Python高级语法和底层实现\n\n* 特殊方法与多范式\n* 上下文管理器\n* 对象的属性\n* 闭包\n* 装饰器\n* 内存管理\n      \n#### 1.4 Python标准库\n\n* 正则表达式 (re包)\n* 时间与日期 (time, datetime包)\n* 路径与文件 (os.path包, glob包)\n* 文件管理 (部分os包，shutil包)\n* 存储对象 (pickle包，cPickle包)\n* 子进程 (subprocess包)\n* 信号 (signal包)\n* 多线程与同步 (threading包)\n* 进程信息 (部分os包)\n* 多进程初步 (multiprocessing包)\n* 多进程探索 (multiprocessing包)\n* 数学与随机数 (math包，random包)\n* 循环器 (itertools)\n* 数据库 (sqlite3)\n      \n### 2 web进阶-Flask框架\n\n#### 2.1 路由及视图\n\t\t\t\nF1ask相关配置参数\n视图常用逻辑\n异常捕获\n请求勾子\n状态保持\n上下文\n      \n#### 2.2 模板\n\n* Jinja2模板的使用\n* 过滤器\n* 控制代码块\n* 模板代码复用\n* 特有变量和函数\n* Flask_WTF表单\n* CSRF\n\n#### 2.3 数据库\n\n##### 2.3.1 Mysql数据库\n\n* 增删改查\n\n##### 2.3.2 redis数据库\n\n* 数据类型\n* 增、删、改、查\n\n##### 2.3.3 F1ask-SQLALchemy配置\n##### 2.3.4 数据库的基础操作\n##### 2.3.5 管理系统\n* 定义模型\n* 数据库表创建\n* 数据显示\n* 表单验证\n* 删除数据\n##### 2.3.6 多对多演练\n##### 2.3.7 数据库迁移信号机制\n\n#### 2.4 蓝图\n\t\t\t\n* 模块化\n* B1ueprint初识蓝图\n* 运行机制\n* 蓝图url前缀\n* 注册静态路由\n* 设置模板目录\n      \n### 3 web架构―Django框架\n\n#### 3.1 Django框架基本使用\n\t\t\t\n* Web应用机制和术语\n* Django起源\n* Django初体验\n* Django工程创建\n* 子应用创建\n* 创建视图\n\n#### 3.2 深入模型\n\t\t\t\n* redis数据库\n\t* 数据类型\n\t* 增﹑删、改﹑查\n* 配置关系型数据库MysQL\n* 利用Django后台管理模型\n* 使用ORM完成模型的CRUD操作\n* 模型定义与字段使用实践\n\n#### 3.3 静态资源和Ajax请求\n\t\t\t\n* 加载静态资源\n* Ajax请求\n* Cookie\n* Session\n\n#### 3.4 表单的应用\n\t\t\t\n* 注册登录功能\n\n#### 3.5 中间件的应用\n\t\t\t\n* 实现登录验证\n* Django中间件概述\n* 自定义中问件\n\n#### 3.6 前后端分离开发入门\n\t\t\t\n* 返回JSON格式的数据\n* 使用Vue.js渲染页面\n\n#### 3.7 RESTfu1架构和DRF\n\t\t\t\n* RESTful设计方法\n* DRF安装与配置\n* Serializer序列化器\n* 模型类序列化器\n* 视图集ViewSet\n\n#### 3.8 Django Channe1s和Ce1ery示例\n#### 3.9 提高页面加载速度优化图像\n\n* 使用Sor1在服务器端动态调整图像大小\n* 使用Srcset和Sizes响应执行\n\n#### 3.10 提高页面加载速度优化图像\n\n* 使用Kubernetes使Django应用变得可扩展并具有弹性\n* 传统的基于虚拟机cVM的部署存在有些问题\n* 谷歌容器引擎应用上实例\n* 预备步骤\n* 创建及发布Docker容器\n* 部署这些容器到Kubernetes集群\n\n#### 3.11 异步任务和定时任务\n#### 3.12 单元测试\n#### 3.13 日志文件\n\n### 4 Web网页开发\n\n#### 4.1 项目准备\n\n* 开发流程\n* 需求分析\n* 项目架构\n* 工程创建\n* 项目配置\n\n#### 4.2 用户部分\n\t\t\t\n* 图片验证码\n* 短信验证码\n* 跨域cORS\n* JWT登录\n* 用户中心\n* 邮箱与验证\n* 收货地址\n   \n#### 4.3 商品部分\n\t\t\t\n* 数据表的设计\n* FastDFS\n* Docker容器\n* 分布式文件系统\n* 富文本编辑器\n* 添加测试数据\n* 定时任务页面\n* 静态化商品详情\n* 商品列表页\n* 商品搜索\n* 用户访问历史\n\n#### 4.4 购物车部分\n\n* 购物车数据库的设计\n* 购物车增加\n* 购物车查询\n* 购物车修改\n* 购物车删除\n* 购物车全选\n* 登录合并购物车\n      \n#### 4.5 订单部分\n\t\t\t\n* 订单数据库设计\n* 订单结算\n* 保存订单\n* 下单成功\n      \n#### 4.6 支付宝支付\n\n* 接入支付宝\n* 发起支付\n* 保存支付结果\n\n#### 4.7 Xadmin\n#### 4.8 用户权限控制\n#### 4.9 数据库读写分离\n#### 4.10 项目部署\n      \n### 5 爬虫框架\n\n#### 5.1 网络爬虫和相关工具\n\n##### 5.1.1 网络爬虫\n\n* 爬虫的应用领域\n* 合法性和背景调研\n\t* 爬虫合法性探讨\n\t* Robots.txt文件\n\n##### 5.1.2 相关工具\n\n* HTTP协议\n* 谷歌浏览器内置的开发者工具\n* POSTMAN\n* 命令行HTTP客户端\n\n##### 5.1.3 相关工具\n\n* 处理相对链接\n* 设置代理服务\n* 限制下载速度\n* 避免爬虫陷阱\n* SSL相关问题\n\n#### 5.2 数据采集和解析\n\n##### 5.2.1 HTML页面分析\n##### 5.2.2 使用requests获取页面\n##### 5.2.3 四种采集方式\n\n* 正则\n* PyQuery\n* Beautiful\n* lxml\n\n##### 5.2.4 获取知乎发现上的问题链接\n\n#### 5.3 缓存知乎发现上的链接和页面代码\n\n#### 5.4 并发下载\n\n* 多线程和多进程回顾\n* 分布式进程\n* 协程和异步I/0\n* 多线程爬取随机网页所有页面\n\n#### 5.5 解析动态内容\n\n* Javascript逆向工程\n* 使用Se1enium\n* 爬虫逆向解析 - js解析动态内容\n\n#### 5.6 表单交互和验证码处理\n\n##### 5.6.1 提交表单\n\n* 手动提交\n* 自动提交\n\n##### 5.6.2 验证码处理\n\n* 光学字符识别\n\n#### 5.7 常见反爬策略及应对方案\n\n* 构造合理的HTTP请求头\n* 检查网站生成的Cookie\n* 抓取动态内容\n* 限制爬取的速度\n* 处理表单中的隐藏域\n* 处理表单中的验证码\n* 绕开\"陷阱\"\n* 隐藏身份\n\n#### 5.8 scrapy爬虫框架\n\n* 数据处理流程\n* 安装和使用Scrapy\n* XPath语法\n* 在Chrome浏览器中查看元素XPath语法\n\n#### 5.9 scrapy爬虫框架高级应用\n\n* Spider的用法\n* 中间件的应用\n\t* 下载中间件\n\t* 蜘蛛中间件\n\t* scrapy对接Se1enium\n\t* scrapy部署到Docker\n\n#### 5.10 Scrapy爬虫框架分布式实现\n\n* Scrapy分布式实现\n* Scrapyd分布式部署\n\n### 6 Python架构师\n\n#### 6.1 自动化运维\n\n##### 6.1.1 shell基础\n\n* shell快速入门\n* shell执行方式\n* shell脚本\n* shell开发规范\n* shell变量\n\t* 本地变量\n\t* 全局变量\n\t* 内置变量\n\n##### 6.1.2 shell进阶\n\n* 验证方式\n\t* 用户密码验证\n\t*基于秘钥等验证\n* 条件表达式\n* 计算机表达式\n* 常见符号\n* 常见命令\n\n##### 6.1.3 shell流程控制\n\n* if语句\n\t* 单分支\n\t* 双分支\n\t* 多分支\n* 函数\n\t* 函数的定义\n\t* 函数参数的规则\n\n##### 6.1.4 环境部署\n\n* 基础目录环境\n* 主机网络环境\n* 方案定制\n* 虚拟环境分析\n* 软件安装\n* 环境部署\n* nginx\n\t* nginx基本操作\n\t* nginx代理项目配置\n\n##### 6.1.5 代码发布\n\n* 代码发布应用场景\n* 代码发布方式\n\n##### 6.1.6 手工代码发布\n\n* 方案分析\n* 方案实施\n\n##### 6.1.7 脚本代码发布\n\n* 固定变化\n* 固定函数\n* 远程执行\n* 脚本框架\n* 脚本参数\n* 安全脚本发布\n\n#### 6.2 数据分析\n\n##### 6.2.1 数据分析基础\n\n* 为什么要使用Python进行数据分析\n* 重要的Python库\n* IPython和Jupyter\n* SciPy\n* scikit-1earn\n* statsmode1s\n* 安装和设置\n\n#### 6.2.2 NumPy基础\n\n##### 6.2.2 数组和矢量计算\n\n* NumPy简介\n* NumPy的ndarray:一种多维数组对象\n* 创建ndarray\n* ndarray的数据类型\n* NumPy数组的运算\n* 基本的索引和切片\n* 布尔型索引\n* 数组转置和轴对换\n* 通用函数:快速的元素级数组函数\n* 利用数组进行数据处理\n* 将条件逻辑表述为数组运算\n* 数学和统计方法\n* 示例:随机漫步\n\n#### 6.3 Pandas入门\n\n* pandas的数据结构介绍\n\t* Series\n\t* DataFrame\n* 索引对象\n* 丢弃指定轴上的项\n* 索引、选取和过滤\n* 用loc和iloc进行选取\n* 算术运算和数据对齐\n* 在算术方法中填充值\n* DataFrame和Series之间的运算\n* 函数应用和映射\n* 汇总和计算描述统计\n\n#### 6.4 数据加载、存储与文本格式\n\n* 读写文本格式的数据\n* 逐块读取文本文件\n* 将数据写出到文本格式\n* 处理分隔符格式\n* JSON数据\n* XML和HTML: Web信息收集\n* 利用lxml.objectify解析XML\n* 二进制数据格式\n* Web APIs交互\n\n#### 6.5 数据清洗和准备\n\n* 处理缺失数据\n* 滤除缺失数据\n* 填充缺失数据\n* 数据转换\n* 利用函数或映射进行数据转换\n* 检测和过滤异常值\n\n#### 6.6 绘图与可视化\n\n##### 6.6.1 matplotlib API入门\n\n* Figure和Subp1ot\n* 调整subplot周围的间距\n* 设置标题、轴标签、刻度以及刻度标签\n* 注解以及在Subplot上绘图\n* 使用pandas和seaborn绘图\n\n##### 6.6.2 Python建模\n\n* pandas与模型代码的接口\n* 用Patsy创建模型描述\n* 用Patsy公式进行数据转换\n* 分类数据和Patsy\n* 估计线性模型\n* 估计时间序列过程\n* scikit-learn\n\n##### 6.6.3 数据分析\n\n* 数据准备\n* 数据清洗\n* 数据提取\n* 用pandas对时区进行计数\n* MovieLens 1M数据集\n* 计算评分分歧\n* 1880-2010年间全美婴儿姓名统计分析\n\n### 7 分布式架构\n\n#### 7.1 Celery - 快速入门\n\n* Task Queue\n* celery安装\n* Broker\n* Applic ation\n* 项目中使用Celery\n* 调用任务\n* Designing Work-F1ows\n* Roriodic Tasks\n\n#### 7.2 Periodic Tasks\n\n* Introduction\n* Time Zones\n* Entries\n\t* Availab1e Fie1ds\n* Crontab schedules\n* Solar schedules\n* Starting the Schedu1er\n\t* Using custom schedu1er c1asses\n\n#### 7.3 Docker\n\n* Docker-swarm集群部署\n* Docker集群伸缩\n* Docker-swarm集群相关操作\n* Docker私有仓库搭建\n* Docker-swarm集群特性\n\n#### 7.4 Nginx\n\n* Nginx-nginx原理\n* Python的web服务构建\n* Nginx-web服务器\n* IO复用\n* epoll模型\n* Nginx-进程\n\t* 常用模块\n\t* 配置语法\n\t* 常用模块的使用\n* Nginx缓存代理\n\t* 负载均衡\n\t* 缓存优化\n\t* 缓存清除\n\t* 动态伸缩负载\n* Nginx-1ua脚本\n\n### 8 AI研发\n\n#### 8.1 机器学习\n\n##### 8.1.1 机器学习概述\n\n* 什么是机器学习\n* 机器学习的用途\n\n##### 8.1.2 特征工程\n\n* 特征工程介绍\n* 特征提取\n\t* 特征提取API\n\t* 字典特征提取\n\t* 文本特征提取\n\t* jieba分词处理\n* Tf-idf文本特征提取\n* 特征预处理\n\t* 归一化\n\t* 标准化\n* 特征选择\n\t* 降维\n\t* 过滤式\n\t* 相关系数\n* 主成分分析\n\n##### 8.1.3 分类算法\n\n* 数据集介绍与划分\n* skleam转换器和估计器\n* k-近邻算法\n\t* K-近邻算法原理讲解\n\t* 应用场景和注意事项\n* 模型选择与调优\n\t* 交叉验证\n\t* Facebook签到位置预测K值调优\n* 朴素贝叶斯算法\n\t* 什么是朴素贝叶斯分类方法\n* 决策树\n* 集成学习方法之随机森林\n\n##### 8.1.4 回归与聚类算法\n\n* 线性回归\n\t* 线性回归原理\n\t* 线性回归介绍\n* 欠拟合与过拟合\n\t* 什么是过拟合与欠拟合\n* 线性回归-岭回归\n\t* 带有L2正则化的线性回归-岭回归\n* 逻辑回归与二分类\n\t* 逻辑回归的应用场景\n\t* 逻辑回归的原理\n* 无监督学习K-means算法\n\t* 什么是无监督学习\n\t* 无监督学习包含算法\n\t* K-means原理\n\t* K-means聚类步骤\n\n#### 8.2 深度学习\n\n##### 8.2.1 深度学习介绍\n\n* 深度学习与机器学习的区别\n* 深度学习的应用场景\n\n##### 8.2.2 TensorF1ow框架\n\n* TF数据流图\n\t* TensorFlow实现一个加法运算\n\t* TensorF1ow结构分析\n* 会话\n\t* 会话的run()\n* 张量\n\t* 张量的类型\n\t* 张量的阶\n\t* 创建张量的指令\n\t* 张量的数学运算\n\n* 变量OP\n\t* 变量OP的方法\n\t* 命名空间与共享变量\n* 高级API\n\t* tf.app\n\t* tf.image\n\t* tf.gfile\n\t* tf.summary\n\t* tf.train\n* 线性回归\n\n##### 8.2.3 神经网络\n\n* 文件读取流程\n* 图片数据\n\t* 图像基本知识\n\t* 图片三要素\n\t* 图片特征值处理\n* 二进制数据\n\t* CIFAR10二进制数据集介绍\n\t* CIFAR10二进制数据读取\n* TFRecords\n\t* 什么是TFRecords文件\n\t* Example结构解析J\n* 神经网络基础\n\t* 感知机\n\t* playground使用\n\t* layground简单两类分类结果\n\t* 多个神经元效果演示\n* 神经网络原理\n\t* softmax回归\n\t* 交叉嫡损失\n* Mnist手写数字识别\n\n##### 8.2.4 卷积神经网络\n\n* 卷积神经网络简介\n* 卷积神经网络原理\n* CNNMnist手写数字\n* 网络结构与优化\n* 验证码图片识别\n\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 二、通用计算机基础\n\n##### 2.1 计算机组成\n\n* [计算机组成剖析](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#计算机组成剖析)\n* [冯·诺依曼计算机结构](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#冯·诺依曼计算机结构)\n* [计算机执行指令的工作过程](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#计算机执行指令的工作过程)\n* [指令系统分析](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#指令系统分析)\n* [高级语言、汇编语言和机器语言之间的关系](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#高级语言、汇编语言和机器语言之间的关系)\n* [计算机算术和逻辑运算方法及其实现](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#计算机算术和逻辑运算方法及其实现)\n* [微处理器和CPU](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#微处理器和CPU)\n* [存储系统](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#存储系统)\n* [输入输出系统的基本原理和关键技术](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90.md#输入输出系统的基本原理和关键技术)\n\t\n##### 2.2 计算机网络\n\n* [网络层次划分](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#网络层次划分)\n* [OSI七层网络模型](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#OSI七层网络模型)\n* [子网掩码及网络划分](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#子网掩码及网络划分)\n* [ARP/RARP协议](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#ARP/RARP协议)\n* [路由选择协议](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#路由选择协议)\n* [TCP/IP协议](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#TCP/IP协议)\n* [UDP协议](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#UDP协议)\n* [DNS协议](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#DNS协议)\n* [NAT协议](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#NAT协议)\n* [DHCP协议](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#DHCP协议)\n* [HTTP协议](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#HTTP协议)\n\n##### 2.3 数据结构\n\n* [队列](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#队列)\n* [集合](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#集合)\n* [链表、数组](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#链表数组)\n* [字典、关联数组](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#字典关联数组)\n* [栈](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#栈)\n* [树](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#树)\n  * [二叉树](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#二叉树)\n  * [完全二叉树](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#完全二叉树)\n  * [平衡二叉树](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#平衡二叉树)\n  * [二叉查找树（BST）](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#二叉查找树bst)\n  * [红黑树](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#红黑树)\n  * [B，B+，B*树](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#b-bb树)\n  * [LSM 树](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#lsm-树)\n* [BitSet](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md#bitset)\n\n##### 2.4 常用算法\n\n* [排序、查找算法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#排序查找算法)\n  * [选择排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#选择排序)\n  * [冒泡排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#冒泡排序)\n  * [插入排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#插入排序)\n  * [快速排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#快速排序)\n  * [归并排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#归并排序)\n  * [希尔排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#希尔排序)\n  * [堆排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#堆排序)\n  * [计数排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#计数排序)\n  * [桶排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#桶排序)\n  * [基数排序](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#基数排序)\n  * [二分查找](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#二分查找)\n  * [Java 中的排序工具](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#java-中的排序工具)\n* [布隆过滤器](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#布隆过滤器)\n* [字符串比较](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#字符串比较)\n  * [KMP 算法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#kmp-算法)\n* [深度优先、广度优先](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#深度优先广度优先)\n* [贪心算法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#贪心算法)\n* [回溯算法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#回溯算法)\n* [剪枝算法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#剪枝算法)\n* [动态规划](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#动态规划)\n* [朴素贝叶斯](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#朴素贝叶斯)\n* [推荐算法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#推荐算法)\n* [最小生成树算法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#最小生成树算法)\n* [最短路径算法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E5%B8%B8%E7%94%A8%E7%AE%97%E6%B3%95.md#最短路径算法)\n\n##### 2.5 设计模式\n\n* [创建型模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#创建型模式)\n\t* [单例模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#创建型模式)\n\t* [原型模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#创建型模式)\n\t* [工厂模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#创建型模式)\n\t* [抽象工厂模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#创建型模式)\n\t* [建造者模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#创建型模式)\n* [结构型模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#结构型模式)\n\t* [代理模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#结构型模式)\n\t* [适配器模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#结构型模式)\n\t* [桥接模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#结构型模式)\n\t* [装饰模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#结构型模式)\n\t* [外观模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#结构型模式)\n\t* [享元模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#结构型模式)\n\t* [组合模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#结构型模式)\n* [行为型模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [模板方法模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [策略模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [命令模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [职责链模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [状态模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [观察者模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [中介者模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [迭代器模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [访问者模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [备忘录模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n\t* [解释器模式](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#行为型模式)\n* [实际应用案例](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#实际应用案例)\n\t* [23种设计模式实际应用案例](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#23种设计模式实际应用案例)\n\n##### 2.6 网络安全\n\n* [网络安全常识](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#网络安全常识)\n* [web安全前后端基础](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#web安全前后端基础)\n* [信息的扫描与嗅探](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#信息的扫描与嗅探)\n* [病毒知识入门](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#病毒知识入门)\n* [密码攻击的原理和方法](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#密码攻击的原理和方法)\n* [网络代理与追踪技术](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#网络代理与追踪技术)\n* [后门技术](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#后门技术)\n* [网站攻防](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#网站攻防)\n* [端口扫描工具](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.md#端口扫描工具)\n\n##### 2.7 版本管理工具\n\n* [Git](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7.md#Git)\n* [SVN](https://github.com/0voice/develop_skill_tree/blob/main/common_skills_tree/%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7.md#SVN)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003c!-- \n\n\u003ch3 id=\"22\"\u003e金主爸爸信息\u003c/h3\u003e \n\n---\n零声教育推出9.9元，校招特训营：内容包含岗位投递渠道，技术方向选择（Java，c++，前端，算法，运维，测试，嵌入式），简历书写规范，面试准备事宜，企业选择，薪资谈判。\u003cbr/\u003e\n点击 [秋招春招提前批大厂面试指导 简历梳理 offer选择 技术方向指导课程](https://ke.qq.com/course/3582758?flowToken=1037495)\n\n另外每天8点还有技术直播分享，分享内容：Linux，Nginx，ZeroMQ，MySQL，Redis，fastdfs，MongoDB，ZK，流媒体，CDN，P2P，K8S，Docker，TCP/IP，协程，DPDK。\u003cbr/\u003e\n扫码联系小姐姐，获得直播链接。\u003cbr/\u003e\n![barcode](https://www.0voice.com/uiwebsite/img/barcode/cz.jpg)\n\n--\u003e\n\n\u003c!--\n\u003ch3 id=\"22\"\u003e金主爸爸信息\u003c/h3\u003e \n\n---\n#### 零声教育，专注于c/c++Linux后台服务器开发架构技术提升。\u003cbr\u003e\n[分享Linux，Nginx，ZeroMQ，MySQL，Redis，fastdfs，MongoDB，ZK，流媒体，CDN，P2P，K8S，Docker，TCP/IP，协程，DPDK等技术内容，立即学习。](https://ke.qq.com/course/417774?flowToken=1037127)\n\n福利资料获取：\n#### 1、十份大厂面经视频分享\n\n  ① 秋招如何斩获字节\u0026快手offer\u003cbr\u003e\n  \n  ② 小厂到腾讯60Woffer的逆袭\u003cbr\u003e\n  \n  ③ 如何一次跳槽涨薪12W\u003cbr\u003e\n  \n  ④ 清华毕业生跨专业如何拿到美团\u0026字节offer\u003cbr\u003e\n  \n  ⑤ 普通二本应届生的B站之路\u003cbr\u003e\n  \n  ⑥ 非科班毕业如何进京东，拿到28W岗位offer\u003cbr\u003e\n  \n  ⑦ 外包裸辞6个月，成功入职金山实现薪资翻倍\u003cbr\u003e\n  \n  ⑧ 三年社招如何能够拿到35K\u0026360offer\u003cbr\u003e\n  \n  ⑨ 毕业半年，离职挑战华为offer\u003cbr\u003e\n  \n  ⑩ 30天突击学习，拿下高薪offer涨薪10W\n  \n#### 2、对标腾讯T9职级技术要求的后台开发学习图谱\n\n![大纲部分图.png](https://img11.360buyimg.com/ddimg/jfs/t1/37229/14/15620/149708/60e6a78eE5241eec1/d0f0c9d9aa1e4d99.png)\n\n#### 扫码联系橙子，免费领取干货资料【备注：GitHub技能树】\u003cbr\u003e\n![barcode](https://www.0voice.com/uiwebsite/img/barcode/cz.jpg)\n--\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003ch2\u003e🤝 鸣谢\u003c/h2\u003e\n\n##### 为了让我们的repo内容更加的丰富，更加的专业。欢迎大家贡献patch，希望大家在issue里面出谋划策，我们期待你的加入。\n\n\u003ca href=\"https://github.com/wangbojing\"\u003e\n    \u003cimg src=\"https://avatars.githubusercontent.com/u/18027560?v=4\" width=\"40px\"\u003e\n\u003c/a\u003e \n\n\u003ca href=\"https://github.com/ls-Brynn\"\u003e\n    \u003cimg src=\"https://avatars.githubusercontent.com/u/87458342?v=4\" width=\"40px\"\u003e\n\u003c/a\u003e \n\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003ch3 \u003e零领工作\u003c/h3\u003e \n\n---\n\n##### 实时提供，每周发布北京，上海，广州，深圳，杭州，南京，合肥，武汉，长沙，重庆，成都，西安，厦门的c/c++，golang方向的招聘岗位信息。 包含校招，社招，实习岗位， 面经，八股，简历\n\n\u003cimg src=\"https://img.0voice.com/public/0e59910091576beaebe20f303357edf7.jpg\" alt=\"零领工作\" style=\"width:300px;height:300px;\"\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0voice%2Fdevelop_skill_tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0voice%2Fdevelop_skill_tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0voice%2Fdevelop_skill_tree/lists"}