Skip to content
所有分類

tech

518 篇文章

TypeScript 7:Go 原生重寫讓 type check 變快,但遷移不只換掉 tsc

TypeScript 7 把 compiler 與 language service 原生重寫為 Go,官方與大型使用者回報約 10 倍級的改善;收益來自共享記憶體平行化,代價是舊 API 與 compiler option 必須清理。

techdeep-dive

Typesense 站內搜尋:把全文檢索做成可控制的產品功能

Typesense 是以即時、容錯關鍵字搜尋為核心的搜尋伺服器:用 collection schema、欄位權重、facet 與排序就能做出站內搜尋,也能自行架設或交給 Typesense Cloud;繁體中文欄位要設 locale: zh,專業詞彙則可能需要自訂斷詞。

Vercel:Frontend Cloud 的優勢來自 Framework-aware Deployment

Vercel 把 framework build output、preview、CDN/cache 與 Functions 綁成 deployment;速度來自深度整合,代價是 runtime、data locality、成本與可攜性邊界。

Vite 8 與 Rolldown:前端建置從雙引擎走向同一條管線

Vite 8 把開發期的 esbuild 與正式建置的 Rollup 收斂成 Rolldown;速度是結果,真正重要的是開發與 production 不再由兩套 bundler 語意拼接。

Vitest:共用 Vite 設定,但不要把 component test 當成 E2E

Vitest 的優勢不是 Jest API 長得熟,而是測試與應用共用 Vite 的 transform、alias 與 plugin;Browser Mode 增加真瀏覽器信心,卻仍不能取代完整 E2E。

Vultr:Cloud Compute、VKE 與 GPU 之間怎麼選

Vultr 從 VM、bare metal、GPU 到 VKE、database 與 storage 都有;優勢是區域與產品選擇,風險是把多產品存在誤認為已完成架構整合。

WebSocket:雙向長連線只是起點,Protocol 與 Backpressure 才是工程

WebSocket 提供一條雙向 message transport,不包含 auth renewal、schema、ack、replay、rooms 或 backpressure policy;這些才決定 production correctness。

WireGuard:用 Cryptokey Routing 建立最小化 VPN Tunnel

WireGuard 是小而明確的 L3 加密 tunnel;它把 public key、peer 與 AllowedIPs 綁在一起,但不替團隊提供 identity、裝置管理或 policy control plane。

techdeep-dive

WorkOS Enterprise Auth:從 AuthKit 登入一路長到 SSO、SCIM 與 Audit Logs

WorkOS 的優勢不是只有登入 UI,而是讓 B2B SaaS 沿同一個 organization identity model 逐步加入 SAML/OIDC、SCIM 與稽核輸出;authorization 與資料治理仍由應用負責。

Yjs 與 CRDT:把並行編輯變成可交換、可重放的 Document Updates

Yjs 用 shared types 與可交換、可結合、冪等的 binary updates 收斂 concurrent edits;它不綁 transport,也不自帶 authorization、persistence 或 domain conflict resolution。

ZeroTier:以 Controller 與 Flow Rules 組出跨網路 Virtual LAN

ZeroTier 把裝置放進可管理的 virtual L2/L3 network,嘗試 peer-to-peer 傳輸並由 controller 發布成員與 policy;它比單純 tunnel 更像軟體定義網路。

zizmor:專門掃 GitHub Actions 的 Template Injection 與 Token 風險

zizmor 針對 workflow/action YAML 做 domain-specific static analysis,找 template injection、過寬 permissions、artifact credential leak 與 unpinned uses;它不分析被呼叫 shell script 本身。

Zodios:用 Zod endpoint definition 建立 Axios 型別安全 client

Zodios 以中央 Zod endpoint definition 驅動 Axios client 的型別、runtime validation 與 alias,也能接 Express 和產生 OpenAPI。

techdeep-dive

Zyte 深入介紹:從 Scrapy 開發、反爬取頁到 Scrapy Cloud

Scrapy 負責爬取流程與資料模型,Zyte API 接手取頁、瀏覽器與反爬細節,Scrapy Cloud 再負責部署、排程和輸出;三者可以分開採用,不是一套綁死的框架。

AI SDK 的 message parts:對話介面的資料骨架

AI SDK v5 把一則 AI 訊息拆成 parts 陣列——text、reasoning、source-url、tool-* 各自是獨立片段。這個資料結構決定了現代 AI 對話介面怎麼寫:render 時 switch part.type,每種片段交給對應元件。這篇拆解 parts 模型的設計邏輯、useChat 的串流機制,以及它如何成為 AI Elements 這類元件庫的地基。

Drizzle ORM:SQL-first 的 TypeScript 資料庫存取層

Drizzle ORM 是一個 SQL-first 的 TypeScript ORM——query builder 長得像 SQL,agent 寫出來的查詢在 diff 裡讀得懂。零依賴、約 7.4 KB gzipped,原生支援 Cloudflare D1、Neon、Turso 等 edge database。版本至今仍是 0.45.2,但週下載量已達 1,690 萬,超過 Prisma 的 1,380 萬。

llms.txt:把文件寫給機器讀的那一份

llms.txt 是 Jeremy Howard 於 2024-09-03 提出的慣例(規範已更新至 v2):在網站根目錄放一份給 LLM 讀的 Markdown 索引。六個前端文件站實測:TanStack、shadcn、Zustand、AI SDK、Next.js 都有,React Router 是唯一 404。配套的 llms-full.txt(全文版)Anthropic、Cloudflare 等也已採用。這篇講規範內容、誰在用、以及它為什麼開始影響套件選型。

shadcn registry 與 MCP:元件分發的第三條路

元件分發向來只有兩條路:npm 套件(黑盒依賴)或手動複製貼上。shadcn registry 把第三條路標準化——元件以 JSON 描述原始碼與依賴,CLI 一鍵裝進你的 repo 變成你的程式碼。任何人都能架自己的 registry(AI Elements 就是一個),官方 MCP server 更讓 AI agent 直接瀏覽與安裝元件。

Supabase:把整個後端建在 PostgreSQL 上的平台

Supabase 不只是 Firebase 的開源替代,它的核心設計是把 Auth、Storage、Realtime 全部建在 PostgreSQL 的 schema 和 WAL 上。結果是:你可以用一條 SQL 查所有東西,pgvector 直接用,agent 寫 SQL 就能操作整個平台。108k GitHub stars、Apache 2.0 授權、Free 方案 500 MB 資料庫。

Tailscale:agent 住在你家,不是你連回家

自架一個 24 小時跑著的 agent,等於在自己網路裡開了一個必須從外面連得到、又不能開在公網上的東西。這篇拆 Tailscale 的四個機制各自解決什麼:tailnet 解決連得到、subnet router 解決碰內網、tag 與 ACL 解決權限邊界、policy 秒級生效與 tailnet lock 解決收得回。附 2026-08 實查的定價:Personal 免費、6 個使用者、user device 無上限、50 個 tagged resource。