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
SOLIDOO 設計 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 effectC03 #34
Side Effect副作用:呼叫 function 時影響外部狀態(I/O、寫檔、改全域變數)C03 #34
Higher-Order Function (HOF)接收 function 當參數或 return function 的 functionC03 #35
Currying把多參數 function 轉成一連串單參數 functionC03 #35
Functormap 的容器(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
BSTBinary Search TreeC02 #23
DP(Dynamic Programming)動態規劃C02 #03
Memoization記憶化:快取 recursion 結果C02 #04
Greedy貪心演算法C02 #06
DFS / BFS深度優先 / 廣度優先搜尋C02 #25

分散式系統術語

術語意思見章
CAP TheoremConsistency / Availability / Partition tolerance 三選二C05 #13
PACELCCAP 擴展:有 partition 選 CA;沒 partition 選 L(latency)or C(consistency)C05 #13
Consensus分散式一致性(Raft / Paxos)C05 #14
Quorum多數決:N/2+1C05 #14
Eventual Consistency最終一致性C05 #16
Strong Consistency強一致性(一寫完就能讀到)C05 #16
Linearizability線性化:所有操作看起來是序列執行C05 #16
Vector Clock向量時鐘:追蹤事件 causalityC05 #15
Split-brain分散式腦裂:因網路分割導致多個 leaderC05 #17
Idempotency冪等性:同操作多次執行結果一樣C05 #17

並發 / 非同步術語

術語意思見章
Thread執行緒(OS-level,重)C01 #41
Coroutine / Goroutine協程(user-level,輕)C01 #41
Event Loop事件循環(JavaScript / Python asyncio 核心)C01 #42
Microtask / MacrotaskJS event loop 兩種 task queueC01 #42
Race Condition競態條件:多 thread 共用資料不同步C01 #43
Deadlock死鎖:兩個 thread 互相等對方的鎖C01 #43
Mutex互斥鎖C03 #26
Backpressure背壓:下游跟不上時推回上游C03 #27

架構模式術語

術語意思見章
DDDDomain-Driven Design(領域驅動設計)C04 14-15
Bounded Context限界脈絡(DDD 核心概念)C04 #14
Aggregate聚合根(DDD 戰術設計)C04 #15
Event Sourcing事件源:state = fold(events)C04 #11
CQRSCommand Query Responsibility SegregationC04 #12
Saga分散式事務 patternC04 #13
Repository Pattern抽象化 DB access 的 patternC04 #09
Unit of Work交易邊界抽象C04 #10

軟技能 / 職涯

術語意思見章
ICIndividual 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 / ExplanationC14 #17
DORA / SPACEDev productivity metrics frameworksI10 #09

資料建模

術語意思見章
ER DiagramEntity-Relationship DiagramC06 #19
Normalization正規化(1NF / 2NF / 3NF / BCNF)C06 #20
Denormalization反正規化:為了讀取效能故意重複C06 #20
Cardinality關係基數(1-1 / 1-N / N-N)C06 #19
Foreign Key外鍵C06
ACIDAtomicity / Consistency / Isolation / Durability(交易四性)C06 #16
MVCCMulti-Version Concurrency ControlC06 #16

測試術語

術語意思見章
Unit Test / Integration Test / E2E三層測試C07
Contract Test契約測試(Pact)C07 #01
Mock / Stub / Fake / SpyTest 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 MethodGET / POST / PUT / PATCH / DELETEC01 #07
HTTP Status Code狀態碼(2xx / 3xx / 4xx / 5xx)C01 #07
CORSCross-Origin Resource SharingC01 #40
SSE / WebSocketServer-Sent Events / WebSocketC01 #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 IDC01 #34

未列出的?

如果讀文章看到不懂的概念,讓我知道補上來。跨章的術語都該在這裡統一定義。


跟 infra/glossary.md 的分工

  • infra/glossary.md: 運維 / 部署 / K8s / SRE 術語(RTO、SLO、Sidecar、SPIFFE…)
  • 本表(common):CS / 工程 / 概念 / 軟技能術語