程式碼整潔之道—讀後感
味道與啟發
註釋
不恰當的資訊
廢棄的註釋
冗餘註釋
糟糕的註釋
註釋掉的程式碼
環境
需要多步才能實現的構建
需要多步才能做到的測試
函式
過多的引數
輸出引數
標識引數
死函式
一般性問題
G1、一個原始檔中存在多種語言
G2、明顯的行為未被發現
G3、不正確的邊界行為
G4、忽視安全
G5、重複
G6、在錯誤的抽象層級上的程式碼
G7、基類依賴於抽象類
G8、資訊過多
G9、死程式碼
G10、垂直分隔
G11、前後不一致
G12、混淆視聽
G13、人為耦合
G14、特性依戀
G15、選擇運算元引數
G16、晦澀的意圖
G17、位置錯誤的權責
G18、不恰當的靜態方法
G19、使用解釋性變數
G20、函式名稱應該表達其行為
G21、理解演算法
G22、把邏輯依賴改為物理依賴
G23、用多型代替if/else switch/case
G24、遵循標準約定
G25、用命名常亮代替魔數
G26、準確
G27、結構勝於約定
G28、封裝條件
G29、避免否定性條件
G30、函式只該做一件事情
G31、不要掩蔽時序耦合
G32、別隨意
G33、封裝邊界條件
G34、函式應該只在一個抽象層級上
G35、在較高層級上放置可配置資料
G36、避免傳遞瀏覽
Java
J1、通過使用萬用字元避免過長的匯入清單
J2、不要繼承常量
J3、常量VS 列舉
名稱
N1、採用描述性名稱
N2、名稱應該與抽象層級相符
N3、儘可能使用標準命名法
N4、無歧義的名稱
N5、為較大作用範圍選用較長名稱
N6、避免編碼
N7、名稱應該說明副作用味道與啟發
註釋
不恰當的資訊
廢棄的註釋
冗餘註釋
糟糕的註釋
註釋掉的程式碼
環境
需要多步才能實現的構建
需要多步才能做到的測試
函式
過多的引數
輸出引數
標識引數
死函式
一般性問題
G1、一個原始檔中存在多種語言
G2、明顯的行為未被發現
G3、不正確的邊界行為
G4、忽視安全
G5、重複
G6、在錯誤的抽象層級上的程式碼
G7、基類依賴於抽象類
G8、資訊過多
G9、死程式碼
G10、垂直分隔
G11、前後不一致
G12、混淆視聽
G13、人為耦合
G14、特性依戀
G15、選擇運算元引數
G16、晦澀的意圖
G17、位置錯誤的權責
G18、不恰當的靜態方法
G19、使用解釋性變數
G20、函式名稱應該表達其行為
G21、理解演算法
G22、把邏輯依賴改為物理依賴
G23、用多型代替if/else switch/case
G24、遵循標準約定
G25、用命名常亮代替魔數
G26、準確
G27、結構勝於約定
G28、封裝條件
G29、避免否定性條件
G30、函式只該做一件事情
G31、不要掩蔽時序耦合
G32、別隨意味道與啟發
註釋
不恰當的資訊
廢棄的註釋
冗餘註釋
糟糕的註釋
註釋掉的程式碼
環境
需要多步才能實現的構建
需要多步才能做到的測試
函式
過多的引數
輸出引數
標識引數
死函式
一般性問題
G1、一個原始檔中存在多種語言
G2、明顯的行為未被發現
G3、不正確的邊界行為
G4、忽視安全
G5、重複
G6、在錯誤的抽象層級上的程式碼
G7、基類依賴於抽象類
G8、資訊過多
G9、死程式碼
G10、垂直分隔
G11、前後不一致
G12、混淆視聽
G13、人為耦合
G14、特性依戀
G15、選擇運算元引數
G16、晦澀的意圖
G17、位置錯誤的權責
G18、不恰當的靜態方法
G19、使用解釋性變數
G20、函式名稱應該表達其行為
G21、理解演算法
G22、把邏輯依賴改為物理依賴
G23、用多型代替if/else switch/case
G24、遵循標準約定
G25、用命名常亮代替魔數
G26、準確
G27、結構勝於約定
G28、封裝條件
G29、避免否定性條件
G30、函式只該做一件事情
G31、不要掩蔽時序耦合
G32、別隨意
G33、封裝邊界條件
G34、函式應該只在一個抽象層級上
G35、在較高層級上放置可配置資料
G36、避免傳遞瀏覽
Java
J1、通過使用萬用字元避免過長的匯入清單
J2、不要繼承常量
J3、常量VS 列舉
名稱
N1、採用描述性名稱
N2、名稱應該與抽象層級相符
N3、儘可能使用標準命名法
N4、無歧義的名稱
N5、為較大作用範圍選用較長名稱
N6、避免編碼
N7、名稱應該說明副作用味道與啟發
註釋
不恰當的資訊
廢棄的註釋
冗餘註釋
糟糕的註釋
註釋掉的程式碼
環境
需要多步才能實現的構建
需要多步才能做到的測試
函式
過多的引數
輸出引數
標識引數
死函式
一般性問題
G1、一個原始檔中存在多種語言
G2、明顯的行為未被發現
G3、不正確的邊界行為
G4、忽視安全
G5、重複
G6、在錯誤的抽象層級上的程式碼
G7、基類依賴於抽象類
G8、資訊過多
G9、死程式碼
G10、垂直分隔
G11、前後不一致
G12、混淆視聽
G13、人為耦合
G14、特性依戀
G15、選擇運算元引數
G16、晦澀的意圖
G17、位置錯誤的權責
G18、不恰當的靜態方法
G19、使用解釋性變數
G20、函式名稱應該表達其行為
G21、理解演算法
G22、把邏輯依賴改為物理依賴
G23、用多型代替if/else switch/case
G24、遵循標準約定
G25、用命名常亮代替魔數
G26、準確
G27、結構勝於約定
G28、封裝條件
G29、避免否定性條件
G30、函式只該做一件事情
G31、不要掩蔽時序耦合
G32、別隨意
G33、封裝邊界條件
G34、函式應該只在一個抽象層級上
G35、在較高層級上放置可配置資料
G36、避免傳遞瀏覽
Java
J1、通過使用萬用字元避免過長的匯入清單
J2、不要繼承常量
J3、常量VS 列舉
名稱
N1、採用描述性名稱
N2、名稱應該與抽象層級相符
N3、儘可能使用標準命名法
N4、無歧義的名稱
N5、為較大作用範圍選用較長名稱
N6、避免編碼
N7、名稱應該說明副作用
G33、封裝邊界條件
G34、函式應該只在一個抽象層級上
G35、在較高層級上放置可配置資料
G36、避免傳遞瀏覽
Java
J1、通過使用萬用字元避免過長的匯入清單
J2、不要繼承常量
J3、常量VS 列舉
名稱
N1、採用描述性名稱
N2、名稱應該與抽象層級相符
N3、儘可能使用標準命名法
N4、無歧義的名稱
N5、為較大作用範圍選用較長名稱
N6、避免編碼
N7、名稱應該說明副作用