/Crius

:mag: practice, understand, memorize, summarize and express

目录

SDK

构建工具make和makefile编写

Go-Modules详解

Go的自举

Go的编译过程

Go的抽象语法树AST

bufio读写机制剖析

net/http包路由机制详解

unsafe包详解

slice的底层实现

map的底层实现

map的扩容机制

context机制详解

atomic原子操作

sync.Pool临时对象池

sync.Map源码分析

sync包中的同步原语

sync包的实际应用

log包源码分析

Currency

GC-三色标记清除

G-M-P调度模型

Go中连接池的实现分析

Go中的并发限制与超时控制

实现一个Go并发处理队列

Go的并发模型与并发模式

Guide

Uber-Golang编码规范-指导原则

Uber-Golang编码规范-性能与规范

Uber-Golang编码规范-编程模式

Unit-Test

Go单元测试-基础原理

Go单元测试-mock框架

Go单元测试-testify

Go单元测试-依赖注入框架wire

Benchmark

Go benchmark性能测试

Package

日志库logrus

命令行库cli

依赖注入wire

访问控制casbin

服务限流算法的几种实现

Gin

路由实现-Trie前缀树

整体架构-各组件功能实现

Gorm

Grpc

Protobuf语言指南

Protobuf生成Go代码指南

grpc的特性和背后的设计原则

grpc接口描述语言ProtoBuffer

grpc之Golang入门HelloWorld

grpc之流式调用原理http2协议分析

grpc认证的多种方式实践

grpc拦截器的那些事

grpc服务注册与服务发现

grpc-server启动分析

grpc的一次请求流程

grpc跨语言通信实例

Go-Kit

go-kit的整体结构

basic授权认证中间件

endpoint源码分析

transport层之http-server

transport层之http-client

transport层之jsonrpc

transport层之grpc

服务注册中心的通用功能实现

服务注册中心的consul实现

Go-Micro

Etcd

NSQ

剖析nsq消息队列(一)简介及去中心化实现原理

剖析nsq消息队列(二)去中心化源码解析

剖析nsq消息队列(三)消息传输的可靠性和持久化

剖析nsq消息队列(四)消息传输的可靠性和持久化

剖析nsq消息队列(五)消息的负载处理

Redis

(转)Redis内部数据结构详解-dict

(转)Redis内部数据结构详解-sds

跳表的原理及实现

Redis的两种持久化机制

Redis的主从复制机制

基于Redis的分布式锁实现

RedLock算法-使用redis实现分布式锁服务

浅谈分布式事务的实现模式

缓存淘汰策略之LRU算法分析

缓存淘汰策略之LFU算法分析

缓存淘汰策略之LRU算法改进

缓存雪崩,缓存穿透和缓存击穿方案分析

理解snowflake算法的实现原理

MySQL

InnoDB的事务实现机制

必须了解的MySQL三大日志

Nginx

Message Queue

分布式消息队列:如何保证消息队列的高可用

分布式消息队列:如何保证消息不被重复消费

分布式消息队列:如何保证消息按顺序执行

分布式消息队列:如何解决消息积压

分布式消息队列:如何保证消息的可靠性传输

分布式消息队列:消息处理失败和死信队列

Rabbitmq

rabbitmq实战指南(一)简介及入门使用

rabbitmq实战指南(二)AMQP协议和RabbitMQ实现

Kafka

Docker

Kubernetes

Auth

浅析Basic认证

JWT机制分析

oAuth2.0授权机制

浅谈权限管理模型

Network

TCP三次握手与四次挥手

TCP滑动窗口与拥塞控制

网络中的指数躲避抖动算法

Linux IO模式及select,pool,epoll详解

彻底搞懂Reactor模型和Proactor模型

Security

Web安全之防止重放攻击

浅说XSS和CSRF