- 博客(680)
- 收藏
- 关注
原创 WHAT - 理解 AbortController 协作式取消通知机制
在介绍过利用 AbortController 来取消请求的具体实践。今天进一步来认识其更细节的机制。它能否真正停止工作,取决于执行工作的 API 是否接收并处理取消信号。
2026-11-05 16:05:13
426
原创 WHAT - 前端延迟调度、取消与过期结果保护技巧
这是业务调用方的选择,不是调度器自动降级。如果等待期间组件卸载、实例失活,或者又安排了一次检测,旧检测仍可能执行。work 执行完后,只要没有再次 schedule/cancel,原来的 isCurrent 仍可能为 true;EMB-09 的角色下拉最终使用局部定位容器,没有接入这个工具:能通过正确的布局归属解决的问题,不需要额外帧任务。若库有明确的完成事件,应优先结合完成事件,而不是不断增加 RAF 层数。以下是通用模式,reportFailure 是调用方自己的错误处理函数,不属于工具 API。
2026-11-05 15:36:11
304
原创 WHAT - Vite 8(Rolldown 底层构建引擎升级)
在之前介绍过WHY - 为什么选择 vite,当时还是从 Vite 自身创新度出发。时过境迁,Vite 已经迭代到了 Vite 8.Vite 8 最大的升级是底层构建引擎换成了 Rust 编写的 Rolldown(在WHY - 为什么选择 vite文末同样提到过),主要收益是生产构建更快、开发与构建工具链更统一。
2026-10-16 14:58:19
176
原创 WHAT - CI/CD——从前端流水线到 Go 服务发布
CI/CD 通常包含三个相关概念。之前在WHAT - CICD 持续集成与持续部署也介绍过。代码检查 → 自动测试 → 生成产物 → 发布环境 → 验证 → 回滚前端通常生成静态资源,Go 通常生成二进制或容器镜像;前端变量经常在构建时注入,Go 配置通常在运行时注入;Go 服务是长期运行进程,需要重启、健康检查和优雅退出;后端发布需要额外处理数据库兼容、并发安全和服务依赖;生产 CD 不只是“执行部署命令”,还包括权限、审批、灰度、监控和回滚。
2026-10-15 14:39:04
329
原创 WHAT - Go + Rust 优势在我?
如果有一门语言,既拥有 Go 一样的编译速度,又具备 Rust 那样无需垃圾回收的内存安全,还允许开发者深入底层、进行极致性能优化,它是否会成为最适合 AI 时代的编程语言?不过,真正值得追求的是完整的反馈速度,包括类型检查、增量编译、链接、测试启动,以及错误定位。这只是帮助思考的模型,真实流程可能并行,也可能有缓存。但它说明,语言对 AI 的友好程度,不能只看模型能否顺利写出代码,还要看代码能否被快速、明确地验证。“Go 的编译速度,加上 Rust 的安全与底层能力”,可以作为一个有价值的设计愿景。
2026-10-13 11:48:39
319
原创 WHAT - 快速理解依赖注入 DI 和控制反转 IoC
NestJS 的 IoC 容器会自动完成创建和注入;Go 通常通过构造函数手动完成。IoC 是设计思想,DI 是实现 IoC 的常见方式。
2026-09-22 15:03:59
179
原创 WHAT - Go 接口与依赖注入(对比 TS interface / NestJS DI)
Notifier 编译期类型契约NOTIFIER 运行时注入令牌为什么用Symbol?因为它运行时存在,而且不容易和其他模块的同名字符串冲突。
2026-09-21 19:55:11
131
原创 WHAT - 微服务架构客户端负载均衡
客户端↓├──→ 服务 A:10.0.1.11├──→ 服务 B:10.0.1.12└──→ 服务 C:10.0.1.13它不知道后面有多少服务实例。Nginx选择一个实例并转发请求。这里的“服务端”并不是指负载均衡代码运行在业务服务中,而是指它作为独立代理,站在服务实例前面。第一次调用 → 10.0.1.11第二次调用 → 10.0.1.12第三次调用 → 10.0.1.13订单服务├──直接调用→ 库存服务 A├──直接调用→ 库存服务 B└──直接调用→ 库存服务 C。
2026-09-20 14:30:45
279
原创 WHAT - 容器化 Docker for Go(前端视角)
Docker也建议生产镜像只保留应用真正需要的内容,以减小体积和攻击面。容器化把应用 + 运行时 + 依赖打包到一个标准化"盒子"里,实现"一次构建,处处运行"。其他语言的容器像“搬进去一套运行环境”,而很多 Go 服务只需要“把编译好的程序扔进去”。总结:CGO 可以理解为:C + Go —— 让 Go 代码调用 C 代码的工具和机制。把“生成程序需要的东西”和“运行程序需要的东西”彻底分开,最终镜像只交付运行产物。最终镜像只包含应用运行所必需的内容,不包含仅在构建时使用的工具。
2026-09-16 11:26:45
121
原创 WHAT - 数据业务链路术语全掌握
MySQL记录业务现在是什么状态,Kafka记录发生了什么,Flink和Spark负责加工,Iceberg负责保存历史,StarRocks/Doris负责快速分析,Trino负责跨系统查询,而SQL是操作这些数据系统的共同语言。理解数据业务,关键不是背产品名称,而是理解数据从哪里来、如何流动、如何存储、如何计算,最后被谁使用。不过 CDC 记录的是“表发生了什么变化”,领域事件表达的是“业务上发生了什么”。ELT保留原始数据,更方便重新计算和修改统计口径,但对存储、治理和计算平台要求更高。
2026-09-15 19:33:55
428
原创 WHAT - 从前端组件化思维到后端架构设计入门
前端架构你一定不陌生:组件化、状态管理(Redux/Pinia)、路由、构建工具链……这些都是前端架构的范畴。一个后端系统由哪些部分组成?它们怎么分工、怎么通信?前端组件 = 后端模块/服务组件间 props / 事件通信 = 服务间 API / 消息队列通信前端状态管理 = 后端数据库 + 缓存前端路由 = 后端 API 网关 + 负载均衡。
2026-09-15 17:47:11
122
原创 WHAT - 后端性能调优——从 Lighthouse 到 pprof 的思维跃迁
前端做性能优化,你一定用过 Chrome DevTools 的 Performance 面板、Lighthouse,或者用过来测一段代码跑了多久。先定位瓶颈,再针对性优化——区别只是工具和指标不同。Go 语言自带了一套强大的性能分析工具链,核心是pprof。前端工具Go 对应物用途Performance 面板看函数耗时占比Memory 面板看内存分配与泄漏任务管理器 / 线程数看 goroutine 数量与泄漏testing.B(基准测试)精确测量代码执行时间看调度、网络、同步的时间线。
2026-09-14 14:13:55
218
原创 WHAT - 消息队列入门(RabbitMQ / Kafka + Go)
消息吞吐量 = 每秒处理的消息数(msg/s)数据吞吐量 = msg/s × 平均消息大小(MB/s)10 万条/s × 1 KB ≈ 100 MB/s1 万条/s × 100 KB ≈ 1 GB/s消息多大是否持久化有几个副本生产者是否等待确认是否批量发送、压缩有多少队列或分区能接受多大的 P99 延迟。
2026-09-12 19:23:36
246
原创 WHAT - 微服务统一入口配置原理
普通代理代表客户端访问服务器;反向代理代表服务器集群接收客户端请求。用户服务:http://user-service:8081文章服务:http://post-service:8082↓↓响应再由网关转发回客户端。
2026-09-12 18:38:28
263
原创 HOW - iTerm2 快捷提效
绑定自己顺手的组合键。在浏览器或编辑器里也能一键呼出终端,再按隐藏,适合临时查东西、运行一条命令。,再开启 Shell Integration,日常就能省掉不少切窗口和翻日志的操作。iTerm2 是 macOS 上很好用的终端。尤其是最后一个:编译或测试开始后设置提醒,就可以切出去做别的事。例如左边操作 Git、右边跑服务,报错时直接放大右边查看。自定义过键位的话,以菜单显示为准。,适用于支持的 shell 和配置;是 Command,
2026-09-10 14:31:10
166
原创 WHAT - SEO 搜索引擎优化与 GEO 生成式引擎优化
SEO 让用户在搜索结果里找到你;GEO 让 AI 在回答中引用或推荐你。这里的 GEO 指 “生成式引擎优化”。对比SEO:搜索引擎优化GEO:生成式引擎优化目标提升搜索排名、获得点击获得 AI 的提及、引用或推荐面向渠道Google、百度、必应等搜索引擎ChatGPT 等 AI 问答及搜索中的 AI 回答优化重点内容相关性、网站可抓取性、外链、页面体验回答清晰、来源可信、原创数据、内容易于读取和理解衡量指标排名、自然搜索流量、转化率AI 提及率、引用率、引荐流量和转化率。
2026-09-10 14:19:00
586
原创 WHAT - 数据缓存三大问题(Redis)
前面两个问题比较好理解。缓存穿透 —— 前端表现为请求不存在的 API 路径,后端表现为无效请求绕过了缓存层、缓存击穿 —— 前端表现为热门资源缓存刚过期瞬间,后端表现为热点数据的缓存空窗期。前端类比:就像请求一个不存在的路由,你不会每次都去服务器查,而是在前端路由表里先判断——有就走,没有直接 404。多级缓存:前端表现为Service Worker → HTTP 缓存 → 服务器,后端表现为一层一层往下找。缓存雪崩,前端表现为批量资源缓存同时失效,后端表现为大面积缓存同时过期。
2026-09-09 14:50:28
84
原创 WHAT - 数据库 db 事务的四个隔离级别
BEGIN;SELECT *订单 1订单 2COMMIT;SELECT *订单 1订单 2订单 3之前不存在的“订单 3”像幽灵一样出现了,所以叫幻读。不可重复读:同一行的内容变了。幻读:符合查询条件的行数量变了。不过 PostgreSQL、MySQL InnoDB 等数据库的 Repeatable Read 实际行为可能比 SQL 标准要求更强,很多情况下也不会出现上述幻读。类比:已经看过的员工资料不会变化,但再次统计“研发部有多少人”时,理论上可能多出一名新员工。
2026-09-08 15:23:01
504
原创 WHAT - 从执行模型和生命周期看前端和后端的事务
前端:每个用户通常拥有独立的浏览器内存后端:所有请求共同访问数据库中的共享数据前端:短暂、可重建、通常只是权威数据的副本后端:持久、共享、代表真实业务状态所以:前端主要处理异步竞态和 UI 状态同步;后端必须通过事务、锁、版本号和隔离级别,保护共享的持久化业务数据。
2026-09-08 15:00:06
203
原创 HOW - 前端项目环境变量
API 地址CDN 地址构建时间应用版本功能开关日志级别.env 配置写在哪里process.env Node.js 如何读取环境变量import.meta.env Vite 前端代码如何读取环境变量.envVITE_APP_TITLE=示例应用它不是 JavaScript 文件,也不会被浏览器自动读取。必须由 Vite、Node.js 或 dotenv 等工具加载。.env 所有模式都会加载.env.local 本机配置,通常不提交 Git。
2026-09-08 11:21:51
374
原创 WHAT - Remix 入门和基本实践:理解两套产物
loaderaction官方构建说明也明确将 Framework Mode 的输出分成浏览器版本与服务器版本。
2026-09-07 19:24:59
486
原创 WHAT - Remix 入门和基本实践:回归 Web 标准的全栈开发
Remix 是一种以 Web 平台为基础的全栈开发方式。URL 与嵌套路由HTTP Request、Response 和状态码HTML<form>与 FormDataCookie、Session 和缓存头服务端渲染与渐进增强URL└─ 匹配路由树├─ loader:读取数据├─ Component:渲染页面├─ action:处理修改└─ ErrorBoundary:处理异常路由模块同时提供自动代码拆分、数据加载、重新验证和局部错误边界等能力。官方路由模块说明。
2026-09-07 19:17:41
357
原创 WHAT - DeepSeek Harness(dsh)可插拔的 Agent 运行时
它已经包含完整 Agent 产品需要的模型接入、循环执行、工具、权限审批、沙箱、会话持久化、Web UI、SDK、子 Agent、计划与任务系统;除了 DeepSeek,也支持 OpenAI、Anthropic、Azure、Bedrock、Vertex、自定义 OpenAI-compatible endpoint 等配置。模型看到的内容、工具调用、流式输出、审批结果都能由日志恢复,因此支持回放、续跑、分叉、UI 渲染和遥测。文件、Shell、终端、MCP、Web、子 Agent。不要从头遍历所有目录。
2026-08-14 10:35:53
670
原创 WHAT - SolidJS 如何实现接近原生的更新性能
Solid 的性能优势并不只是因为“没有虚拟 DOM”,而是因为它建立了一条更短的更新路径:编译器提前确定 DOM 结构,Signal 在运行时记录精确依赖,状态变化后直接执行对应的 DOM 更新。换句话说,Solid 把原本需要在运行时反复完成的“创建节点描述、重新执行组件、比较节点树”工作,分别交给了编译阶段和细粒度响应式依赖图。最终,开发者仍然可以使用熟悉、声明式的 JSX,而浏览器执行的却是接近手写原生 JavaScript 的定向 DOM 操作。
2026-08-08 14:14:17
389
原创 WHAT - NextAuth 权限认证机制
NextAuth(Auth.js)就是 Next.js 生态里最流行的认证框架,负责帮开发管理“用户登录、会话、OAuth 授权和权限控制”,让开发者不用从零实现认证系统。后面我们将进一步讲解 NextAuth 的整体架构(Provider → Callback → JWT → Session → Middleware)以及它的登录流程源码是怎么工作的。
2026-06-03 19:39:21
294
原创 WHAT - Agent 火焰图分析
火焰图是:用来展示“程序执行时间主要耗在哪”的可视化。不是时间而是资源占比(通常 CPU 时间)调用栈深度(call stack)说明耗时越多说明调用层级越深在 AI Agent 里,火焰图已经从:“程序性能分析工具”进化成:“认知过程可观测工具”Agent 为什么慢为什么贵为什么漂移为什么不收敛为什么疯狂 retry为什么 hallucinate本质是在分析:Agent 的“思维耗散路径”。
2026-05-29 15:15:03
467
原创 WHAT - AI Agent 容错设计
AI Agent 的容错设计,本质是:接受 LLM 不可靠,然后通过“中间可验证 + 自动纠偏”把一个 probabilistic system强行工程化成一个可收敛系统。
2026-05-26 19:30:20
490
原创 WHAT - AI 领域的 hermes 和 harnes
维度HermesHarness在 AI 中的角色具体的 AI 模型 / 智能体产品控制、测试、连接 AI 的框架与方法论代表项目/技术Hermes 3 大模型Hermes-Agent 自进化智能体lm-evaluation-harness(大模型评测标准)Harness Engineering(AI 安全与治理)Harness.io(AI 运维平台)比喻赛道上正在奔跑的赛马(或者极具智慧的信使)骑手手中的缰绳,以及战马脚下的测试赛道。
2026-05-22 18:16:17
809
原创 HOW - AI 时代 Figma 出码提效
AI 时代 Figma 的高效高质量出码 = 可机器读的设计系统(Variables + Auto Layout + 已发布组件)+ Code Connect 把设计钉在真实代码上 + Dev Mode MCP 把上下文送进 IDE + LLM 按仓库约定改写——而不是追求一键生成可合并的整仓代码。
2026-05-21 14:41:01
415
原创 HOW - 构建一个轻量前后端一体服务
一个域名 + 一台 2C2G 的 VPS 完全足够,而且这种需求是"轻量后台 + 内容站"的经典场景,有很多成熟到几乎不用写后端代码的方案。下面按"省心程度"从高到低给三个推荐,挑一个最对路的就行。
2026-05-20 17:16:16
582
原创 WHAT - Figma MCP 入门指南
是 Cursor 和外部工具之间的协议;Figma 官方提供了一个 MCP server,让 Cursor Agent 可以直接读取/写入Figma 文件,而不用开发者手动截图、复制 CSS、抄代码。它的能力分四大块:从 Figma 读设计get_figjam管理 Code Connect 映射(让设计组件 ↔ 代码组件一一对应)写回 Figmause_figma生成 FigJam 流程图。
2026-05-11 15:26:54
606
原创 WHAT - npm和corepack
Corepack 是 Node.js 官方提供的“包管理器版本控制工具”,让团队无需手动安装 pnpm/yarn,也能保证版本一致。
2026-05-08 14:20:53
588
原创 WHAT - npx和nvm关系以及现代替代方案
在我们介绍过 npm 和 npx 的关系,其中最后也提到了 “这将无需使用 nvm 之类的工具或其他 Node.js 版本管理工具”。今天具体来介绍一下两者的区别。其实npx和 nvm 完全不是一类东西。很多人容易混,因为都和 Node.js 有关,但它们解决的问题不同。
2026-05-08 12:01:12
479
原创 WHAT - CSS Variable Slot 模式
btn {组件只关心变量,不关心怎么来的CSS Variable Slot 模式,就是用 CSS 变量作为“中间层”,把多个样式维度解耦,从“组合枚举”变成“运行时组合”。
2026-05-06 17:12:16
583
原创 WHAT - 组件库与 Dumi
Dumi 是一个“为组件库而生的文档框架”,让开发者用 Markdown + Demo 就能搭建一个专业级组件文档站。
2026-05-06 17:11:49
514
原创 WHAT - classnames 条件 class 拼接器机制
classnames 本质是一个“条件 class 拼接器”,让复杂 className 逻辑变得可读、可维护。
2026-05-06 16:01:52
396
原创 WHAT - Antd 组件库基于单个主题色用统一算法进行派生机制
Ant Design 的主题机制,本质是:用一个主色作为输入,通过统一算法生成完整且一致的设计系统,而不是人工维护一堆零散颜色。
2026-05-06 14:14:16
436
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