领域驱动设计(DDD):从三层架构到 DDD 架构的演化

三层架构在复杂业务下的三个典型问题——业务逻辑分散、领域模型贫血、过度依赖数据存储,以及对应的 DDD 分层与各层职责划分。

领域驱动设计(DDD):从三层架构到 DDD 架构的演化

领域驱动设计(DDD):从基础代码探讨高内聚低耦合的演进

不堆概念,从一段下单的「事务脚本」代码开始,逐步演进到实体、值对象、聚合根与领域服务,说明 DDD 到底解决了什么耦合问题。

领域驱动设计(DDD):从基础代码探讨高内聚低耦合的演进

一行代码引发的性能暴跌 10 倍

循环里少写了一个引用,性能掉了十倍。从 JIT 逃逸分析与标量替换的角度,解释为什么「没被使用的对象」会真的被消除掉。

一行代码引发的性能暴跌 10 倍

一个正则表达式导致 CPU 高的问题排查过程

线上 CPU 飙到 80% 以上,最后定位到一个写错的邮箱正则。记录 top -H、jstack 到正则回溯(catastrophic backtracking)的完整排查过程。

一个正则表达式导致 CPU 高的问题排查过程

简述 G1 垃圾回收器和 OOM 问题的排查

整理 G1 的常用 JVM 参数,以及 OOM 排查中用到的 jps、jmap、pmap、perf 等命令,并弄清 RSS 与 VSZ 的区别。

简述 G1 垃圾回收器和 OOM 问题的排查

手写一个简单的 JVM(二):模拟运行 JVM

接上篇,把解析出的字节码放进模拟的运行时数据区:方法区、虚拟机栈、栈帧与局部变量表,实现指令分派并跑通一个 1+2 的加法。

手写一个简单的 JVM(二):模拟运行 JVM