个人博客
本仓库下存放个人博客的源文件。持续更新,欢迎 star
。
如果大家觉得那里写的不合适的可以给我提 Issue
前言
程序员的自我修养:
-
一切语言、技术或者框架,本质都是工具,工具的价值在于为使用者提供竞争优势。
-
如果真的有一种语言或者框架很牛逼,那么荣耀或者赞誉应该属于创造它的人,与使用者没有半毛钱关系;
使用者的荣耀应该来自;针对恰当的需求使用恰当的语言或者框架,并做到按时交付以及高质量。
-
大部分人并不是天生有选择恐惧症,也不是天生的杠精,在我看来所有关于选择的迷惑或者争吵,大都因为:
- 没有设定清晰的标准;
- 标准不唯一;
- 标准之间没有优先级或者权重;
目录简介
展开目录简介
- [语言基础](./contents/basic.md)
- [Python](./contents/basic.md#python)
- [Golang](./contents/basic.md#golang)
- [Java](./contents/basic.md#java)
- [数据结构与算法](./contents/algorithm.md)
- [我的专题仓库](./contents/algorithm.md#我的专题仓库helloalgorithm有介绍点击这里)
- [框架技术](./contents/framework.md)
- [Scrapy](./contents/framework.md#scrapy)
- [Elasticsearch](./contents/framework.md#elasticsearch)
- [SpringCloud](./contents/framework.md#springcloud)
- [各种技术](./contents/misc.md)
- [Redis](./contents/misc.md#redis)
- [Kafka](./contents/misc.md#kafka)
- [MySQL](./contents/misc.md#mysql)
- [Nginx](./contents/misc.md#nginx)
- [分布式](./contents/misc.md#分布式)
- [Linux](./contents/misc.md#linux)
- [网络](./contents/misc.md#网络)
- [设计与实战](./contents/design.md)
- [搭建并行处理管道 - Golang](./contents/design.md#搭建并行处理管道---golang)
- [原生爬虫 - Golang](./contents/design.md#原生爬虫---golang)
- [流量统计系统 - Golang](./contents/design.md#流量统计系统---golang)
- [开发分布式任务调度 - Golang](./contents/design.md#开发分布式任务调度---golang)
- [如何设计并实现一个高可用订单系统](./contents/design.md#如何设计并实现一个高可用订单系统)
- [反省与总结](./contents/reflection_and_summary.md)
- [面试](./contents/reflection_and_summary.md#面试)
- [其他](./contents/reflection_and_summary.md#其他)
- [工具](./contents/tools.md)
- [Pycharm上传到码云或者GitHub](./contents/tools.md#pycharm上传到码云或者github)
- [欢迎使用CSDN-markdown编辑器](./contents/tools.md#欢迎使用csdn-markdown编辑器)
- [chinese](./contents/chinese.md)
- [chinese_300_tang_poems](./contents/chinese.md#chinese_300_tang_poems)
目录
目录详情
#### 【语言基础】
- ##### Python
- 基础知识
- [变量对象和引用](./basic/python/basic/变量对象和引用.md)
- [Python学习之Queue](./basic/python/basic/Python学习之Queue.md)
- [Python中的作用域及global用法](./basic/python/basic/Python中的作用域及global用法.md)
- Requests 库
- [Requests模块学习之一-发送请求](./basic/python/requests/Python学习之Requests模块学习之一-发送请求.md)
- [Requests模块学习之二-处理响应](./basic/python/requests/Python学习之Requests模块学习之二-处理响应.md)
- [Requests模块学习之三-进阶话题](./basic/python/requests/Python学习之Requests模块学习之三-进阶话题.md)
- 并发
- [Python_多进程_进程池](./basic/python/concurrency/Python_多进程_进程池.md)
- [Python之路_异步IO_队列_缓存](./basic/python/concurrency/Python_多进程_进程池.md)
- [Python之路_进程_线程](./basic/python/concurrency/Python_多进程_进程池.md)
- ##### Golang
- [用 golang 实现 nginx 反向代理及负载均衡](./basic/golang/用go实现nginx反向代理及负载均衡.md)
- [channel & select](./basic/golang/source_code/channel.md)
- [Go 内存管理](./basic/golang/memory_management.md)
- [Go gc](./basic/golang/gc.md)
- ##### Java
- Pending
#### 【数据结构与算法】
- ##### 我的专题仓库「HelloAlgorithm」有介绍:[点击这里](https://github.com/hackfengJam/HelloAlgorithm)
#### 【框架技术】
- ##### Scrapy
- [Scrapy - 第一步框架原理](./framework/scrapy/第一步Scrapy框架原理.md)
- ##### Elasticsearch
- [Elasticsearch - 介绍及开发环境搭建](./framework/elasticsearch/Elasticsearch环境搭建.md)
- [Elasticsearch - 搜索引擎_pending](./framework/elasticsearch/搜索引擎_Elasticsearch_pending.md)
- ##### SpringCloud
- [Eureka 的介绍](tech/springcloud/Eureka介绍.md)
- [Eureka Server 和 Client 之间的信息维护(注册和续约)](tech/springcloud/Eureka_Server_和_Client_之间的信息维护(注册和续约).md)
- [Zuul 的介绍](tech/springcloud/Zuul介绍.md)
#### 【各种技术】
- ##### Redis
- [Redis的正确打开方式](./tech/redis/Redis的正确打开方式.md)
- [高并发情况下Redis做缓存的一系列问题_pending](./tech/redis/高并发情况下Redis做缓存的一系列问题_pending.md)
- [Redis Pipeline 及 主从同步](./tech/redis/redis_pipeline_and_sync_master_slaver.md)
- [Redis 为什么这么快?](./tech/redis/redis_so_fast.md)
- ##### Kafka
- [kafka](tech/kafka/kafka.md)
- ##### MySQL
- [数据库优化 - 索引优化](tech/mysql/数据库优化——索引优化.md)
- [Mysql大表处理_pending](tech/mysql/Mysql大表处理_pending.md)
- [数据库 - 如何设计一个关系型数据库](tech/mysql/数据库——1_数据库架构.md)
- [数据库 - 索引管理](tech/mysql/数据库——2_索引管理.md)
- [数据库 - 锁管理](tech/mysql/数据库——3_锁管理.md)
- ##### Nginx
- [nginx - 使用之总体简介](tech/nginx/nginx使用之总体简介.md)
- [nginx - 使用之配置文件的组成及主配置段的指令之一](tech/nginx/nginx使用之配置文件的组成及主配置段的指令之一.md)
- [nginx - 使用之配置文件的组成及主配置段的指令之二](tech/nginx/nginx使用之配置文件的组成及主配置段的指令之二.md)
- ##### 分布式
- [分布式id生成算法 - SnowFlake](tech/distributed/algo/分布式id生成算法SnowFlake.md)
- Raft
- [Raft 领导选举](tech/distributed/raft/raft_leader_election.md)
- [Raft 一致性算法](tech/distributed/raft/raft_consensus_algorithm.md)
- [Raft 日志复制](tech/distributed/raft/raft_log_replication.md)
- Celery
- [Celery 的正确打开方式 - 结合「官方文档」及「实际用例」了解 Celery](tech/distributed/celery/celery_opens_correct_way.md)「**关键词:分布式任务队列;Celery**」
- [[Draft]Celery 源码阅读](tech/distributed/celery/celery_source_code.md)
- etcd
- [什么是 etcd?](tech/distributed/etcd/etcd_study_1_what_is_etcd.md)
- [etcd 功能与原理](tech/distributed/etcd/etcd_function_and_principle.md)
- [Golang 操作 etcd(上)](tech/distributed/etcd/etcd_usage_golang_1.md)
- [Golang 操作 etcd(下)](tech/distributed/etcd/etcd_usage_golang_2.md)
- ##### Linux
- [Linux - find、grep、awk、sed 常用命令](./tech/linux/Linux.md)
- [select、poll、epoll](./tech/linux/select_poll_epoll.md)
- [零拷贝 - NIO](./tech/linux/零拷贝_NIO.md)
- ##### 网络
- [TCP 三次握手、四次挥手详解](./tech/network/tcp.md)
- [HTTP 与 HTTPS 详解与区别](./tech/network/http与https.md)
- [HTTPS 如何做到安全](./tech/network/https.md)
- ##### 架构
- [Git workflow](./tech/architecture/git_workflow.md)
- [你的项目应该如何分层?](./tech/architecture/how_should_your_project_be_stratified.md)
- [什么是扇入和扇出?](./tech/architecture/fanout_and_fanin.md)
- [13 Code Review Standards Inspired by Google](./tech/architecture/style/code_13.md)
#### 【设计与实战】
- ##### [搭建并行处理管道 - Golang](./design/golang_pipeline/golang_pipeline.md)
- ##### [原生爬虫 - Golang](./design/golang_crawler/golang_crawler.md)
- ##### [流量统计系统 - Golang](./design/golang_analysis/golang_analysis.md)
- ##### [开发分布式任务调度 - Golang](./design/golang_crontab/golang_crontab.md)
- ##### [微信抢红包功能设计 - Golang](./design/red_envelope/red_envelope.md)
- ##### [如何设计并实现一个高可用订单系统](./design/order/how_xx_order_system.md)
#### 【反省与总结】
- ##### 面试
- [Python面试题精选](./reflection_and_summary/interview/Python面试题精选.md)
- [面试-复习](./reflection_and_summary/interview/面试-复习.md)
- [某不知名小厂面经 - 第一家](./reflection_and_summary/interview/某不知名小厂面经.md)
- [某不知名小厂面经 - 第二家](./reflection_and_summary/interview/某不知名小厂面经_2.md)
- [这段时间六家公司面经 - 2019年 - 07.11-07.22](./reflection_and_summary/interview/interview.md)
- [识货 —— 面经](./reflection_and_summary/interview/shihuo.md)
- [华为OD —— 面经](./reflection_and_summary/interview/hw_OD.md)
- [英语流利说 —— 面经](./reflection_and_summary/interview/liulishuo.md)
- ##### 其他
- [给学弟学妹们总的方向及建议](./reflection_and_summary/misc/给学弟学妹们总的方向及建议.md)
#### 【工具】
- ##### [Pycharm上传到码云或者GitHub](./tools/Pycharm上传到码云或者GitHub.md)
- ##### [欢迎使用CSDN-markdown编辑器](./tools/欢迎使用CSDN-markdown编辑器.md)
#### 【chinese】
- ##### chinese_300_tang_poems
- 五言古诗_三十三首
- [张九龄 - 感遇_二首](./chinese/chinese_300_tang_poems/五言古诗_三十三首/张九龄/感遇_二首.md)
开源社区链接
Gitee
GitHub
TODO list
展开查看
- 数据库和缓存双写一致性方案解析
- raft pre-vote 算法,《CONSENSUS: BRIDGING THEORY AND PRACTICE》
- 唯一索引与普通索引的区别
- mysql change buffer
- 进程、线程与协程
- 页缓存、缺页中断
- 有个webhook接口:目前直接返回200,并调用异步任务系统。
现在 有三个 HTTP 请求(1:create, 2:modify, 3:delete) 过来(三个请求时间间隔不一定,可能没有 2:modify),需要它们三个异步任务顺序执行。(给每一个请求 一个id,通过id hash发到执行的机器,执行机器分配线程执行是拿到 id 存在已分配的线程中 )
- 初识 kafka
- kafka 高级特性之消息事务
- Mysql大表处理
- 高并发情况下 Redis 做缓存的一系列问题
- 数据库如何建索引,如何分库分表
- LRU 的实现,原理、数据结果和过程结果
- QPS 限流 (缓存,滑动窗口?)
- 标签 推荐算法实现
- HTTPS 如何做到安全
- 根据二叉树前序遍历生成 AVL 树
- Redis 主从同步和持久化方式
- Redis 高可用方案
- Redis 缓存集中过期如何处理
- Redis 的集群有哪些
- 用 redis 做限流
- 统计大量访问日志(分几百M 和 几百G的场景);得出访问次数最多的前 K 个人 (单台机器实现)
- 8G 文件 1G 内存,查找重复的数字
- 对称性加密跟非对称性加密的比较、使用场景
- RSA 加密算法
- 搜索引擎倒排原理及实现方式
- XSS 和 CSRF
- ctrl+c 后操作系统做了什么
- T级别大日志文件,如何找出一段时间内日志
- 求无向无环图的直径
- python GIL 以及为什么有GIL,还需要 threading
- 自增ID 与 uuid 的优劣
- B、B+、跳跃表 区别 时间复杂度
- java fail-fast 机制
- Mac 地址如果被改会怎么样
- 路由寻址过程做了哪些事
- HTTP 1.1、2 特性
- HTTP 里面的各种攻击及应对策略
- 如何信任 CA
- 分布式事务,两阶段提交协议,失败重试补偿
- 在微服务架构中,如何能保证接口的可靠性。(幂等性校验?安全角度?)
- 程序设计
- Golang 开发分布式任务调度
- 微信抢红包功能设计
- 推送的频率控制
- 抖音评论列表的设计及缓存实现
- 假设是一个抽奖的游戏,不同的人是有不同的概率倍数,是一个整数,例如:1、3、5...。输入100万人,要求抽奖抽出2万个人;
并假设每个人都有一个唯一id,写一个函数做下抽奖,输入和输出的数据结构自己设计
- 设计群消息已读功能
- HTTP 301 实现原理,设计一个短链服务
- 给一个亿级用户登录登出时间戳日志,统计用户在线量峰值及持续时间,代码实现
- 消息队列如何保证可靠
- 设计秒杀系统要求保证公平
- 如何限制每分钟每个手机号短信发送数
- 发短信业务,1分钟内一个号一个业务 1000 条
- 多人联机贪吃蛇设计
- 链表逆序,设计一个王者的组队系统
- 头条文章向用户推送避免重复推送问题
- 如何实现音乐随机播放
- 系统设计:微信扫码登录
- 微博的热门评论,在分页到很深的时候,如何进行优化
- 一个分布式不安全的文件系统,如何保证每次只有一个请求进行读写
Tips: