重構的認知

2021-10-08 13:29:26 字數 625 閱讀 5189

在不改變軟體可觀察行為的前提下改善其內部結構這是重構的最基本定義。

重構並不是重做系統。

當你面對乙個最需要重構的遺留系統時,其規模之大、歷史之久、**質量之差,常會使得新增單元測試或者理解其邏輯都成為不可能的任務。此時你唯一能依靠的就是那些已經被證明是行為保持的重構手法:用絕對安全的手法從「坑」中整理出可測試的介面,給它新增測試,以此作為繼續重構的立足點。

「不改變軟體行為」只是重構的最基本要求,要想真正讓重構技術發揮威力,就必須做到「不需要了解軟體行為」--聽起來很荒謬,但事實如此。如果一段**能讓你容易了解其行為,說明它還不是那麼迫切需要被重構。那些最需要重構的**,你只能看到其中的壞味道,接著選擇對應的重構方法來消除這些壞味道,然後才有可能理解它的行為。

在設計前期使用設計模式常常導致過度工程,這是乙個殘酷的現實,單憑對完美的追求無法寫出使用的**,而「使用」是軟甲壓倒一切的要素。

重構具有風險,它必須修改運作中的程式,這可能引入一些不易察覺的錯誤。如果重構方式不當,可能毀掉你數天甚至數星期的成果。如果重構時不做好準備,不遵守規則,風險就更大了。你挖掘自己的**,很快發現了一些值得修改的地方,於是你挖得更深。挖得更深,找到的重構機會越多,於是你修改的也越多......最後你給自己挖了個大坑,缺爬出去了。為了避免自掘墳墓,重構必須系統化進行。

工種認知與服務認知

看七牛雲儲存ceo許式偉的訪談 十一年逆流順流,首席架構師到ceo 對其中談到的關於工種認知與服務認知的那一段深表認同。工種是工作種類,也可以指代為某種職能角色。在乙個產品團隊裡,產品經理是工種,工程師也是工種。拿工程師而言,具備開發技能 滿足崗位需求就可以了。於是,現在我們說的團隊就是由各工種的人...

重構之維 關於重構及《重構》的隨想

重構之維 關於重構及 重構 的隨想 重構 究竟重構了什麼?不止一次地,我聽到我們這個行業裡的大師們對重構技術提出 至少是 置疑 那是我們過去十五年裡一直在做的事 我從 上世紀 70年代就已經開始這樣做了 unix上的黑客們一直都是這樣做的 這些說辭讓我很有興趣探其究竟。在這本 重構 裡,martin...

認知階段與認知方法

認知階段 學習西方技術要循序漸進,不可急於求成。生活 學習和工作中對事物的認知,大概要分為以下五種境界 知道 了解 僅知道有這麼乙個東西還不太會使用。會用 熟悉 會使用拿到手的產品的每個功能,如果是軟體,則會呼叫它的函式。原理 掌握 通過使用,越來越熟悉,來思考原理。定製 精通 知道原理,可以修改系...