主題索引(MOC):寫程式、改程式、設計系統、做工程的工具總覽。依情境從對應子主題進入。
✍️ 可讀性與整潔(日常寫 code)
- 工具-有意義的命名、工具-函式短小且單一職責、工具-註解是必要之惡、工具-用例外處理錯誤(程式碼整潔之道)
- 工具-縮小變數作用域、工具-一次只做一件事(編寫可讀程式碼的藝術)
- 工具-簡單清楚至上(程式設計實務)、工具-DRY原則(程式設計師修煉之道)
♻️ 重構、測試與遺留程式碼
- 工具-程式碼壞味道、工具-小步重構、工具-提煉函式(重構)
- 面對沒有測試的舊程式碼(修改程式碼的藝術)——鄰居書講「怎麼寫好」,這本講「已經很爛又不敢動怎麼辦」:
- 🧭 主流程:工具-遺留程式碼修改流程(確定改動點 → 找出測試點 → 解依賴 → 編寫測試 → 修改與重構)
- 🔍 動手前:工具-理解陌生程式碼、工具-影響分析(改這行會波及哪、該測哪)
- 🪡 破局關鍵:工具-接縫、工具-打破依賴以便測試
- 🕸 安全網:工具-特徵測試(鎖住現況,不是驗對錯)
- ⏱ 沒時間時:工具-時間緊迫時的安全修改(新生/外覆四招)
- 完整 24 種解依賴技術型錄 → 見 修改程式碼的藝術 書卡
- 工具-紅綠重構循環、工具-測試先行的設計(測試驅動開發)
🏛 設計與架構(管理複雜度)
- 建構的工程數據(程式碼大全,第一版)——用倍數與百分比說服人,不是講心法:
- 📐 動手之前:工具-建構的先決條件(成本放大 1:5:10:20:50:100)、工具-偽代碼編程流程
- 🧠 對抗複雜度:工具-管理複雜度(決策點計數法)、工具-防禦式編程
- 🔍 找出錯誤:工具-軟體評審與檢查(檢查 60% vs 單元測試 25%)
- ⚡ 效能:工具-程式碼調校(先量測再動手)
- 📏 規模:工具-專案規模的影響(10 倍規模 → 20 倍工作量)
- 工具-介面設計原則(程式設計實務)
- 工具-通用語言、工具-限界上下文、工具-實體值物件與聚合(領域驅動設計)
- DDD 完整型錄(領域驅動設計):
- 🧱 建構元件:實體 Entity、值物件 Value Object、聚合 Aggregate、儲存庫 Repository、工廠 Factory、領域服務 Domain Service、領域事件 Domain Event、模組 Module、規格 Specification
- 🗺 戰略設計:通用語言 Ubiquitous Language、限界上下文 Bounded Context、上下文對應 Context Map、核心子領域 Core Domain、支撐子領域 Supporting Subdomain、通用子領域 Generic Subdomain
- 🔗 上下文對應模式:合作關係 Partnership、共享核心 Shared Kernel、客戶-供應商 Customer-Supplier、追隨者 Conformist、防腐層 Anticorruption Layer、開放主機服務 Open Host Service、發布語言 Published Language、各行其道 Separate Ways、大泥球 Big Ball of Mud
🧩 設計模式與原則
- 心法(設計模式):工具-針對介面編程、工具-優先組合而非繼承、工具-封裝變化點
- 工具-開閉原則、工具-好萊塢原則與依賴反轉(HeadFirst 設計模式)
- GoF 23 模式(設計模式,全型錄與孿生對照見書卡):
- 🏗 創建型:抽象工廠模式 Abstract Factory、建造者模式 Builder、工廠方法模式 Factory Method、原型模式 Prototype、單例模式 Singleton
- 🧩 結構型:配接器模式 Adapter、橋接模式 Bridge、組合模式 Composite、裝飾者模式 Decorator、外觀模式 Facade、享元模式 Flyweight、代理模式 Proxy
- 🔄 行為型:責任鏈模式 Chain of Responsibility、命令模式 Command、直譯器模式 Interpreter、迭代器模式 Iterator、中介者模式 Mediator、備忘錄模式 Memento、觀察者模式 Observer、狀態模式 State、策略模式 Strategy、範本方法模式 Template Method、訪問者模式 Visitor
🏢 企業模式(業務邏輯與整合)
🗄 資料系統與分散式
- 高層取捨(設計資料密集型應用):工具-可靠可擴展可維護、工具-資料複製、工具-資料分區、工具-交易與隔離等級、工具-線性一致性與共識、工具-資料編碼與演進
- 底層實作(資料庫底層原理):工具-儲存引擎B-Tree與LSM-Tree、工具-預寫日誌與崩潰復原、工具-故障偵測、工具-反熵與Gossip傳播
🏗 架構與系統設計
- 工具-服務架構的演進與拆分、工具-分散式事務的取捨、工具-服務容錯設計、工具-透明多級分流(鳳凰架構)
- 工具-康威定律、工具-服務邊界與演進式拆分(微服務設計)
- 工具-架構隨業務規模演進(淘寶技術這十年)
- 工具-網站架構模式九式、工具-網站高可用與伸縮性設計、工具-秒殺系統設計、工具-生產故障反模式清單(大型網站技術架構)
- 工具-系統設計思考框架、工具-容量估算(系統設計面試/系統設計面試卷一 共用)、工具-一致性雜湊、工具-限流器設計(系統設計面試卷一)
⚡ 效能
🔐 網站安全與風控
- 工具-網站應用攻擊與防禦、工具-資料加密與密鑰管理、工具-反垃圾與電商風控(大型網站技術架構)
- 交付流程那一側的資安見 工具-資安與合規左移(DevOps手冊)
🔄 DevOps 與交付流程
- 核心四張:工具-三步工作法(總綱)、工具-價值流圖(從哪下手)、工具-部署管線與持續交付(流動)、工具-遙測與監控(回饋)
- 完整 21 張工具卡 + 43 條 DevOps 實踐型錄 → 見 DevOps 主題地圖
🧮 演算法與問題解決
- 工具-時間複雜度分析、工具-資料結構的選擇、工具-演算法設計策略(演算法圖解)
- 工具-迴圈不變式、工具-攤還分析、工具-遞迴式與主定理(演算法導論)
- CLRS 演算法型錄(演算法導論,全清單見書卡):
- 🔢 排序:插入排序 Insertion Sort、合併排序 Merge Sort、堆積排序 Heapsort、快速排序 Quicksort、計數排序 Counting Sort、基數排序 Radix Sort
- 🧱 資料結構:堆疊與佇列 Stack & Queue、鏈結串列 Linked List、雜湊表 Hash Table、二元搜尋樹 BST、紅黑樹 Red-Black Tree、二元堆積 Binary Heap、併查集 Union-Find
- 🕸 圖論:廣度優先搜尋 BFS、深度優先搜尋 DFS、拓撲排序 Topological Sort、Kruskal 最小生成樹、Prim 最小生成樹、Dijkstra 最短路徑、Bellman-Ford 最短路徑、Floyd-Warshall 全對最短路、最大流 Max Flow
- 🧩 範式/搜尋/字串/理論:分治法 Divide & Conquer、動態規劃 Dynamic Programming、貪婪演算法 Greedy、二分搜尋 Binary Search、順序統計量 Order Statistics、KMP 字串比對、NP 完備性 NP-Completeness、近似演算法 Approximation
- 工具-程式問題解決策略、工具-用類比解決新問題(像程式設計師一樣思考)
- 設計訣竅家族(程式設計方法)——從問題描述推導出程式結構,一個骨幹五種變體:
- 📐 骨幹:工具-設計訣竅
- 🧱 先把資料表示法做對:工具-逐步求精(書中稱「反覆精化」)、工具-資料驅動的模板推導
- 🔁 遞迴的兩種:工具-生成遞迴與終止論證、工具-累積器與累積器不變式
- 🧬 消除相似性:工具-從相似定義提煉抽象
- 💾 讓程式記住過去:工具-狀態變數的設計訣竅
- 工具-程式面試解題套路(劍指offer)、工具-一題多解與最佳化思維(編程之美)
🔩 底層與系統
- 從原始碼到能跑的程式(程式設計師的自我修養):
- 🔧 建置流程:工具-編譯連結與裝載、工具-符號決議與重定位(undefined reference / multiple definition 的診斷)
- 🧠 執行環境:工具-虛擬記憶體與行程位址空間、工具-程式啟動與執行庫(main 之前發生了什麼)
- 📚 函式庫:工具-靜態庫與動態庫、工具-動態連結與位址無關程式碼、工具-共享庫版本與相容性
🧑💻 職涯與工匠精神
👔 工程管理
- 工具-布魯克斯定律、工具-概念完整性、工具-沒有銀彈(人月神話)
- 工具-把業務目標接到IT風險(鳳凰專案)—— IT 被當成成本中心、講不出價值時
- 工具-核心與語境盤點、工具-三地平線與創新賭注治理(獨角獸專案)—— 決定什麼自己做、資源投到哪個時間軸
🧭 方法論與除錯
📚 來源書
程式碼整潔之道、重構、測試驅動開發、程式碼大全、編寫可讀程式碼的藝術、修改程式碼的藝術、程式設計實務、程式設計方法、領域驅動設計、設計模式、HeadFirst 設計模式、企業應用架構模式、企業整合模式、設計資料密集型應用、資料庫底層原理、鳳凰架構、微服務設計、淘寶技術這十年、大型網站技術架構、系統設計面試卷一、系統設計面試、鳳凰專案、DevOps手冊、獨角獸專案、高效程式設計師的45個習慣、演算法圖解、演算法導論、像程式設計師一樣思考、劍指offer、編程之美、程式設計師的自我修養、程式設計師修煉之道、程式設計師的職業素養、高性能網站建設指南、人月神話