Convex - 全栈开发的新一代后端平台
Convex是一款开源的BaaS(Backend-as-a-Service)平台,专为现代Web应用开发者设计。它提供了一个高性能的实时数据库、文件存储、定时任务调度等核心服务。Convex的生态系统非常丰富,支持通过插件扩展功能,包括Cloudflare R2、Rate Limiter、AI Agent等。Convex的主要特点包括端到端类型安全、默认实时、强一致性等。开发者可以使用Convex开发高性能、实时的Web应用,并且可以通过自定义函数、组件等方式扩展Convex的功能。Convex还支持私有化部署,开发者可以使用Docker将Convex部署到自己的服务器上。
7 分钟15 次浏览
测试两个设备之间的连接速度
iPerf3是一款强大的网络带宽测量工具,支持TCP、UDP和SCTP等多种协议。它可以测量网络的最大带宽、延迟抖动以及丢包率,是网络工程师和开发人员进行网络性能调优的必备工具。iPerf3可以在Linux和Windows系统上安装和使用,支持直接安装和Docker部署。客户端可以使用命令行工具发起测试,支持多种测试模式,包括单线程和多线程测试。同时,也可以使用自动化脚本来简化测试过程。
3 分钟6 次浏览
Cloudflare Workers 上手:从零到部署一个短链接服务
Cloudflare Workers 是一个无服务器平台,允许开发者在全球边缘网络上运行代码。它支持多种语言,包括 TypeScript、JavaScript、Python 和 Rust。Workers 的特点是无状态,意味着数据无法持久化,但 Cloudflare 提供了一整套配套服务,包括 KV、D1、R2、Queues 和 Workflows,来帮助开发者构建应用。开发者可以使用 Wrangler 配置文件定义 Worker 需要的资源,并使用 Hono 框架简化路由处理。通过 Cloudflare Workers,开发者可以快速构建全球可用的应用,并享受低延迟和高性能的优势。
6 分钟29 次浏览
Drizzle ORM快速上手,数据库也能版本控制
Drizzle ORM 是一个 TypeScript 的数据库 ORM 框架,它允许开发者使用 TypeScript 定义 Schema 和查询语句。它支持 PostgreSQL 数据库,并且可以自动生成 SQL 迁移文件。Drizzle ORM 的优点包括:类型安全、直观的查询 API、透明的 Schema 和迁移文件。开发者可以使用 Drizzle ORM 来管理数据库 Schema 和数据,包括定义表结构、推送变更、读写数据等。Drizzle ORM 的核心理念是让开发者可以轻松地使用它,而无需学习额外的 Schema 语言。
3 分钟6 次浏览
暗色模式的正确打开方式:告别闪烁
实现暗色模式时,通常会使用ThemeProvider和useTheme hook来管理主题,并将主题偏好存储在localStorage中。但是,这种方法可能会导致主题闪烁问题,即页面刷新时,会先显示默认主题,然后快速切换到用户之前选定的主题。解决这个问题的方法包括使用inline script在页面渲染之前设置主题class,以及使用CSS选择器读取主题class来决定显示哪个图标。通过这些方法,可以避免主题闪烁问题,实现更好的用户体验。
4 分钟8 次浏览
上手Tanstack Start框架,舒适的开发体验
TanStack Start 是一个基于 TanStack Router 的全栈框架,提供了强大的类型安全路由系统和服务端生态。它支持文件即路由,路由文件结构灵活,支持扁平化和嵌套目录。TanStack Start 的类型安全是其最引以为傲的特点,包括路径参数和搜索参数的验证。它还提供了 API 路由和 Server Functions,允许在前端代码中调用后端逻辑。TanStack Start 默认开启服务端渲染(SSR),支持 Data-Only SSR 模式,解决了 Hydration Mismatch 问题。总的来说,TanStack Start 是一个功能完备的全栈框架,适合喜欢 TypeScript 和极致开发体验的开发者。
7 分钟26 次浏览
TypeScript 技巧:使用语义化时间告别“毫秒 vs 秒”的单位换算烦恼
为了解决不同API对时间单位的不一致性问题,利用TypeScript的模板字面量类型构建了一套语义化时间系统。核心实现包括一个通用的毫秒解析器和一个将时间字符串转换为秒的函数。通过引入Duration类型和ms解析器,获得了三个好处:消除歧义、类型安全和心智解脱。这种方法使得代码更易读、更易维护,并减少了由于时间单位不一致引起的Bug。
3 分钟19 次浏览
Cloudflare KV 高效技巧:使用“版本号”实现低成本批量缓存失效
使用 Cloudflare KV 做缓存时,开发者常遇到批量失效缓存的问题。传统方法使用 list 方法按前缀查找 Key,但这种操作慢且贵。更好的方法是引入“缓存版本号(Versioning)”。核心原理是将版本号嵌入 Key 中,读取时先获取当前版本号,拼接出 Key,失效时只需将版本号升级即可。这种方法操作原子化,O(1) 复杂度,即时生效,极大节省 KV 操作费用。需要注意给带版本的 Key 设置 TTL,让旧版本的“僵尸数据”自动清理,避免存储空间膨胀。
4 分钟30 次浏览
