
[代码异味 #1] 为什么意大利面代码是意大利面?
意大利面代码指的不是长度或脏乱,而是控制流。本文从迪杰斯特拉 1968 年反对 goto 的信件讲起,总结 goto 消失后意大利面依然存在的原因,以及如何用圈复杂度衡量它。
阅读文章ARCHIVE · 04
从基础概念到实践决策,循序浏览。

意大利面代码指的不是长度或脏乱,而是控制流。本文从迪杰斯特拉 1968 年反对 goto 的信件讲起,总结 goto 消失后意大利面依然存在的原因,以及如何用圈复杂度衡量它。
阅读文章

Claude Code 的 /init 命令会分析代码库并自动生成 CLAUDE.md。本文整理了已有文件时的行为、迁移 Cursor 和 Copilot 规则、交互模式,以及生成后完善文件的标准。
阅读文章
开启Swift 6模式后,并发错误会大量出现,而Sendable通常是核心。本篇整理这个协议的含义:值能否跨越隔离边界,以及按值类型化、不可变化、升级为actor的顺序给出迁移方案。
阅读文章
幂等性是指多次发送相同请求时,结果仍然相同的性质。本文总结网络故障和重试时需要幂等性的原因、GET、PUT、DELETE与POST的区别,以及如何实现Idempotency-Key。
阅读文章