# 推荐阅读
我不能保证写的都是对的,但至少保证每句话、每行代码都经过了认真仔细的思考
# 1. 书籍
# 1.1. Java
# 1.2. 数据库
# 1.3. 架构与中间件
# 1.4. 极客时间
# 1.5. 其他
# 2. Blog
# 3. GitHub
- CS-Notes (opens new window)
- JavaGuide (opens new window)
- Architect-Awesome (opens new window)
- Advanced-Java (opens new window)
- JCSprout (opens new window)
- Fullstack-Tutorial (opens new window)
- JGrowing (opens new window)
- 3y (opens new window)
- JS-Sorting-Algorithm (opens new window)
- LeetCodeAnimation (opens new window)
# 4. 文章
# 5. 其他
# 5.1. Java
- Java异常的优雅的设计 (opens new window)
- StringBuffer 和 StringBuilder 的 3 个区别! (opens new window)
- 巧用 Java8 的 Stream 对集合操作飞起来 (opens new window)
- 线程间的通信方式,JAVA程序员必须会! (opens new window)
- 既生synchronized,何生volatile?! (opens new window)
- 深入理解Java的三种工厂模式 (opens new window)
- 10分钟掌握ConcurrentHashMap 3分钟清楚和HashMap、Hashtable的区别 (opens new window)
- Spring Boot 面试,一个问题就干趴下了! (opens new window)
- 减少那该死的 if else 嵌套 (opens new window)
- Sprinig Boot优雅实现接口幂等性,原来这么简单! (opens new window)
- 面试官问:平常你是怎么对Java服务进行调优的? (opens new window)
- 太好了!总算有人把动态代理、CGlib、AOP都说清楚了! (opens new window)
- JVM 发生内存溢出的 8 种原因、及解决办法 (opens new window)
- 你真的懂网络分层模型吗? (opens new window)
- 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求? (opens new window)
- Spring 常犯的十大错误,打死都不要犯! (opens new window)
# 5.1.1. Netty
- 使用Netty,我们到底在开发些什么? (opens new window)
- 同步/异步/阻塞/非阻塞/BIO/NIO/AIO (opens new window)
- 漫话:如何给女朋友解释什么是BIO、NIO和AIO? (opens new window)
- 一个故事讲清楚 NIO (opens new window)
# 5.2. 分布式
- 从分布式一致性谈到CAP理论、BASE理论 (opens new window)
- 别一上来就提微服务,请问你懂RPC吗 (opens new window)
- 漫话:如何给女朋友解释什么是RPC (opens new window)
- 小型系统如何“微服务”开发 (opens new window)
- 2019 好戏连连,阿里又开源了一个分布式事务框架! (opens new window)
- 分布式事务不理解?一次给你讲清楚! (opens new window)
- 一直在谈微服务,你知道分布式多中心架构是什么吗 (opens new window)
- 分布式链路追踪系统原来是这么一回事 (opens new window)
- 深度对比三种主流微服务配置中心 (opens new window)
- 秒杀系统流量削峰这事儿应该怎么做? (opens new window)
- 知乎千万级高性能长连接网关揭秘 (opens new window)
- 集群部署时,分布式 session 如何实现? (opens new window)
- 推荐:一款分布式的对象存储服务 (opens new window)
# 5.2.1. 消息队列
- 如何选择消息队列? (opens new window)
- 天天在用消息队列,却不知道为啥要用 MQ ,这就尴尬了 (opens new window)
- 为什么需要消息队列?使用消息队列有什么好处? (opens new window)
# 5.3. 数据库
- 面试官问我:为什么要分库分表? (opens new window)
- 数据库是如何分库,如何分表的? (opens new window)
- 开发者的一千个不用 NULL 的理由 (opens new window)
- 技术经理:求求你,别再乱改数据库连接池的大小了! (opens new window)
- Sharding-JDBC:查询量大如何优化? (opens new window)
- 面试官:大数据量sql分页查询很慢,有哪些优化方案? (opens new window)
- 面试问烂的 MySQL 四种隔离级别,看完吊打面试官! (opens new window)
- 乐观锁和悲观锁吗,你确定分清楚了吗? (opens new window)
- 4 个场景详解大厂面试中的死锁问题 (opens new window)
- 面试官:说说看,线上发生Mysql死锁,你的排查思路? (opens new window)
- 到底选择SOL还是NoSQL?看这里! (opens new window)
# 5.3.1. Redis
- Redis 为何这么快?聊聊它的数据结构~ (opens new window)
- Redis过期策略及实现原理 (opens new window)
- 面试官:你了解 Redis 缓存雪崩和缓存穿透吗? (opens new window)
- 一份完整的阿里云 Redis 开发规范,值得收藏! (opens new window)
- 我们公司使用了 6 年的分布式锁,很是牛逼啊! (opens new window)
- 基于 Redis 分布式锁实现“秒杀”(含代码) (opens new window)
# 5.4. Docker
- 一文教您如何通过 Docker 搭建 Ngnix,反向代理,并配置 Https 证书 (opens new window)
- 教你轻松获取k8s镜像和安装包 (opens new window)
- 面试官:你简历中写用过docker,能说说容器和镜像的区别吗? (opens new window)
- K8S 常见面试题都在这儿了 (opens new window)
# 5.5. 项目
- 漫谈四种主流软件架构演进史 (opens new window)
- 大型网站图片服务器架构的演进 (opens new window)
- 一文搞懂蓝绿发布、灰度发布和滚动发布 (opens new window)
- 漫画:什么是中台? (opens new window)
- 从零开始搭建创业公司后台技术栈 (opens new window)
- 前端:后端,我要分手,咱两不合适 (opens new window)
- gitflow操作流程 (opens new window)
# 5.6. 杂记
- 给程序员的几条建议,精彩配图 (opens new window)
- 老鸟程序员才知道的40个小技巧 (opens new window)
- 如何精确评估开发时间的 4 个小套路? (opens new window)
- 一线 IT 公司开发转管理,我是怎么从 0 到 1 的? (opens new window)
- 跳槽季如何快速全面复习面试题 (opens new window)
- 架构师的工作都干些什么?!想做架构师必看! (opens new window)
- 如何成为优秀的技术主管?你要做到这三点 (opens new window)
- 自己工作环境没机会接触高并发、分布式怎么办? (opens new window)
- 苦逼程序员30岁离职创业2年有什么总结 (opens new window)
- 架构师如何应对复杂业务场景?领域建模的实战案例解析 (opens new window)
- 从程序员到项目总监,我用了13年 (opens new window)
- 从单体架构升级到微服务,在代码层面应注意的一些问题 (opens new window)
- 他,多次败北大厂后端工程师,得到了什么? (opens new window)
- 五年前,跳槽涨薪,你笑了,五年后,跳槽降薪,请接受 (opens new window)
- 擦屁股的活 (opens new window)
- 创业 7 年最痛教训 (opens new window)
图谱记录 →