声明:本文档仅作为个人学习过程中的总结与归纳,如果存在错误或者不严谨的描述,欢迎拍砖。
整体说明
整个文档包括但是不限于以下内容:
- 数据库管理系统 (DataBase Management System)
- 分布式系统 (Distributed System)
- 操作系统 (Operating System)
- 网络与并行处理 (Network and Parallel Processing)
- 编程语言 (Program Language)
- 算法与数据结构 (Algorithm and Data Structure)
- 其它 (Others)
文档的整理和更新过程比较佛系,希望自己能够长期坚持 : )
数据库系统
最早接触数据库是在大学课堂,学校的数据库课程更侧重数据库的使用,当然也有一些数据库的理论介绍,但是体感并不强烈。至少笔者在学完数据库课程之后,留下的印象就只有以下几个关键字:SQL、事务、ACID。随着最近一两年更多的接触数据库,才开始慢慢对数据库有了更多的了解,也希望自己的一些体会能够帮助更多的人认识数据库。
数据库的基础知识这一部分,暂定会从以下几个方面进行介绍:
- 数据库系统与文件系统
- 一条 SQL 的执行过程
- 索引与 B-tree 介绍
- 事务系统
- Redo 和 Undo
- 关于 DDL 的说明
- BufferPool 介绍
- 高可用与读写分离
- 存储计算分离
分布式系统
分布式系统可以说是最近几年 IT 领域最热门的词汇之一,好像所有的应用系统,不带上“分布式”都显得不够逼格。这里也谈谈自己对分布式系统的一点浅薄的理解:
- Scale Up or Scale Out
- Paxos and Raft
- 分布式数据库
- 分布式文件系统
操作系统
不管在什么版本的程序猿鄙视链条中,操作系统内核程序猿永远都是位于顶端的那一拨,由此可见操作系统的重要性,关于操作系统的介绍,完全是结合遇到的问题展开,谈不上深入了解,只能算是一个记录:
- Page Cache
- IO 模型
- mmap 的一点说明
- 神奇的 fork
- 系统监控
- VFS 虚拟文件系统
网络与并行处理
从理论和实践两个维度对网络相关的知识作一个总结:
- 网络七层
- 三次握手
- tcp 与 socket
- http 与 https
- pool and epool
- react 反应堆模式
- Netty 入门
- Mycat 介绍
编程语言
本人接触的编程语言不算多,迄今为止重度使用的包括:Java、Python、C++。不同的语言有不同的特点,也有一些想通的地方,本部分的文章主要记录编程语言中的一些重要特征和注意事项:
- 面向对象
- Java 中的并发包
- C++ 之指针
- Python = 慢 ?
- C++ STL
- 容器类的使用
- 多线程
- 同步与异步
- 生产者与消费者
- 设计模式
- 内存管理
- 常用的测试框架
算法与数据结构
这部分会记录一些常见算法与数据结构,当然也包括LeetCode的随笔,内容随缘。
其它
所有不能归为上面类型的都放到这里了,包括一些常见的工具使用:
- perf 使用
- tcpdump 使用
- wireshark 使用
- gdb 使用
- pdb 使用
- git 使用总结
- vim 使用总结
- cgroup 介绍
- docker 介绍
以上就是本文档的一个总体说明,Flag 已经立下了,希望自己能够坚持。