nimenhao / my_data_rebuild

mikasalevi up up up !!!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

一、基础知识

1.1 英语

1.2 算法与数据结构

参考: repo:DS-Algorithm

1.3 计算机网络

  1. 应用层:HTTP
  2. 应用层:DNS
  3. 应用层:HTTPS
  4. 运输层:TCP 的三大特点:可靠传输/流量控制/拥塞控制
  5. 运输层:TCP 连接建立与释放:三次/四次握手
  6. 网络层:IP协议(IP地址,子网,IP数据报)
  7. 网络层:路由选择(RIP,BGP)
  8. 网络层:配套协议(ARP,ICMP,IGMP)
  9. 数据链路层
  10. 物理层

1.4 操作系统

  1. 进程线程
  2. socket以及多路复用IO在内核的实现
  3. 用户态内核态

1.5 数据库

1.5.1 MySQL

Plait(辫子原则)- Performance,Lock,Actual,Index,Transaction

  1. P:MySQL 架构和存储引擎
  2. P:主从原理和一致性的保障
  3. P:主从搭建测试
  4. P:单机不丢数据:redolog,binlog的二阶段提交与双1配置
  5. P:MySQL 部署架构
  6. L:锁的种类
  7. L:select 语句的加锁分析
  8. L:update,delete,insert 语句的加锁
  9. L:B+Tree 的学习与间隙锁为什么锁上下区间
  10. I:索引:存储结构,CRUD影响,使用上需要注意的点
  11. T:事务:隔离级别,MVCC 与一致性视图

MySQL 其他:

  1. MySQL:一些命令的使用
  2. 《MySQL实战45讲》学习笔记-基础篇8讲
  3. 《MySQL实战45讲》学习笔记-实战篇09-22讲
  4. 《MySQL实战45讲》学习笔记-实战篇23-28讲(高可用篇)

1.5.2 MongoDB

  1. MongoDB的基本特点:灵活简单/高可用/支持横向扩展
  2. MongoDB 复制集细节:oplog/选举/读写分离
  3. MongoDB 分片集细节:部署架构/分片策略

1.5.3 Redis

  1. Redis 的数据结构和常用命令
  2. Redis RDB持久化,AOF持久化
  3. IO多路复用,Redis从单线程到多线程的模型

1.6 编程语言(Java)

1.6.1 Java 集合

  1. Java 集合体系以及 Stream 流
  2. ArrayList, LinkedList, 多线程安全版本
  3. Map 系列:HashMap,LinkedHashMap
  4. Map 系列2:Hashtable,ConcurrentHashMap

1.6.2 Java 多线程

  1. Java 内存模型 和 java.util.concurrent 包
  2. AtomicInteger
  3. locks 包:ReentrantLock
  4. Thread
  5. ThreadPoolExecutor 线程池
  6. synchronized 原理,轻量级锁,偏向锁,自旋锁 及其加锁流程

1.6.3 Java 内存模型与垃圾回收

  1. GC近年变化,堆内存布局,标记算法,Serial 和 Parallel 垃圾收集器
  2. G1 && Shenandoah && ZGC 垃圾收集器

1.6.4 Java IO

二、大型软件研发经验

截屏2022-02-08 下午5 35 48

2.1 owner 意识

  1. owner 的职责
  2. 作为一个项目owner应该问自己的几个问题
  3. 如何保障一个系统的高可用?
  4. 如何保障一个架构域的高可用?
  5. 如何保障一次上线的稳定性?
  6. 如何保障一次活动的高可用稳定性?

2.2 SystemDesign

