先用一句話理解
理解 Monolith、Microservices、Event-driven、MVC、Distributed Systems、Unit Test、Integration Test、E2E Test、Regression Test、Monitoring。
不要只記縮寫。要能回答:這個技術是什麼類型、負責什麼、與哪些工具相依、出問題時要查哪一層。
架構與測試:基礎名詞與具體例子
| 名詞 | 白話解釋 | 使用情境 |
|---|---|---|
| Architecture | 系統職責、模組、資料流及部署方式的整體設計。 | 把支付、會員與商品分為不同責任。 |
| Monolith | 將主要功能集中於同一應用部署。 | 小型電商用單一後端。 |
| Microservices | 功能拆成獨立部署的服務。 | 庫存與訂單各自管理。 |
| Serverless | 底層執行環境由平台管理的部署方式。 | 以代管函式處理 API。 |
| Event-driven | 事件發生後觸發其他處理。 | 訂單付款完成後通知出貨。 |
| MVC | Model、View、Controller 的責任分離模式。 | 資料、畫面、控制流程分離。 |
| Distributed System | 多個節點透過網路協作。 | 網站、資料庫及外部付款服務協作。 |
| Unit Test | 驗證單一函式或元件的行為。 | 折扣計算函式測試。 |
| Integration Test | 驗證多模組或外部系統連接。 | 測試訂單 API 是否正確寫入資料庫。 |
| E2E Test | 從使用者端驗證完整流程。 | 選商品至付款完成。 |
| Regression Test | 確認改版不破壞原有功能。 | 升級後重新測試結帳。 |
| Load Test | 驗證指定流量下的系統表現。 | 模擬促銷高峰流量。 |
| UAT | 由業務或使用者驗收實際需求。 | 營運團隊確認退款流程可用。 |
常見混淆:它們究竟差在哪?
Monolith vs Microservices
主要差在應用功能是否拆成獨立部署的服務,不是技術越多越好。
Serverless vs Microservices
Serverless 描述執行模式;微服務描述應用切分方式。
Unit vs E2E
Unit 驗證單點行為;E2E 驗證整條使用者路徑。
實作時的三個檢查點
- 先選擇最簡單、可驗證需求的架構。
- 為核心流程建立單元、整合及端到端測試。
- 請 AI 列出可能的失敗情境和復原方式,並記錄你最後選擇這個架構的理由。
常見問題 FAQ
使用微服務是否更專業?
不一定。小團隊過早使用微服務可能增加部署、監控及資料一致性的負擔。
AI 寫的程式還需要測試嗎?
需要。模型能生成看似合理的實作,但不能取代真實環境與驗收測試。