[Mores]最近的动态

从一套裸起 goroutine 不管生命周期加无缓冲 channel 发送方阻塞下游一慢就泄漏到 OOM 加全局 map 当缓存被多 goroutine 无锁并发读写高并发下 concurrent map fatal 崩进程加到处 if err != nil 直接 return 把错误上下文丢得一干二净加压根不传 context 超时不可控取消不传播加靠 interface{} 加类型断言硬凑运行时 panic 加用 GOPATH 加手动 vendor 锁不住依赖加靠 fmt.Println 调试的早期 Go 祖传微服务、核心是支撑公司订单聚合与支付回调的微服务功能上一直能用在并发量不大的那些年里默默聚合订单接收支付回调直到一次大促把并发推高一个数量级这套从骨子里就没认真对待过 goroutine 生命周期和并发安全的代码在最不该出事的那一夜集中爆炸、把我们打醒的是大促当晚的连环崩溃第一记重拳来自那些没人管死活的 goroutine 网关给每个请求裸起一个 goroutine 去并发调下游再用无缓冲 channel 把结果收回来可一旦下游变慢上游请求因超时提前 return 走了那个还在傻等着往无缓冲 channel 里发结果的 goroutine 就因为再也没有接收方而永远阻塞在那条发送语句上再也退不出去大促那晚下游一变慢这种泄漏的 goroutine 开始成千上万地堆积每个都死死攥着自己那份请求上下文和缓冲区不放内存一路飙升最终 OOM 进程被杀几乎同时第二记重拳砸下另一处用一个全局 map 当本地缓存好几个 goroutine 并发地读它写它却没有加任何锁大促高并发下并发的读和写终于真正撞在一起 Go runtime 检测到 concurrent map read and map write 直接抛出一个连 recover 都救不回来的 fatal error 把整个进程当场干掉 → 2026 现代 Go 工程体系 context 控制生命周期加超时取消加 errgroup 编排 goroutine 启动即规划退出 + RWMutex 加 sync.Map 保护并发安全加 go test -race 检测竞态写代码时就被揪出 + fmt.Errorf 的 %w 包装错误链加 errors.Is/As 精确判断错误带完整来龙去脉 + context.Context 贯穿调用链超时与取消沿链传播一处慢则一起及时放手 + generics 类型参数编译期类型安全一份逻辑适配多类型无运行时断言 + 规范 defer 紧跟获取显式生命周期循环内资源即时释放绝不泄漏句柄 + Go Modules 加 go.mod go.sum 锁定整棵依赖树任何机器拉出完全一致的版本 + slog 结构化日志分级别带字段可检索聚合告警 87 天战役复盘:8 个 P0 复盘 + 6 条工程哲学 + 7 个关键数字

从一套用 callback 层层嵌套成回调金字塔向右缩进到屏幕边缘加 var 满天飞还到处污染全局加用 == 做隐式类型比较加在请求路径里同步阻塞加靠 console.log 调试加随手 npm install 锁不住版本的祖传 Node 服务、核心下单逻辑是五六层 callback 一层套一层嵌出来的厄运金字塔某个错误分支的回调里当年漏写了一个 return 平时流量从未触发可大促那晚高并发一压上来那条错误路径被频繁命中下单回调重复执行库存被重复扣减订单被重复创建瞬间一片超卖和重复订单、几乎同时另一个接口在请求处理路径里用 fs.readFileSync 同步读取一个随业务数据不断变大的配置文件又跟着一段同步 for 循环去处理它而 Node 是单线程事件循环这段同步代码一执行就好几秒这几秒里整个事件循环被死死阻塞健康检查下单查询所有请求全排在后面动弹不得瞬间集体超时负载均衡判定实例不健康摘了出去流量涌向其余实例又把它们一个接一个以同样方式压垮雪崩 + var 变量提升加函数作用域泄漏加经典循环闭包陷阱所有闭包共享同一个 var 变量等执行时循环已结束全打印成最终值 + == 隐式类型转换埋下空数组等于 false 字符串 1 等于数字 1 等诡异判断防不胜防 + callback 漏判 error 加 async 抛出却没人接最终 unhandledRejection 直接崩掉进程一个角落的疏忽干掉整个服务 + 靠全局变量和 script 加载顺序维系隐式依赖改一处牵全身 + 直接原地 mutate 共享对象与数组 push sort 原地改引发跨模块诡异 bug + 锁不住版本换台机器装出另一套我机器上是好的一上生产就报谁也没见过的错 → 2026 现代 Node.js 工程体系 Promise 加 async/await 扁平线性错误可被 try/catch 统一捕获 + 异步非阻塞 API 加 Worker threads 隔离 CPU 密集事件循环永不卡死 + const/let 块级作用域加 TDZ 声明即所见闭包符合直觉 + === 严格相等加显式类型转换比较行为可预测 + try/catch 加统一错误中间件加进程级兜底错误可见进程不裸崩 + ESM import/export 显式依赖边界清晰可静态分析可摇树 + 不可变更新展开解构数据流向可追副作用受控 + lock 文件加 npm ci 锁定整棵依赖树任何机器字节级一致 + pino 结构化日志加 jest 加 CI 自动回归 87 天战役复盘:8 个 P0 复盘 + 6 条工程哲学 + 7 个关键数字