微服务架构

  1. 通信协议问题
  2. 服务注册与发现问题
  3. 负载均衡问题
  4. 熔断问题1(Hystrix)
  5. 熔断问题2(限流基本概念,Guava RateLimiter)
  6. 熔断问题2(限流-Redis RRateLimit)
  7. 分布式事务一致性问题:一些理论部分的学习
    1. 《Time, Clocks, and the Ordering of Events in a Distributed System》论文
    2. 《Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial》论文
    3. 《BASE: An Acid Alternative》论文
    4. 《Life beyond Distributed Transactions》论文
    5. 《Sagas》论文翻译
    6. 《Sagas》论文总结
    7. X/OPEN组织,DTP模型,XA规范,TX规范
    8. 2PC,3PC
    9. Raft1:概念与算法核心
    10. Raft2:Leader election 领导者选举
    11. Raft3:Log Replication 日志复制
    12. Raft4:Safety 两种特殊场景
    13. Paxos1:问题背景
    14. Paxos2:算法机制-choosing a value
    15. Paxos3:prepare&accept请求调用情况分析
  8. 分布式事务一致性问题:实际应用的总结
    1. 分布式基础理论(ACID/BASE/CAP)
    2. A系统->B系统的分布式一致性分析
    3. 分布式事务:TCC 概念与 Seata 中的 TCC 实现方案1
    4. 分布式事务: Seata 中的 TCC 实现方案2
    5. TCC 模型下的三大问题:空回滚/悬挂/幂等
    6. TCC 在项目中的实际应用以及可能出现的问题

其他架构模式

  1. BFF架构

其他设计问题

  1. 缓存问题:缓存穿透,缓存击穿,雪崩

面向对象和设计模式

  1. DIP:依赖倒置原则的一些理解
  2. 单一职责原则SRP
  3. OCP开闭原则的项目使用反思
  4. 《编程的逻辑》读后感
  5. 模板方法 + 策略模式
  6. 装饰器模式

并发问题

  1. 并发问题:并发问题的一些处理方案1
  2. 并发问题:并发问题的一些处理方案2
  3. 并发问题:并发问题的一些处理方案3: @Version 乐观锁
  4. 并发问题:记录持久化1-问题与解决方案
  5. 并发问题:记录持久化2-延时和透支
  6. 并发问题:记录持久化3-再谈透支(数据化解决方案)
  7. 并发问题:记录持久化4-积压问题和锁占用
  8. 并发问题:记录持久化5-热点配置
  9. 并发问题:记录持久化6-参考专利:一种缓冲记账方法及装置
  10. 并发问题:记录持久化7-异步化强制缓冲
  11. 并发问题:记录持久化8-吞吐量比缓冲更大的处理方式

2.3 框架中间件原理

  1. Spring IOC
  2. Spring AOP
  3. SpringMVC 的 Servlet 与 DispatcherServlet 以及常用注解
  4. Spring Cloud Feign,RestTemplate,HttpClient,OKHttp
  5. Spring Cloud Eureka 服务注册与发现
  6. Ribbon 负载均衡策略
  7. Airflow(一): 基础概念

2.4 项目管理

  1. 谈谈对敏捷开发的看法
  2. 从第一个敏捷项目后再看敏捷实践的一些坑
  3. 研发质量:如何做一个需求的方法论
  4. 研发质量:如何做一个项目的方法论
  5. 研发质量:如何做一个全站性质项目的方法论
  6. 研发质量:研发质量体系思考
  7. 研发质量:团队质量意识的push
  8. 研发质量:蚂蚁金服(支付宝)-账务团队个人bug总结

2.4 运维SRE && 测试

运维:

  1. K8S(一):基础概念
  2. K8S(二):实际使用-部署
  3. CICD 流程:GitLab->ArgoCD->K8S 搭建(一)

SRE技术风险:这里包括 部署架构,压测,容量,弹性,预案,限流 等。

  1. 弹性-单元化部署
  2. 预案与限流(偏组织层面)

测试:

  1. 契约测试Pact:从理论到落地coding(一):理论部分
  2. 契约测试Pact:从理论到落地coding(二):Consumer 端落地 coding
  3. 契约测试Pact:从理论到落地coding(三):不同参数怎么返回不同的响应

三、扩展视野

3.1 区块链

  1. 《比特币: 一个点对点的电子现金系统》- 摘要
  2. 《比特币: 一个点对点的电子现金系统》- 1引言
  3. 《比特币: 一个点对点的电子现金系统》- 2交易
  4. 《比特币: 一个点对点的电子现金系统》- 3时间戳服务器
  5. 《比特币: 一个点对点的电子现金系统》- 4工作量证明

3.2 5G

3.3 AI

3.4 个人项目

About

mikasalevi up up up !!!