归档
2024
全部文章搜索树
《算法笔记》第 1 篇:树越矮,查找就一定越划算吗?对照几种搜索树的实现,看维护平衡的开销与节点的存储方式如何影响选择。
部署一个 Docker Registry
Docker Hub 连不上,拉镜像成了部署的阻碍。搭一个能缓存公共镜像、存放私有镜像的仓库,把这条下载路径掌握在自己手里。
静态网页加载速度优化实践
静态博客为什么也会加载缓慢?调整 CDN 缓存与图片、字体、脚本的加载方式,逐项减少传输量和等待时间。
Python 的 import 陷阱
《Python 指北》第 2 篇:同一份 Python 代码,换个启动方式就导入失败了?用具体例子说明模块所在目录与包身份为什么不是一回事。
浅析 C 中函数返回值的一例 UB
本该返回整数的 C 函数漏写 return,会发生什么?从 GCC 生成的汇编追踪返回值,并观察优化选项的影响。
MySQL——从实践到原理
一条查询为什么会慢,一次更新又如何保证可靠?把 SQL 的使用与底层执行联系起来,理解 MySQL 的索引选择和事务设计。
Elastic Stack
搜索一个词,难道要把所有文档读一遍?用 Elasticsearch 建立可查询的文档库,理解它如何找到匹配项并排出相关结果。
PDB入门
《Python 指北》第 1 篇:程序跑到一半,变量究竟变成了什么?用 PDB 暂停 Python 程序,在现场执行表达式、验证猜测。
系统内核,启动!
《MiniOS64》第 4 篇:引导程序终于要把控制权交给内核了。用 C 写出第一行屏幕输出,并让构建脚本自动算好内核该从磁盘读多少。
从32位到64位
《MiniOS64》第 3 篇:CPU 支持 64 位,还要做什么才能真正用上?为引导程序建立地址映射,完成进入长模式所需的准备与切换。
从16位到32位
《MiniOS64》第 2 篇:离开 16 位实模式,原来的 BIOS 打印办法也不能照搬了。切入保护模式后,亲手向显存写出第一行字。
操作系统,启动!
《MiniOS64》第 1 篇:没有操作系统时,第一段代码由谁加载?写一个 512 字节的引导扇区,让计算机显示文字,再去磁盘寻找后续代码。
再谈 git——我的工作流
提交错了怎么撤销,分支改完怎样合并?记录我的 Git 与 GitHub 工作流,也谈仓库规范和自动化配置。
前端框架是怎么实现的?
写好的组件如何变成浏览器里的页面?梳理前端框架的打包过程,比较 SPA 与 SSR 的加载和渲染流程。
Github Pages DNS 配置
用 Cloudflare 为 GitHub Pages 配置自定义域名,让主域、www 和博客子域分别指向对应站点。
WSL 安装 BCC 指南
在 WSL2 中编译并配置内核,补齐 BCC 所需环境,记录安装过程中内核头文件与工具链的处理步骤。
WSL2 网络设置指南
通过 .wslconfig 配置镜像网络、DNS 隧道与自动代理,让 WSL2 复用 Windows 宿主机的网络设置。
MyBatis
《深入 Spring 源码》第 6 篇:把一条 SQL 变成一次 Java 方法调用,少写重复的数据库操作代码。实践 MyBatis 映射,并为应用接入登录与权限控制。
Spring Boot
《深入 Spring 源码》第 5 篇:一个启动类为何能带起整个应用?追踪 Spring Boot 源码,看框架怎样按条件补齐配置,把繁琐的启动工作接过去。
Spring MVC
《深入 Spring 源码》第 4 篇:一次 HTTP 请求如何变成 Java 方法调用?追踪框架调度源码,看请求怎样找到处理者,再把结果交还客户端。
JDBC 和事务
《深入 Spring 源码》第 3 篇:余额扣了,库存却没减成功,这笔操作该怎么算?追踪 Spring 事务源码,看一组数据库修改如何共同提交或回滚。
AOP
《深入 Spring 源码》第 2 篇:业务方法没有改,调用时却多出了日志和事务。追踪 Spring 代理的创建过程,看这些额外逻辑在何时被接入。
IoC
《深入 Spring 源码》第 1 篇:对象不再亲手创建,它依赖的对象由谁准备?跟着 Spring 源码看容器如何识别、组装并管理它们。
Redis 运维
《深入 Redis 源码》第 7 篇:缓存本来替数据库挡流量,失效时却可能把压力集中打回去。讨论 Redis 使用中这类故障的预防与处理。
JVM 原理与使用
《深入 Java》第 4 篇:JVM 如何执行字节码,又如何回收不再使用的对象?弄清程序运行时发生的事,才知道性能调优该观察什么。
Java 集合
《深入 Java》第 3 篇:同样是存取一组数据,换个容器为什么就会变快或变慢?借源码理解 Java 集合的成本,按访问方式选择容器。
Java 并发编程
《深入 Java》第 2 篇:多个线程各自执行正确,合在一起为什么会出错?理解共享数据的可见性与操作原子性,再看 Java 如何协调线程。
Java 进阶
《深入 Java》第 1 篇:运行中的 Java 程序如何检查一个类、调用未知的方法?以反射和注解为重点,补齐阅读框架代码常用的语言知识。
共 29 篇文章
