技術筆記

依主題整理的技術筆記、課程拆解與除錯紀錄。

PostgreSQL 備份入門:pg_dump、WAL 與 PITR 到底怎麼分工?

Supabase RLS 別只點 Policy UI:把授權規則寫成可測試的 SQL

PostgreSQL RLS 不是自動 WHERE:多租戶資料隔離要先釐清的四個邊界

PgBouncer 不會讓 PostgreSQL 無限擴張:先算連線預算,再選 pool mode

LeetCode 198:打家劫舍,用兩個狀態處理搶與不搶

LeetCode 70:爬樓梯,從重複遞迴到只保留前兩階

重試不是再做一次:API 冪等 key 的真正邊界

LeetCode 152:最大乘積子陣列,為什麼最大值和最小值都要留下

LeetCode 53:最大子陣列,從向左重算到保存上一輪結果

LeetCode 238:除自身以外陣列的乘積,從除法改成前綴與後綴

翻到下一頁,怎麼又看到同一筆?OFFSET 與游標分頁

ArtInt 閱讀筆記:智慧代理人,以及我搞混的 AI 基礎觀念

網站更新了,為什麼還是舊畫面?從 HTTP 快取到新版 JS 的路線

LeetCode 15:TypeScript 3Sum,為什麼跳過重複值不會漏解

LeetCode 11:TypeScript 盛最多水的容器,為什麼要移動較矮的那端

LeetCode 125:TypeScript Valid Palindrome,從清理字串到原地雙指標

CSP 不要先封鎖:用 Report-Only 找出真實依賴,再逐步收緊

LeetCode 424:TypeScript 最長重複字元替換,理解 sliding window 與歷史最高頻率

LeetCode 3:TypeScript 最長不重複子字串,從回退重掃到 sliding window

Schema migration 不是一條 SQL:用 expand、backfill、觀測證據安全地移除舊路徑

LeetCode 49:TypeScript Group Anagrams,從排序 key 到計數簽名

LeetCode 347:TypeScript Top K Frequent Elements,從頻率排序到 bucket

LeetCode 242:TypeScript Valid Anagram,從排序到字元計數

慢查詢別先加 index:用 EXPLAIN、statistics 與 ANALYZE 看懂 planner 在猜什麼

LeetCode 1:TypeScript Two Sum,用 Map 找出兩數索引

LeetCode 217:TypeScript Contains Duplicate,用 Set 判斷重複值

LeetCode 121:TypeScript 買賣股票的最佳時機

Index 不是欄位清單:先看 query shape,再決定要不要多維護一份資料

Transaction 的資料邊界:訂單、庫存與 ACID

LeetCode 2574:TypeScript 左右總和差

LeetCode 724:TypeScript 尋找陣列 Pivot Index

LeetCode 1732:TypeScript 單次掃描找最高海拔

LeetCode 1480:TypeScript 一維陣列累積總和

JOIN 之前先算關係:別把正常列數當成重複資料

LeetCode 128:TypeScript 最長連續序列的 Set 掃描

LeetCode 56:TypeScript 合併區間的排序不變量

一個 SELECT,要講清楚四件事:欄位、篩選、順序、上限

資料庫不是大型 JSON:先讓 constraint 擋住不可能的資料

AbortController:取消的是過期工作,不是把錯誤吞掉

Navigation API 到 Baseline:別把每個連結都攔成 SPA

Speculation Rules API:預載不是免費加速,先處理副作用

瀏覽器 Scheduler:先分清工作優先序,再決定要不要排隊

MCP Tool Result:給決策,不要把 API 整包倒進 context

<details> 不只是省幾行 JS:Disclosure 跟 Accordion 的邊界

Popover API:少一點 UI 狀態,不是免費的無障礙

PostgreSQL SKIP LOCKED 能做 Job Queue,但不是魔法 Broker

原生 CSS Carousel 很香,但先別急著刪 JavaScript

Cloudflare OS 真正值得抄的不是 UI,而是把 Agent 權限歸零

PostgreSQL 18 Skip Scan:複合索引最左規則多了一個星號

綠色 Build 不等於已上線:Astro 靜態站的發佈驗證紀錄

MCP Apps 把 UI 放進對話,但不是每個 Tool 都要變成小網站

別只看 JavaScript Bundle:SSR HTML 裡的資料也有成本

View Transitions 不會把 MPA 變 SPA,但會讓它更順

Cloudflare Containers 上線了,但別把每個 Worker 都塞進 Docker

UUIDv7 適合當主鍵嗎?更好的 UUID,不是萬用答案

Agent Skill 不是長 Prompt:值得留下的,是可驗證工作流

Caveman:讓 AI 助手少說廢話,卻不減技術含量

Git Merge vs Rebase:兩條時間線的故事