从一套用 Python 2.7 写的习惯把整张表一次性读进内存同步串行一个接一个调接口到处传裸字典靠 print 调试用 requirements.txt 锁不住依赖的祖传 ETL 脚本、核心任务 rows db.query SELECT 星 FROM orders fetchall 把整张订单表一次性全部读进内存的大列表数据量翻倍后第一次突破几千万行这条 fetchall 瞬间吃光全部内存触发 OOM Killer 进程被当场杀死且无断点续传一晚处理前功尽弃、第二天加内存重跑又撞上第二堵墙这个任务处理每一行都同步调一个外部风控接口打标几千万行就是几千万次串行一个等一个的网络请求即便单次几十毫秒累加起来也是几十个小时报表延迟大半天业务方炸锅 + 纯 Python for 循环逐元素做数值计算解释器开销巨大几百万次累加拖成几分钟想用多线程加速又撞上 GIL 更慢 + 到处传裸 dict 有哪些字段什么类型全靠脑子记拼错 order amount 成 amout 静默 KeyError 或 get 返回 None 一路带错往下 + 无任何类型注解参数传错少给字段类型不符全靠运行时炸潜伏到冷门分支凌晨才爆 + requirements.txt 加 pip freeze 锁不住传递依赖换台机器装出另一套在我机器上是好的一上生产就报谁也没见过的错 + 裸 try except pass 吞掉异常失败信息静默销毁手搓 while True 重试无上限无退避不区分该不该重试 + 满地 print 调试线上无级别无结构无法检索出问题两眼一抹黑考古整夜 → 2026 Python 3.12 现代工程体系 生成器加迭代器逐块流式处理内存占用恒定与数据总量无关 + asyncio 加 aiohttp 并发 IO 大量等待重叠几十小时压缩到分钟级 + numpy pandas 向量化底层 C 批量或 multiprocessing 绕过 GIL 真并行 + dataclass 带类型数据类字段明确拼错即报错 IDE 补全 + type hints 加 mypy 静态检查类型错误运行前揪出接进 CI + uv 加 lock 文件精确锁定整棵依赖树任何机器字节级一致 + 结构化异常加 tenacity 声明式退避重试失败可见重试有章法 + logging 结构化日志分级别可配置可检索 + pydantic-settings 集中配置 + pytest 自动回归 87 天战役复盘:47 套工程修法 + 8 个 P0 复盘 + 6 条工程哲学

从用 Python 脚本把 prompt 拼一拼调一下大模型把返回的文本正则切一切就当函数调用的原型玩具思维做一个 AI Agent、决定调哪个工具靠一段正则去解析大模型输出的文本要求它输出形如 Action 工具名 参数的一行、某夜大模型对一个复杂问题输出了格式略有偏差的 Action 行正则解析失败而那个 Agent 循环没有任何步数上限也没有解析失败该怎么办的处理解析失败后只是把同样的上下文又丢回去让它再试一次模型又输出同样偏差正则又失败就这么以每秒数次反复调用大模型和下游工具陷入谁也没设防的死循环一夜烧掉平时大半个月的调用预算还把订单库连接池打爆 + prompt 在代码里用 f-string 硬编码拼接散落到代码库几十个角落同一句指令复制十几份改一处漏一处行为精神分裂又无版本改坏了回滚不了 + 多轮对话把从开始到现在的全部历史一股脑塞进上下文几十轮后突破 token 上限报错中断还在按 token 计费下每轮重发全量历史费用滚雪球 + 知识助手被问退货政策模型不知道却用流畅自信的语气编造一个错误天数用户信以为真酿成投诉 + 让模型输出 JSON 供下游解析它把 JSON 包进代码块加句解释或多个逗号 json.loads 当场抛异常崩链路打补丁写一堆正则修复畸形 JSON 越写越像无底洞 + 线上是个黑盒靠 print 调试出问题翻杂乱日志考古七八步根本定位不到又靠人工抽看几条就上线为优化 A 类改 prompt 却悄悄把 B 类改坏直到投诉涌来才发现暗中退化 + 对成本零管控每次都调最贵模型不缓存无预算熔断对上游 API 裸调不限流不退避流量一高被限流就雪崩把用户输入直接拼进 prompt 无护栏一句忽略以上指令的注入就被劫持越权 → 2026 生产级 AI Agent 原生 function calling 用 JSON schema 把工具作为结构化契约模型返回保证合法的调用对象 + ReAct 多步加硬性步数预算加多个异常出口加出错换思路而非盲目重试绝不失控 + RAG 检索增强先从向量库检索真实知识让回答 grounding 在可核查依据上根治幻觉 + 结构化 prompt 模板加版本管理可灰度可回滚 + token 预算加滑动窗口加早期历史摘要在预算内装最相关信息 + JSON schema 约束生成加 Pydantic 校验加失败带错误信息重试拿到必是合法结构 + 全链路 tracing 每步可追溯加评估集自动 eval 加回归门禁防暗中退化 + token 预算加语义缓存加模型分级路由加限流退避加输入输出护栏抵御烧钱雪崩与注入 87 天战役复盘:47 套工程修法 + 8 个 P0 复盘 + 6 条工程哲学

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索