Common 術語表(Glossary)
Common 系列 14 章跨用的術語,放在這裡一次查到。跟 infra/glossary.md 互補:infra 偏運維,這裡偏 CS 基礎。
OOP(Object-Oriented Programming)核心
| 術語 | 意思 | 見章 |
|---|
| Encapsulation | 封裝:資料跟操作綁在一起、隱藏內部細節 | C03 |
| Inheritance | 繼承:子類繼承父類的屬性與方法 | C03 |
| Polymorphism | 多型:同介面不同實作 | C03 |
| Abstraction | 抽象:只暴露需要的介面,隱藏實作 | C01 / C03 |
| Composition | 組合:用多個小物件組合成大物件(favor composition over inheritance) | C03 |
| Interface / Protocol | 介面 / 協定:定義「能做什麼」而非「怎麼做」 | C03 |
| SOLID | OO 設計 5 原則(Single Responsibility / Open-Closed / Liskov / Interface Segregation / Dependency Inversion) | C03 / C04 |
FP(Functional Programming)核心
| 術語 | 意思 | 見章 |
|---|
| Immutability | 不可變性:值一旦建立不能修改 | C03 #33 |
| Pure Function | 純函式:same input → same output,無 side effect | C03 #34 |
| Side Effect | 副作用:呼叫 function 時影響外部狀態(I/O、寫檔、改全域變數) | C03 #34 |
| Higher-Order Function (HOF) | 接收 function 當參數或 return function 的 function | C03 #35 |
| Currying | 把多參數 function 轉成一連串單參數 function | C03 #35 |
| Functor | 可 map 的容器(Array、Promise 都是) | C03 #36 |
| Monad | 可組合 + 有 context 的 Functor(Promise.then 就是 Monad 的 flatMap) | C03 #36 |
| Referential Transparency | 參照透明性:expression 可用其值替代(純函式特性) | C03 |
資料結構 / 演算法
| 術語 | 意思 | 見章 |
|---|
| Big O / Big Ω / Big Θ | 時間複雜度上界 / 下界 / 緊界 | C02 |
| Amortized | 攤還分析(dynamic array 的 push 平均 O(1)) | C02 |
| In-place | 原地算法:空間複雜度 O(1) | C02 |
| Stable sort | 穩定排序:相等元素保持原順序 | C02 #02 |
| BST | Binary Search Tree | C02 #23 |
| DP(Dynamic Programming) | 動態規劃 | C02 #03 |
| Memoization | 記憶化:快取 recursion 結果 | C02 #04 |
| Greedy | 貪心演算法 | C02 #06 |
| DFS / BFS | 深度優先 / 廣度優先搜尋 | C02 #25 |
分散式系統術語
| 術語 | 意思 | 見章 |
|---|
| CAP Theorem | Consistency / Availability / Partition tolerance 三選二 | C05 #13 |
| PACELC | CAP 擴展:有 partition 選 CA;沒 partition 選 L(latency)or C(consistency) | C05 #13 |
| Consensus | 分散式一致性(Raft / Paxos) | C05 #14 |
| Quorum | 多數決:N/2+1 | C05 #14 |
| Eventual Consistency | 最終一致性 | C05 #16 |
| Strong Consistency | 強一致性(一寫完就能讀到) | C05 #16 |
| Linearizability | 線性化:所有操作看起來是序列執行 | C05 #16 |
| Vector Clock | 向量時鐘:追蹤事件 causality | C05 #15 |
| Split-brain | 分散式腦裂:因網路分割導致多個 leader | C05 #17 |
| Idempotency | 冪等性:同操作多次執行結果一樣 | C05 #17 |
並發 / 非同步術語
| 術語 | 意思 | 見章 |
|---|
| Thread | 執行緒(OS-level,重) | C01 #41 |
| Coroutine / Goroutine | 協程(user-level,輕) | C01 #41 |
| Event Loop | 事件循環(JavaScript / Python asyncio 核心) | C01 #42 |
| Microtask / Macrotask | JS event loop 兩種 task queue | C01 #42 |
| Race Condition | 競態條件:多 thread 共用資料不同步 | C01 #43 |
| Deadlock | 死鎖:兩個 thread 互相等對方的鎖 | C01 #43 |
| Mutex | 互斥鎖 | C03 #26 |
| Backpressure | 背壓:下游跟不上時推回上游 | C03 #27 |
架構模式術語
| 術語 | 意思 | 見章 |
|---|
| DDD | Domain-Driven Design(領域驅動設計) | C04 14-15 |
| Bounded Context | 限界脈絡(DDD 核心概念) | C04 #14 |
| Aggregate | 聚合根(DDD 戰術設計) | C04 #15 |
| Event Sourcing | 事件源:state = fold(events) | C04 #11 |
| CQRS | Command Query Responsibility Segregation | C04 #12 |
| Saga | 分散式事務 pattern | C04 #13 |
| Repository Pattern | 抽象化 DB access 的 pattern | C04 #09 |
| Unit of Work | 交易邊界抽象 | C04 #10 |
軟技能 / 職涯
| 術語 | 意思 | 見章 |
|---|
| IC | Individual Contributor(個人貢獻者) | C13 #15 |
| Staff Engineer / Principal Engineer | 高階 IC 職級 | C13 #15 |
| Tech Lead | 技術主管 | C13 #05 |
| Bus Factor | 一個專案/團隊能承受多少人離開;= 1 代表只剩一個人懂 | C14 |
| Rubber Duck Debugging | 對著玩具說一遍自己的問題,常常講著講著就想通了 | C14 #14 |
| 5 Whys | 問 5 次「為什麼」挖到根本原因 | C14 #14 |
| Diátaxis | 文件 4 分類:Tutorial / How-to / Reference / Explanation | C14 #17 |
| DORA / SPACE | Dev productivity metrics frameworks | I10 #09 |
資料建模
| 術語 | 意思 | 見章 |
|---|
| ER Diagram | Entity-Relationship Diagram | C06 #19 |
| Normalization | 正規化(1NF / 2NF / 3NF / BCNF) | C06 #20 |
| Denormalization | 反正規化:為了讀取效能故意重複 | C06 #20 |
| Cardinality | 關係基數(1-1 / 1-N / N-N) | C06 #19 |
| Foreign Key | 外鍵 | C06 |
| ACID | Atomicity / Consistency / Isolation / Durability(交易四性) | C06 #16 |
| MVCC | Multi-Version Concurrency Control | C06 #16 |
測試術語
| 術語 | 意思 | 見章 |
|---|
| Unit Test / Integration Test / E2E | 三層測試 | C07 |
| Contract Test | 契約測試(Pact) | C07 #01 |
| Mock / Stub / Fake / Spy | Test double 4 種 | C07 |
| Fixture | 測試資料準備 | C07 #04 |
| Flaky Test | 不穩定的測試(時過時不過) | C07 |
| Test Pyramid / Trophy | 測試配比策略 | C07 #11 |
網路 / Web 基礎
| 術語 | 意思 | 見章 |
|---|
| OSI 7 Layer / TCP/IP 4 Layer | 網路協議分層 | C01 #35 |
| HTTP Method | GET / POST / PUT / PATCH / DELETE | C01 #07 |
| HTTP Status Code | 狀態碼(2xx / 3xx / 4xx / 5xx) | C01 #07 |
| CORS | Cross-Origin Resource Sharing | C01 #40 |
| SSE / WebSocket | Server-Sent Events / WebSocket | C01 #10 |
| REST / GraphQL / gRPC | 三種 API 風格 | C01 #07 / #12 / #13 |
Linux / CLI
| 術語 | 意思 | 見章 |
|---|
| stdin / stdout / stderr | 標準輸入 / 輸出 / 錯誤 | C01 #33 |
| Pipe | ` | ` 把前一個指令的 stdout 接到下一個的 stdin |
| Permissions (rwx) | read / write / execute 權限 | C01 #34 |
| Process / PID | 執行中的程式 / Process ID | C01 #34 |
未列出的?
如果讀文章看到不懂的概念,讓我知道補上來。跨章的術語都該在這裡統一定義。
跟 infra/glossary.md 的分工
infra/glossary.md: 運維 / 部署 / K8s / SRE 術語(RTO、SLO、Sidecar、SPIFFE…)
- 本表(common):CS / 工程 / 概念 / 軟技能術語