溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

重構(gòu),改善代碼設(shè)計----初覽

發(fā)布時間:2020-06-14 20:09:19 來源:網(wǎng)絡(luò) 閱讀:651 作者:niceheart 欄目:開發(fā)技術(shù)

   看完《重構(gòu)-改善既有代碼的設(shè)計》一書,心里激起了點漣漪,既感覺有那么點感覺在以后的代碼中小試牛刀,又感覺好些東西雖然看過了,可實際使用時還是會遇上莫名的問題的。沒看之前頭腦是清晰的,看了后反而頭大了,不知所云……

   既然頭大,那我就慢慢梳理一下吧!

   重構(gòu)一共十五章:

   第一章:重構(gòu),第一個案例

        本章開始引入重構(gòu),用一個案例讓我們嘗試一點點甜頭,然后對重構(gòu)起一個總綱的作用,涉及到后邊章節(jié)中的一些重構(gòu)手法;重點講了什么時候重構(gòu),如何重構(gòu),重構(gòu)的步驟,重構(gòu)時需要的準(zhǔn)備工作,重構(gòu)手法,重構(gòu)技術(shù)等等。

        本章總結(jié):以微小的步伐修改程序,每修改一處并及時測試,是否有所改變,若改變則立刻回到上一步檢查,因為重構(gòu)的本質(zhì)是不改變功能的任何變化,只改變閱讀效果。


   第二章:重構(gòu)原則

         本章講了重構(gòu)的定義,重構(gòu)的原則,重構(gòu)目的以及何時重構(gòu)。我分別把兩個不同方式定義列出:

  (1)重構(gòu)定義-名次形式:對軟件內(nèi)部結(jié)構(gòu)的一種調(diào)整,目的是在不改變軟件可觀察行為的前提下,提高其可理解性,降低修改成本。

  (2)重構(gòu)定義-動詞形式:使用一系列重構(gòu)手法,在不改變軟件可觀察行為的前提下,調(diào)整其結(jié)構(gòu)。

   接下來我對性能優(yōu)化和重構(gòu)的區(qū)別談?wù)劊?/p>

   性能優(yōu)化:目的是提高性能,代碼往往不易理解,但為了性能不得不這樣做;

   重構(gòu)    :使代碼易被理解,易被修改,但軟件功能一如既往。

   重構(gòu)遵守原則:

   (1)加新功能則不重構(gòu);

   (2)重構(gòu)時不加新功能。


   第三章:代碼壞味道(重要章節(jié))

         本章重點談了常見的22個壞味道的地方,同時給出了22種解決方案來一一解決這些問題,相當(dāng)于22把鍘刀,為重構(gòu)能順利進行剔除了障礙,有了他們的護航,我們會更加自信的去做這些事,而且知道怎么做,用什么去做,對號入座,具體每一個方法不一一列出,請直接看書會更精彩。


   第四章:構(gòu)筑測試體系

         本章重點談了要能順利并很好的進行重構(gòu),必須有一個好的測試作為保障,否則重構(gòu)后的功能面目全非,南轅北轍,這偏離了我們的本意。

         構(gòu)筑一套測試體系就是一個強大的bug偵測器,能夠大大縮減查找bug所需的時間。

         嚴(yán)格要求:一步一測試。


   第五章:重構(gòu)列表

         本章重點介紹了重構(gòu)時如何進行記錄列表,如何尋找引用點,如何運用重構(gòu)手法進行重構(gòu)。


   第六章:重新組織函數(shù)(重要章節(jié))

         本章是在第三章的基礎(chǔ)上再次對重構(gòu)手法深入學(xué)習(xí),運用了9個重構(gòu)手法對函數(shù)進行重組,每一個手法都足以讓你一醉不醒,強烈建議去看書,此處只做概論不細(xì)說,這里也算是9把鍘刀,而且會更鋒利。

   第七章:在對象之間搬移特性(重要章節(jié))

         本章重點對字段、函數(shù),類等一些處理方式,使用了8個重構(gòu)手法針對對象之間的特性進行處理,其中每一個手法都會讓你眼前一亮,絕對高大上,重點是搬移那些不該出現(xiàn)在不該出現(xiàn)的地方的對象,通過這8把鍘刀,足以讓他們生活屬于自己的領(lǐng)地領(lǐng)空,要知道,當(dāng)今的領(lǐng)域管理很嚴(yán)格,去到不該去的地方,小心×××把你給毀了。


   第八章:重新組織數(shù)據(jù)(重要章節(jié))

         本章主要是規(guī)范數(shù)據(jù),尤其對哪些魔法數(shù)恨之入骨,所以編碼時尤其小心。針對數(shù)據(jù)采用了16個手法進行處理,細(xì)看后會讓你撲朔迷離,真有一如重構(gòu)深似海的感覺。

         對魔法數(shù)解釋一下,我剛開始看的時候我也不知道是什么意思。

         魔法數(shù):即指帶有特殊含義的數(shù)字。指哪些在代碼中直接使用的數(shù)字,此時遇上這種,解決方式就是用一個常量去替換掉,比如3.1415926

         本章的很多重構(gòu)手法需要好好研究,其中Replace Type code with subclasses(以子類取代類型編碼),Replace Type code with state/strategy(以state/strategy取代類型碼)等。

         硬編碼值:只固定值,比如常量,1,0 等。


   第九章:簡化條件表達(dá)式(重要章節(jié))

         本章用8個手法對不同的表達(dá)式進行處理,優(yōu)化的表達(dá)式的邏輯結(jié)構(gòu),比較核心的如Replace Conditional with Polymorphism(以多態(tài)取代條件表達(dá)式),好好研究,受益無窮。


   第十章:簡化函數(shù)調(diào)用(重要章節(jié))

        本章核心是規(guī)范函數(shù)的名稱,分離函數(shù)的邏輯與表示層,對函數(shù)的增減參數(shù)的處理,封裝轉(zhuǎn)型,異常處理等等,總共用了15個手法,讓你對函數(shù)的使用提高一個高度,從此對函數(shù)的每一個參數(shù),字段,名稱不再持無所謂態(tài)度,有此良好的風(fēng)格,得益于這15把鍘刀的藝術(shù)修剪,此刻你已不能自拔。


   第十一章:處理概括關(guān)系(重要章節(jié))

        先解釋一下什么叫概括:所謂概括關(guān)系即繼承關(guān)系。

        本章用12個手法將類與類之間的關(guān)系處理得相當(dāng)好,猶如管理后宮一般,將每個類的職責(zé)劃分得清清楚楚,有倒是增一分嫌多,減一分嫌少。根據(jù)類的職責(zé)將字段,方法移到他們該去的地方,將復(fù)雜的類提煉出獨立的功能,如此減輕了類的負(fù)擔(dān),也使類能益年長壽。


   第十二章:大型重構(gòu)

          本章總概了所有的重構(gòu)手法,利用最后4張王牌為所有的重構(gòu)的使用埋下伏筆,這四個重構(gòu)手法可理解為道,而前幾張手法理解為術(shù),這是一種升華之象,融會貫通才是上上之策,此處的每一個手法可讓你無法回頭,細(xì)細(xì)品味吧。


   第十三章:重構(gòu),復(fù)用與現(xiàn)實

          本章輕描淡寫的談了作者的經(jīng)驗,在開發(fā)中實際遇上的問題,對重構(gòu)再次加深印象,告訴你重構(gòu)的本性,何時重構(gòu),何時開始,何時停止,何時前進,何時等待,只有敢于停止時就得道了。


   第十四章:重構(gòu)工具

         本章對重構(gòu)工具介紹和使用。


   第十五章:總結(jié)

         本章對重構(gòu)高度總結(jié),即給你鼓勵也給你警示,總之一句話,何時得道,是在你停止重構(gòu)時得道,重構(gòu)漫漫,多少人能從中自拔,只見風(fēng)飄飄兮易水寒,碼農(nóng)一去兮不復(fù)返。


   重構(gòu)一書到處結(jié)束,個中滋味只有君讀完才能體會,有時波濤洶涌、激情澎湃,有時萬念俱灰,可每當(dāng)停步時,我們總堅信,黎明的曙光就在前面,愿君伴之。

      

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI