0%

总 (Li) 体 (Xia) 说明 (Flag)

声明:本文档仅作为个人学习过程中的总结与归纳,如果存在错误或者不严谨的描述,欢迎拍砖。

整体说明

整个文档包括但是不限于以下内容:

  • 数据库管理系统 (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 已经立下了,希望自己能够坚持。