重構第一章 重構的第乙個案例

2021-05-23 09:41:38 字數 683 閱讀 4125

這一章通過講解租碟的案例來初步解釋了重構的意義,有些問題何老師已經講過了,比如說變數命名,分割**等等

1.1 起點

如果你發現自己需要為程式新增乙個特性,而**結構使你無法很方便地那麼做,那就先重構那個程式,使特性的新增比較容易進行,然後再新增特性。

1.2 重構的第一步(測試)

每當我要進行重構的時候,第乙個步驟永遠相同:我得為即將修改的**簡歷一組可靠的測試環境。

重構之前,首先檢查自己是否有一套可靠的測試機制。這些測試必須有自我檢驗(self-checking)的能力。

什麼是自我檢驗(self-checking)能力。

1.3 分解並重組

分解長的函式 **塊越小,**的功能就越容易管理,**的處理和搬移也就越輕鬆。

第乙個步驟是找出**的邏輯泥團(logical clump)並運用extract method(110)

重構技術係以微小的步伐修改程式。如果你犯下錯誤,很容易便可發現它。

更改變數名  任何乙個傻瓜都能寫出計算機可以理解的**。惟有寫出人類容易理解的**,才是優秀的程式設計師。

搬移**move method   絕大多數情況下,函式應該放在它所使用的資料的所屬object(或說class)內。

replace temp with query   盡量去除臨時變數。p69

1.4 使用多型(polymorphism)

重構,開始第乙個案例

你會發現所謂設計不再是一切動作的前提,而是在整個開發過程中逐漸浮現出來的。martin flower 沒有銀彈,沒有放之四海而皆準的真理。重構和自動化測試時緊密聯絡的,沒有自動化測試,重構會步履維艱。重構 在不蓋被 外在行為的前提下,對 做出修改,以改進程式的內部結構。也就是在 寫好之後改進它的設計...

《重構》讀書筆記(二) 第一章 第乙個重構案例

作者在第一章通過乙個影片出租的例子,試圖闡述重構的基本過程和步驟。看得出來,作者對這個案例給予厚望,花了很大的篇幅。正因如此,我沒有理由不好好學習這一章。影片出租的例子本身不難,但我足足花了一整個下午學習了這個例子。我先是老老實實的把 用c 重抄了一遍,然後跟著作者的步伐,一步步重構,以期體驗 重構...

第一章 重構,第乙個案例 讀書筆記系列1

1.1起點 這是乙個影片出租店用的程式,計算每一位顧客的消費金額並列印報表statement 操作者告訴程式 顧客租了哪些影片,租期多長,程式便根據租賃時間和影片型別出費用 影片有三類 兒童片,普通片,新片 除了計算費用,還要為常客計算點數,點數會隨著 租片種類是否為新片 而有所不同 以下是 的確如...