← 首頁

PROJECT CASE LAB

把真實專案拆成可以理解的系統

這裡不複製任何 production secret 或假裝知道未讀過的 source。先用已知 architecture pattern 建立「你應該會問什麼」,之後再以實際 repo code 驗證。

Case A — 教學網站 / Supabase 型 Web App

Browser UI
 ↓ JavaScript
Supabase client
 ↓ HTTPS
Auth / Data API
 ↓
Postgres + RLS

讀 Code 任務

  1. 找到 sign-in function 的 caller。
  2. 列 input/output。
  3. 找到 error branch。
  4. 登入後 session 放哪裡?
  5. 資料 request 帶什麼 identity?
  6. database authorization 在哪裡 enforce?
事故:學生 A 看得到學生 B 的提交,優先查?

這是高優先 authorization/data-isolation 問題。先保存可重現 evidence,檢查 query、角色/grants、RLS policies 與 ownership relation;不能只靠 frontend filter。

Case B — Android Location / Taximeter 類 App

Android OS location provider
 ↓ location callback
App state
 ↓ fare/domain logic
UI
 ↓ optional Android Auto surface

故障樹

沒有位置:permission?provider/settings?callback lifecycle?device/API-level behavior?室內精度?資料有進來但 UI 沒更新?先區分「沒有 measurement」與「measurement 不準」。

GPS 跳點造成里程暴增,單純把所有點相加好嗎?

不一定。要把 accuracy、時間差、速度合理性、outlier filtering、provider behavior 與 domain fare rule 分開設計,並用 recorded tracks 做 regression。

Case C — Windows PowerShell Automation

Task Scheduler
 ↓ launches
powershell.exe
 ↓ reads .ps1
script
 ↓ filesystem/network/other process

關閉 PowerShell 視窗是否影響工作,要看真正 process tree 與工作是否依附該 interactive process/session;不能只用「視窗還在不在」判斷。

電腦睡眠時排程會照常像 server 一樣跑嗎?

一般不能把 sleeping machine 當持續執行環境。要檢查 Task Scheduler wake 設定、電源狀態與工作需求;需要持續服務時應考慮真正 always-on execution environment。

Project Review Checklist

  1. Repository entry point 在哪?
  2. Runtime 是 Browser、Node、Android、PowerShell、Linux service 哪一個?
  3. 有哪些 external services?
  4. 資料存哪裡?
  5. 身份在哪建立?授權在哪 enforce?
  6. 哪些 config/secret 依環境不同?
  7. 部署路徑?
  8. 觀測/log 在哪?
  9. 最危險的 failure modes?
  10. 有哪些 tests 真正證明功能?