Categories
程式開發

再讀《重構》


新版本以JavaScript語言作為示例,重新思考並改進了第一版本中的眾多重構手法,結合作者多年來一些新的觀點和思考,帶給了我們一套更為豐富完善的重構體系。

重構作為敏捷實踐的精髓之一,在我們這個以敏捷為立身之本的公司裡應當屬於大家信手拈來的基本技能。雖說其基本思想長期不過時,但是第一版《重構》的發布畢竟已經是20年前的事情了,這期間軟件開發行業興起了無數新的編程思想、語言、工具、框架等,現在回過頭去看第一版,會發現不僅紙質書籍難以買到,其中的一些知識上也有點脫節。新版本以JavaScript語言作為示例,重新思考並改進了第一版本中的眾多重構手法,結合作者多年來一些新的觀點和思考,帶給了我們一套更為豐富完善的重構體系。

通讀本書,很多地方都讓我產生共鳴,同時也讓我對於日常的一些實踐有了新的看法,並在一些問題上有了新的結論。下面想摘錄一些重要的觀點,並分享我的理解,與大家一起學習。

再讀《重構》 1

《重構》

重構的幾個要點

書中講到的幾個重構要點值得每個人在實踐重構的時候注意:

重構不應改變原有程序的可觀測的行為把添加新功能和重構當做兩件不同的事情來對待,就像兩頂帽子,在開發過程中我們經常兩頂帽子換著戴小步重構,更安全的前進,讓代碼在絕大部分時間處於可工作的狀態撿垃圾式的重構:發現一個垃圾時,不想跑題太多,同時也不想將垃圾留在原地;如果此時很容易重構,就立即完成,否則就記錄下來,等後續再來重構絕大多數的重構是見機行事的,而非單獨安排的一項工作重構的唯一目的是讓我們開發更快,用更少的工作量創造更高的價值;重構不是來自“整潔的代碼”“良好的工程實踐”等道德要求,而是純粹從經濟角度出發的考量自測試代碼是重構的基石,也是持續集成的關鍵環節。要想“敏捷”做到名副其實,必須要做好這三大實踐–自測試代碼、持續集成、重構(自測試代碼和重構一起構成了TDD)

各種基礎重構手法組合使用,以實現高級的重構目的