前言
Section 1:Clean Code是什麼?
第1章:背景說明
我們為何撰寫程式碼?
為人們編寫程式碼
小結
第2章:Clean Code的宗旨
可靠性
效率
可維護性
可用性
小結
第3章:Clean Code的敵人
敵人#1—JavaScript
敵人#2—管理
敵人#3—自我
敵人#4—貨物崇拜
小結
第4章:SOLID及其他原則
Demeter定律
SOLID
抽象原則
函數式程式設計原則
小結
第5章:命名很困難
名稱中有什麼?
命名反模式
一致性和層次結構
技術和考量
小結
Section 2:JavaScript和它的位元
第6章:原始類型和內建類型
原始類型
物件
函數
陣列和可迭代
RegExp
小結
第7章:動態類型化
檢測
轉換、隱式強制轉換、顯式強制轉換
小結
第8章:運算子
運算子是什麼?
算術和數字運算子
邏輯運算子
比較運算子
賦值運算子
屬性存取運算子
其他運算子和語法
位元運算子
小結
第9章:語法和作用域
表達式、敘述句和區塊
作用域和宣告
小結
第10章:控制流程
控制流程是什麼?
命令式與宣告式程式設計
控制權的移動
控制流程的敘述句
處理循環複雜度
異步控制流程
小結
Section 3:製作抽象
第11章:設計模式
設計師的觀點
架構模式
JavaScript模組
模組化設計模式
規劃與和諧
小結
第12章:真實世界的挑戰
DOM和單頁應用程式
依賴性管理
安全性
小結
Section 4:測試和工具
第13章:測試環境
測試是什麼?
測試的類型
測試驅動開發(TDD)
小結
第14章:編寫乾淨的測試
測試正確的事情
編寫直觀的斷言
建立清晰的層次結構
提供最終的明確性
建立乾淨的目錄結構
小結
第15章:讓程式碼更無瑕的工具
linter和格式化程序
靜態類型化
E2E測試工具
自動化建構和CI
小結
Section 5:合作與做出改變
第16章:將你的程式碼文件化
乾淨文件的內涵
文件無所不在
為非技術讀者寫作
小結
第17章:其他人的程式碼
繼承程式碼
處理第三方程式碼
小結
第18章:溝通與倡導
規劃和設定需求
溝通策略
找出問題並推動變革
小結
第19章:案例研究
問題
設計
實作
小結