后端杂记记一些工作里踩过的坑
高级搜索
2026-09-30后端

配置写在代码里的第 100 天,我终于建了配置表

阈值、开关、白名单……这些东西写进代码的那一刻,就注定了以后每次改动都要发版。

2026-09-28后端

消息队列怎么选:先想清楚你要它干什么

Kafka、RabbitMQ、RocketMQ 的对比文章满天飞,但选型的第一步是回答「你的消息是什么形状的」。

2026-09-20前端

还在维护老项目?jQuery 的几条性能习惯值得捡起来

老项目里的 jQuery 不是原罪,写得糙才是。几条老规矩,今天依然适用。

2026-09-08运维

Windows 计划任务避坑记:程序跑得好好的,任务一启动就坏

手动运行一切正常,挂到计划任务上就各种失败。起因网点、工作目录、账户权限,三处经典坑。

2026-09-02后端

接口改不动了才开始想版本管理,已经晚了半步

版本管理的本质是给演进留退路。三个决策点:版本放哪、什么时候升、旧版本留多久。

2026-08-19C#

我写过的十二行不安全代码

为了把图片灰度化从 400ms 压到 90ms,我用了 unsafe。这是那十二行和它教会我的事。

2026-08-15后端

日志是写给三个月后的自己的

排查问题时最痛的不是没有日志,是日志里没有线索。三条纪律,让日志能救你而不是烦你。

2026-08-05数据库

2C4G 小机器上跑 Redis,内存是怎么省出来的

ziplist、intset、ziplist 阈值、内存碎片率——小机器上的 Redis 每一分内存都值得计较。

2026-07-30运维

1.2 GB 到 110 MB:镜像瘦身的一次完整记录

多阶段构建、换基础镜像、合并 RUN、清缓存。四招下来,构建和部署都快了一大截。

2026-07-18网络

TCP 心跳、WebSocket Ping、MQTT Keep-Alive 有什么区别

都在保活,但一层管连接、一层管穿透、一层管会话。混着配的时候坑就来了。

2026-07-14数据库

一条慢查询的三天求生记

EXPLAIN 三次,结论三次都不一样。最后救它的不是索引,是一个写法习惯。

2026-07-03网络

REST 是个名词,不是规范书

HATEOAS 没人做,PUT/DELETE 全项目用不上几个,但这不妨碍我们做一套好用的接口。

2026-06-28网络

超时和重试的三条纪律,救过我不止三次

没有超时的调用等于永远在等,没有退避的重试等于二次攻击。三条纪律把外部依赖管起来。

2026-06-21网络

HTTP 状态码,我真正用到的也就这几个

背熟 60 个状态码不如吃透 8 个。200/204/304/400/401/403/404/429 之外,大多数都是礼貌性出现。

2026-06-09数据库

MongoDB 聚合管道实录:一次日志统计需求

产品要按天、按渠道、按版本三个维度统计崩溃率,单字段索引不够,$facet 来救场。

2026-05-28数据库

PostgreSQL 和 MySQL 索引行为的三点差异

都是 B+ 树,但聚簇、回表和页面分裂的表现完全不一样。从 MySQL 迁 PG 前最好先看这篇。

2026-05-14C#

Quartz.NET 的 Misfire 策略,我踩过的三个坑

任务错过了触发点到底补不补跑?WithMisfireHandlingInstructionDoNothing 不是万能挡箭牌。

2026-05-11数据库

别小看 SQLite:很多项目根本不需要装数据库

无服务、零配置、单文件、公共领域。当「数据只有一个写入方」时,SQLite 往往是最对的那个答案。

2026-04-09后端

限流的四种姿势,以及我们最终选的那个

计数器、滑动窗口、漏桶、令牌桶——先分清你保护的是自己还是下游,选型就清楚了。

2026-03-24网络

TCP 没有「消息」这个概念

粘包不是 bug,是 TCP 的本性。字节流之上,消息边界要自己画。

2026-03-08C#

不用 unsafe,字符串处理也快四倍

Substring 每次都在堆上造新串。Span 让你「切片」而不「复制」,托管代码照样能跑进微秒级。

2026-02-20运维

Nginx 我真正用到的配置,就这几段

Nginx 能做的事很多,一个内部系统的反代需求其实就三段配置。抄下来改改就能用。

2026-02-05后端

接口幂等:从一次重复扣款说起

网络重试是常态不是异常。把「每条请求都是新的」这个假设扔掉,幂等设计就入门了。

2026-01-22运维

服务器 CPU 100% 的十分钟排查法

告警响了别慌,按固定节奏走一遍:定位进程、定位线程、定位代码。十分钟内基本能说出个所以然。

2026-01-07C#

分代假设:读懂 .NET GC 回收策略的主线

绝大多数对象朝生夕死——这一条经验假设撑起了整个分代回收。理解了它,调优思路就顺了。

2025-12-10C#

EF Core 慢下来的三种方式,我们全踩过了

N+1、全表跟踪、客户端求值。三个坑都不深,叠在一起就是接口超时。

2025-11-26前端

强缓存和协商缓存,配错一次全班白屏

缓存策略本身不难,难的是「谁该强缓存、谁该协商」这组搭配。用一张表说清楚。

2025-11-12C#

一行正则把接口拖到超时:回溯灾难实录

正则写得再顺手,嵌套量词一上场就是指数爆炸。这次事故让我记住了两个写法红线。

2025-10-30网络

被预检请求卡了一下午,才真正读懂 CORS

明明设置了 Access-Control-Allow-Origin,为什么还是报跨域?因为浏览器的动作比你想的多一步。

2025-10-14工具

rebase 还是 merge,我把团队的分歧整理成了三条规则

两人小队也能吵起来:feature 分支到底该 rebase 还是 merge。吵不出结果,就定规则。

© 2026 后端杂记 · 网站地图 · 订阅