
热门
从 Cache API 到 Workers Cache:命中不再消耗 CPU TimeCloudflare Workers Cache 将缓存层置于 Worker 之前,命中时完全不启动 Worker,CPU Time 直接归零。本文深入解析其工作机制、并发合并与分层缓存优势、配置防踩坑指南,以及本博客采用双 Entrypoint 架构的具体落地实践。
7 分钟182 次浏览
Antigravity MCP 踩坑记录:本地 Auth State 清不干净怎么办
记录 Antigravity MCP OAuth 排障过程。旧 Client ID 清不掉的根源在于本地 provider 级别的认证状态被复用。本文总结了典型症状、真实的缓存存放位置,并提供了一键清理的 Python 脚本。
6 分钟129 次浏览
禁用Windows Ctrl + 空格切换输入法解决VSCode快捷键冲突
Windows 系统中,Ctrl + Space 默认绑定为切换中英文输入法的系统级快捷键,这会与开发工具如 VSCode 的代码补全提示(IntelliSense)冲突。解决方案是通过修改 Windows 注册表禁用系统级的 Ctrl + Space 热键。操作步骤包括创建注册表文件,运行注册表文件,并重启电脑。修改注册表可以稳定地禁用 Ctrl + Space 热键,不会在重启或更新后被系统自动还原。同时,需要避免通过系统设置界面更改输入法热键,以防止注册表值被还原为默认状态。
3 分钟151 次浏览
TypeScript 错误处理:用 Result 类型替代 try-catch
TypeScript 中的 try-catch 模式可能会隐藏类型安全陷阱,因为 catch 块中的错误类型是 unknown。自定义错误类可以解决这个问题,但也存在维护问题。Result 类型可以提供更优雅的解决方案,通过可辨识联合类型和 const 类型参数实现类型安全的错误处理。这种方法可以让 TypeScript 在编译时就告诉你有哪些错误需要处理,漏了就报错。Result 类型的优点包括类型安全、编译时检查和低维护成本。
5 分钟59 次浏览
使用Cloudflare Durable Objects构建一个分布式限流器
Cloudflare Durable Objects(DO)是一种有状态的计算资源,与Cloudflare Workers不同。DO提供了独立的存储空间和唯一的ID访问,适合处理特定场景,如分布式限流器。DO的特性包括数据隔离和强一致性,非常适合WebSocket服务、多人协作和定时任务。通过构建分布式Token Bucket限流器的例子,可以看到DO的强大之处,包括简单的状态管理、低延迟和直观的开发体验。DO的潜力远不止于此,可以用来实现更复杂的应用,如实时游戏逻辑和轻量级数据库应用。
6 分钟90 次浏览
我的博客项目架构 - Tanstack Start与依赖注入实战
博客项目的开发过程中,作者学习了很多东西,尤其是对项目架构的理解,强调高内聚、低耦合的重要性。作者使用了Tanstack Start框架,利用其中间件系统实现了依赖注入,优雅地传递上下文。作者还介绍了三层架构、目录结构、类型系统的基石、Repo层、Service层、Middleware等,展示了如何利用中间件注入依赖,实现业务逻辑的封装和解耦。这种架构模式具有高内聚、低耦合、极致的开发体验等优点,适合长期维护和测试。
6 分钟75 次浏览
GTM 与 GA4 的正确食用方法
搭建网站数据分析体系需要使用Google Tag Manager(GTM)和Google Analytics 4(GA4)。首先,创建GTM容器并安装到网站中,集中管理所有追踪脚本。然后,在GA4中创建数据流,获取Measurement ID,并在GTM中添加GA4 Configuration标签。配置事件追踪,包括按钮点击、表单提交等用户行为,并将这些行为发送到GA4进行分析。同时,配置广告转化,包括Meta Pixel和Google Ads,确保广告平台能准确接收到来自网站的行为数据。最后,实现Cookie同意管理,使用vanilla-cookieconsent库创建Cookie同意弹窗,并与GTM的Consent Mode联动,确保所有标签都遵循用户的Cookie选择。通过这些步骤,构建一个数据结构清晰、事件追踪规范、广告转化准确、隐私合规的网站数据分析体系。
7 分钟35 次浏览
