这是我的个人网站和博客。在这里,我主要分享与技术和生活相关的内容。欢迎阅读!
博客项目的开发过程中,作者学习了很多东西,尤其是对项目架构的理解,强调高内聚、低耦合的重要性。作者使用了Tanstack Start框架,利用其中间件系统实现了依赖注入,优雅地传递上下文。作者还介绍了三层架构、目录结构、类型系统的基石、Repo层、Service层、Middleware等,展示了如何利用中间件注入依赖,实现业务逻辑的封装和解耦。这种架构模式具有高内聚、低耦合、极致的开发体验等优点,适合长期维护和测试。
Cloudflare Workers 是一个无服务器平台,允许开发者在全球边缘网络上运行代码。它支持多种语言,包括 TypeScript、JavaScript、Python 和 Rust。Workers 的特点是无状态,意味着数据无法持久化,但 Cloudflare 提供了一整套配套服务,包括 KV、D1、R2、Queues 和 Workflows,来帮助开发者构建应用。开发者可以使用 Wrangler 配置文件定义 Worker 需要的资源,并使用 Hono 框架简化路由处理。通过 Cloudflare Workers,开发者可以快速构建全球可用的应用,并享受低延迟和高性能的优势。
TanStack Start 是一个基于 TanStack Router 的全栈框架,提供了强大的类型安全路由系统和服务端生态。它支持文件即路由,路由文件结构灵活,支持扁平化和嵌套目录。TanStack Start 的类型安全是其最引以为傲的特点,包括路径参数和搜索参数的验证。它还提供了 API 路由和 Server Functions,允许在前端代码中调用后端逻辑。TanStack Start 默认开启服务端渲染(SSR),支持 Data-Only SSR 模式,解决了 Hydration Mismatch 问题。总的来说,TanStack Start 是一个功能完备的全栈框架,适合喜欢 TypeScript 和极致开发体验的开发者。
在使用 Cloudflare Workers 构建全栈应用时,仅设置 HTTP 缓存头(如 Cache-Control)并不足以触发 CDN 缓存。要利用 Cloudflare 的边缘节点缓存,必须显式使用 Cache API。正确的方法是:在 Worker 内部手动拦截请求,先去缓存中查询,如果未命中,则执行回源逻辑,并将结果写入缓存。可以使用 TypeScript 实现模板,包括构建 Cache Key、检查缓存命中、回源获取数据、构造新的响应用于缓存、设置缓存头和写入缓存。另外,可以配合 Purge API 实现“激进缓存”,通过编程式刷新保证内容的实时性。