卡片列表里标题长度不一,底部按钮对不齐。subgrid 让子元素直接参与父网格的行轨道,一行 CSS 解决。
Software Engineer · since 2000
写代码二十六年,
然后把踩过的坑写下来。
我是 goovo,AI 全栈 / 架构 / 后端。这里写系统架构、Web3 与 AI 研发里那些具体的判断 —— 不写「10 个必知技巧」,只写付过代价的结论。
最新文章
全部文章 →GEO 论文精读:40% 的可见度提升从哪来,又没证明什么
普林斯顿等机构的 KDD 2024 论文首次把 GEO 形式化:10K 查询、9 种改写策略、两个生成式引擎。本文拆开 40% 提升的实验前提、排名再分配效应,以及论文没有证明的事。
Rust 为什么快:从所有权语义到机器码的链路分析
Rust 的高性能不是某个单点特性,而是所有权/借用、内存布局、单态化与 LLVM 优化共同作用的结果。本文拆开这条链路,也拆开它的代价。
satisfies 解决了什么问题:一次类型收窄的实战
类型标注会丢掉字面量信息,as 会跳过检查,satisfies 是唯一「既校验又保留」的写法。用一个配置对象的例子说清楚三者区别。
Astro 内容层:把博客当作一个工程来维护
Content Collections 用 zod 校验 frontmatter,让文章字段的错误在构建期就暴露,而不是等你发现某篇文章从列表里消失了。
为什么 2026 年我还在写博客
在一个模型能替你写出一万字的年代,自己动笔的理由反而更清楚了:写作不是为了产出内容,是为了校准判断。
Postgres 索引膨胀排查手记:从 40GB 到 6GB
一张 2000 万行的表,索引占了 40GB。记录一次完整的膨胀排查过程:怎么确认、怎么安全重建、怎么防止再次发生。
GEO 出海
系列目录 →AI 搜索时代的海外电商增长手册
当买家把“搜索”换成“提问”,品牌怎样被 AI 看见、读懂、信任、比较,最后被下单? 五条主题线,一条可追踪的 132 篇路径。
随手笔记
全部笔记 →改完代码不想再手动 rebase -i 一个个 squash?git absorb 会根据改动自动生成 fixup 提交并归位到正确的 commit。