API Design 1. 什麼讓一個 API 算 "RESTful"?實務中 teams 最常違反哪些 REST constraints?2. 哪些 HTTP methods 是 idempotent,為什麼 idempotency 對 retry-safe 的 clients 重要?3. POST endpoint 建立 payment 或 order 時,你會怎麼實作 idempotency keys?4. 什麼時候回傳 200 vs 201 vs 204?400 vs 401 vs 403 vs 404 vs 409 vs 422 呢?5. 比較 offset pagination 與 cursor-based pagination。為什麼 offset 在大、頻繁寫入的 tables 上會退化?6. 設計一份一致的 error response format。見過 RFC 7807(Problem Details)嗎,會採用嗎?7. 比較 API versioning 策略(URL path、header、query param)。什麼時候 versioning 真的必要,什麼時候 additive 變更就能避開?8. Rate-limiting algorithms 有何不同(fixed window、sliding window、token bucket)?429 response 該帶什麼?9. REST vs GraphQL vs tRPC/RPC:各給一個它才是對的選擇的具體場景。10. Endpoint 回傳 nested resources 時,怎麼避免 N+1 queries?Embed vs. link related resources —— tradeoffs?11. 比較 server-to-server APIs 的 API keys、OAuth 2.0 client credentials 與 JWT bearer tokens。12. 設計一套 webhook delivery 系統:signing、帶 backoff 的 retries、ordering guarantees,以及 idempotent receivers。13. 怎麼透過 HTTP 暴露一個 long-running operation(例如生成 report)?比較 202 + status polling vs. webhooks vs. WebSockets。14. PUT vs PATCH:語義差在哪,JSON Patch 與 JSON Merge Patch 又差在哪?15. ETag、Last-Modified 與 Cache-Control 如何啟用 conditional requests 並省頻寬?16. 你會怎麼設計 API 裡的 file upload/download —— multipart uploads vs. presigned S3 URLs?5MB vs 5GB 有什麼變化?17. Multi-tenant API 裡,tenant identity 該從哪來(subdomain、header、JWT claim),怎麼保證 cross-tenant requests 被拒絕?18. Design-first(OpenAPI spec)vs code-first:tradeoffs,以及 contract testing 怎麼卡進來?19. 怎麼演進 API 而不打破可能永遠不 update 的現有 mobile clients?20. Design exercise:一份 paginated、可 filter 的 audit-log API,給 multi-tenant healthcare SaaS,auditors 只能看見自己 tenant 的 data。 Backend Engineering 1. 走一遍 Node.js event loop 的 phases。setTimeout、setImmediate、process.nextTick 與已 resolve 的 promises 分別在哪跑?2. 什麼時候不該選 Node.js?Node service 裡怎麼處理 CPU-bound 工作?3. 「stateless service」是什麼意思,為什麼它對 load balancer 後面的 horizontal scaling 重要?4. 什麼時候該把 request 經 queue 異步處理,而不是在 request cycle 裡同步做完?5. 解釋 at-least-once 與 at-most-once delivery。給定 at-least-once semantics,怎麼做一個 idempotent consumer?6. 給一個失敗的 worker 設計 retry 策略:exponential backoff、jitter、max attempts 與 dead-letter queues。7. 比較 cache-aside、read-through、write-through 與 write-behind caching。什麼是 cache stampede,怎麼防止?8. 沒有 distributed transactions,怎麼讓兩個 services 的 state 保持 consistent?解釋 saga 與 outbox patterns。9. 什麼是 eventual consistency,怎麼在它上面給用戶 read-your-writes 行為?10. Application code 裡的 optimistic vs pessimistic locking——各給一個具體例子。11. Database connection pool 怎麼定大小?為什麼 serverless / ECS-scale-out 架構會打爆 naive pooling,PgBouncer 怎麼幫?12. Graceful shutdown 時發生什麼?SIGTERM 上怎麼 drain in-flight requests 與 queue consumers?13. 解釋 observability 的三根支柱。Correlation IDs 怎麼跨 services 與 queue hops 工作?14. Liveness vs readiness probes:各自該查什麼?如果 readiness 去查 database 會出什麼問題?15. 你在 4 個 ECS tasks 上跑 nightly cron job——怎麼保證它 exactly once?16. Production 裡 secrets 與 config 該怎麼管理和 rotate?為什麼純 env vars 有時不夠?17. 描述你的 backend testing 策略:unit vs integration vs e2e 各放什麼,mocking 邊界畫在哪?18. 比較 shared-schema(tenant_id column)、schema-per-tenant 與 database-per-tenant multi-tenancy。到 1,000 個 tenants 時,operations 上會破什麼?19. WebSockets vs SSE vs long polling——tradeoffs,以及怎麼跨多個 server instances broadcast events?20. 設計練習:一個 webhook ingestion endpoint,必須扛住 10x traffic spike,既不丟 events 也不倒下。 Frontend Engineering 1. 什麼會觸發 React 的 re-render?解釋 reconciliation,以及 list 裡 key 的選擇為什麼重要。2. useEffect 正確的心智模型是什麼?舉出本應是 derived state 或 event handler 的 Effect 例子。3. useMemo 與 useCallback 什麼時候真的有用,什麼時候只是白加成本?4. 如何拆分 local state、server state 與 global client state?為什麼 React Query / SWR 常常取代 Redux?5. React Server Components 如何改變 data fetching 與 bundle size?Next.js App Router 裡 client/server boundary 在哪?6. 為營銷頁、藥劑師 dashboard、面向患者的 prescription 頁在 SSR、SSG、ISR 與 CSR 之間做選擇。各自說明理由。7. 什麼是 request waterfalls?如何 parallelize 或 hoist data fetching 來消除它們?8. 實作一次 optimistic update:mutation 失敗時發生什麼,如何乾淨地 roll back?9. Controlled vs uncontrolled form inputs:取捨是什麼,如何讓一份 50 欄位的臨床表單保持 performant?10. 解釋 LCP、CLS 與 INP。各給出兩個具體修復。11. 如何處理 bundle size:code splitting、route-level lazy loading,以及用 bundle analysis 找出該砍什麼?12. 一張表必須流暢渲染 10,000 行——走一遍 list virtualization 及其取捨。13. Accessibility 在 ARIA 之外意味著什麼?覆蓋 semantic HTML、keyboard navigation,以及 modals 裡的 focus management。14. Auth tokens 該放在哪——localStorage 還是 httpOnly cookies?把答案接到 XSS 與 CSRF 風險上。15. Service workers 與 Cache API 如何支持 offline?解釋 stale-while-revalidate。16. Error boundaries 與 Suspense boundaries 如何組合?全局 error reporting 該收什麼?17. 每一層測什麼——unit(Vitest)、component(Testing Library)、e2e(Playwright)——以及你故意不測什麼?18. 為共享 design system 設計一份 component API:props vs compound components、用 tokens theming、跨團隊 versioning。19. 展示如何用 TypeScript generics 與 discriminated unions,安全地建模一份 fetch state machine(idle | loading | success | error)。20. 設計練習:一份實時 prescription-status dashboard,帶 live updates、reconnection handling 與體面的 offline 行為。 Database 1. B-Tree index 內部怎麼工作,為什麼它讓 equality 與 range lookups 變快?2. Composite index (tenant_id, status, created_at) 上,哪些 queries 能用它?解釋 leftmost-prefix matching。3. 讀這份 query plan:什麼時候 sequential scan 其實比 index scan 更對?4. 給出 Postgres 忽略你 index 的四個原因(function on column、type mismatch、low selectivity、leading-wildcard LIKE)。5. 什麼時候該伸手拿 GIN 而不是 B-Tree —— 例如 JSONB containment 或 full-text search?6. 簡要解釋 1NF–3NF,再給一個刻意 denormalize 才是對的 case。7. 走一遍四個 isolation levels,以及各自擋住的 read phenomena(dirty、non-repeatable、phantom)。Postgres 預設是什麼?8. 為什麼 long-running transactions 在 production 裡危險(lock contention、vacuum bloat)?9. 兩個 transactions 之間 deadlock 怎麼發生,什麼 coding practices 能防住?10. 怎麼發現並修掉 N+1 queries —— joins、batching、DataLoader 式 patterns?11. 比較 SELECT ... FOR UPDATE 與 version-column optimistic lock。高 contention 的 inventory decrement 該用哪個?12. 為什麼 connection pooling 重要,PgBouncer 的 transaction mode 與 session mode 差在哪?13. 設計一次 zero-downtime migration:給 1 億行的 table 加一列帶 default 的 NOT NULL column。為什麼 indexes 要用 CONCURRENTLY?14. 為什麼 OFFSET 100000 會變慢,keyset (cursor) pagination 在 SQL 層面怎麼修?15. Streaming replication 怎麼工作,read-replica lag 會給 read-your-writes 帶來什麼 bugs?16. Partitioning vs sharding:各自解決什麼問題,一張 table 什麼時候「夠大」該 partition?17. OLTP vs OLAP:為什麼要把 Postgres 資料 pipe 進 Redshift,而不是在 primary 上跑 analytics?18. 比較 Postgres Row-Level Security 與 application-level tenant filtering。各自的 failure modes 是什麼?19. Soft delete vs hard delete:對 unique constraints、indexes(partial indexes)、以及 data-retention compliance 意味著什麼。20. Design exercise:multi-tenant 藥房系統的 schema —— prescriptions、不可變 audit trail、以及快的 per-tenant reporting。 Security 1. 解釋 SQL injection 如何運作,以及為什麼 parameterized queries 能修好它。ORMs 在哪些地方仍然會把你暴露出去?2. 比較 stored、reflected 與 DOM-based XSS。React 預設 escape 什麼,什麼時候 dangerouslySetInnerHTML 可以接受?3. CSRF 如何運作,SameSite cookies 與 CSRF tokens 如何緩解?JWT-in-localStorage 的 SPA 需要 CSRF 保護嗎?4. Sessions vs JWTs:stateless tokens 如何處理 logout 與 revocation?解釋 refresh token rotation。5. Passwords 應該怎麼存?為什麼 bcrypt/argon2 優於 SHA-256,salt 與 pepper 是什麼?6. 走一遍帶 PKCE 的 OAuth 2.0 authorization code flow。為什麼 implicit flow 被 deprecated?7. 什麼是 IDOR(broken object-level authorization),為什麼它是經典的 multi-tenant 漏洞?怎麼測?8. RBAC vs ABAC:為一家 pharmacy app 建模權限,pharmacists、admins 與 auditors 共用 endpoints。9. CORS 實際保護什麼(以及不保護什麼)?解釋 preflight,以及把 Origin 連 credentials 一起 reflect 這類常見 misconfiguration。10. Content Security Policy 如何擋住 XSS?Nonce vs hash 策略,以及如何先用 report-only 推出 CSP?11. Secrets 如何漏進 client bundles 與 logs,什麼 process/tooling 能擋住?12. 設計對抗 brute force 與 credential stuffing 的 login defenses:throttling、lockout、MFA、breached-password checks。13. Encryption at rest vs in transit:TLS 在你的架構裡哪裡 terminate,何時值得對 PHI 做 field-level encryption?14. 解釋 SSRF,以及為什麼 AWS metadata endpoint(169.254.169.254)是經典目標。如何緩解?15. 端到端保護一個 file-upload feature:type validation、storage isolation、malware scanning、presigned URLs、safe content disposition。16. 如何管理 npm dependencies 的 supply-chain risk —— lockfiles、audits、typosquatting、SBOMs?17. HSTS、frame-ancestors 與 Referrer-Policy headers 各自防什麼?18. 對 HIPAA-style compliance,audit log 必須抓住什麼,如何讓它 tamper-evident?19. 點出 SQL 之外三種微妙的 cross-tenant data leaks:shared caches、queue messages、search indexes。各自如何隔離?20. Threat-modeling 練習:處方的 e-signature feature —— 找出前五個 threats,以及各自的 mitigation。 JavaScript (TypeScript) 1. var vs let vs const:hoisting、temporal dead zone,以及為什麼 const 不是 deep immutability。2. 什麼是 closure?給一個 production 用法和一個 leak。3. this 如何確定?Function vs arrow、call/apply/bind,以及 class fields vs prototype methods。4. Prototype chain vs class syntax。instanceof 何時失敗?5. == vs === vs Object.is。NaN、-0 與 boxed primitives 如何表現?6. ToBoolean 與 ToPrimitive 如何在 APIs 裡藏 bug —— plus、if (value),以及 query params?7. 語言裡的 task vs microtask。queueMicrotask、Promise jobs 與 setTimeout 跑在哪裡?8. Promise.all vs allSettled vs race vs any。Unhandled rejection 會發生什麼?9. Sequential await vs Promise.all。Error handling、waterfalls 與 AbortSignal。10. Iterables、for...of vs for...in、generators,以及何時 async generator 是對的形狀。11. ESM vs CommonJS:live bindings、default export interop、circular imports 與 tree-shaking。12. Shallow vs deep copy:spread、structuredClone,以及 JSON.parse(JSON.stringify) 的失敗模式。13. 常見 JavaScript memory leaks:closures、timers、listeners 與無界 Maps。14. Structural typing vs nominal typing。Excess property checks,以及為什麼經變數賦值會接受多餘 fields。15. unknown vs any vs never vs void。16. TypeScript 如何 narrow:typeof、in、discriminated unions、type predicates 與 asserts?17. Generics、constraints、infer —— 以及何時 generic 不加任何安全。18. type vs interface、declaration merging,以及 mapped 或 conditional types。19. TypeScript 在 compile time 擦掉什麼,為什麼 HTTP 邊界需要 Zod?20. Design exercise:一個 typed Result / Either,用於會失敗的 parse-and-save path,帶 exhaustive switch 且沒有 any。 閱讀下一篇筆記人生之詩