一、后台开发技能总体
- 语言
- 数据结构与算法
- 数据库:mysql,缓存redis
- 网络原理
- 操作系统
- 网络编程
- 分布式
- 云原生
二、语言
- 循环分支控制
- 对象的生命周期
- 垃圾回收
- 标准库使用
- 错误异常处理
- 日志分析,端点调试
- 面向对象理解
- 设计模式
- gdb使用
三、数据结构与算法
- 数据结构三类:线性、树形、图形
- 算法
(1)链表、队列、栈
(2)二叉树,红黑树,b树,b+树
(3)dijkstra算法,最小生成树
(4)递归
(5)排序(11种)
(6)归并
(7)快排
(8)堆排序
(9)贪心算法,动态规划
(10)跳表,散列表,hash, 布隆过滤器
四、数据库
(1)mysql
- mysql安装与配置
- sql语句,建表,建库,索引,存储过程
- 存储引擎(原理),myisam/innodb
- 数据库连接池
- 异步数据库请求
- sql注入,webshell攻击,
- 数据库集群(分库分表,读写分离)
(2) redis
redis使用,安装,配置
redis命令使用
redis异步,连接池
redis集群
redis数据备份
缓存雪崩,缓存击穿
五、网络原理
- ping ,telnet(端口),ifconfig
- 网络体系模型,数据从哪一层
- tcp原理
- 三次握手
- 四次挥手
- 滑动窗口
- 慢启动
- 状态机
- udp原理:实时,不带流量控制
- http/https/http2.0/http3.0
- Session,cookie application
- 网络安全,加密,数字标签
- 抓包:wireshark,tcpdump
- 网络带宽,iperf
六、操作系统
- 文件操作,系统操作
- 程序编译,运行
- shell/vi使用
- liux系统性能监控参数 ps/netstat/df
- 进程管理
- 用户态、内核态:交互只有通过系统调用
- 内存管理,内存池,内存泄露
- 磁盘文件系统,虚拟文件系统
- 磁盘io
七、网络编程
- socket编程,tcp/udp
- 网络io模型,阻塞,非阻塞,异步,同步
- io多路复用 select/poll/epoll
- epoll reactor,proactor
- time wait/close wait 大量
- C10k/C1000K/C10M
- 网络框架 libeevent/libev,协程ntyco,libco
八、分布式
- rpc,grpc,tars,brpc,srpc :对外基础服务
- 简单rpc协议设计/框架搭建
- 协议传输序列化,反序列化
- 服务注册,服务发现
- 容灾,降级熔断,流量控制
- 高并发,高可用
- 分布式锁:etcd,zookeeper
九、云原生
- 腾讯云/阿里云
- docker镜像管理
- docker编排,网络
- k8s管理