<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      重構(gòu):你可能不知道的重構(gòu)場景

      什么是重構(gòu)?

      “重構(gòu)”一詞想必你已經(jīng)聽膩了,就是整理代碼唄,不不不,重構(gòu)旨在不改變調(diào)用者行為的前提下,對內(nèi)部邏輯進(jìn)行調(diào)整優(yōu)化,提高其理解性,降低其修改成本,它是一門藝術(shù),是程序員至高無上的榮耀……

      何時重構(gòu)?怎么重構(gòu)?

      經(jīng)常聽到周邊的人抱怨沒有時間重構(gòu),重構(gòu)并不是單獨(dú)抽出時間集中處理的,而是當(dāng)你想要做某個功能時,隨手把需要重構(gòu)的地方安排了。

      邏輯重復(fù)

      重復(fù)代碼是最核心常見的預(yù)警信息,如果有兩個及以上的重復(fù)邏輯,就應(yīng)該考慮將其合并。比如同一類或不同類中的函數(shù)存在相同邏輯的部分,就應(yīng)該把相同部分抽象為獨(dú)立函數(shù)或類。

      長函數(shù)

      應(yīng)該有很多同學(xué)經(jīng)手過別人數(shù)百行甚至上千行的代碼,讓人質(zhì)疑人生。為方便理解,最好的方式是把長函數(shù)分解為若干小函數(shù),搭配上易理解的函數(shù)名,便可以像自然語言一樣理解代碼。

      參數(shù)過多

      有一種習(xí)慣非常不好,就是把所有要用到的變量當(dāng)做函數(shù)的參數(shù),這樣會加劇代碼的理解難度,拓展極其困難,當(dāng)需要更多數(shù)據(jù)時,不得不修改所有函數(shù)的參數(shù),牽一發(fā)動全身。如果把對象作為參數(shù),需要用到的數(shù)據(jù)都放進(jìn)對象里,就可以有效解決參數(shù)過長的問題。

      函數(shù)出軌

      你要是發(fā)現(xiàn)一個函數(shù)頻繁的調(diào)用某一個類,它很可能給你戴了綠帽子,不如忍痛割愛,放其自由吧,把函數(shù)歸并到它喜歡的類,也許他們在一起生活更為合適,你一定會找到一個適合的人。

      變化擴(kuò)散

      如果新加入一個業(yè)務(wù)類型(例如支付渠道、數(shù)據(jù)庫類型等)時,需要改動很多地方才能實(shí)現(xiàn),這就意味著還有改進(jìn)的空間,可以將引起變化的原因抽出來做為配置,并將變化的函數(shù)放置到一個類中,這樣不僅可以做到修改一處就應(yīng)對變化,還可以很清晰的知道哪些函數(shù)會受到影響。

      工具小助手

      一款語言包含很多基本類型與內(nèi)置函數(shù),但不能滿足所有需求,比如金額單位轉(zhuǎn)換、時間數(shù)組格式轉(zhuǎn)換、UUID生成等簡單又容易忽略的小功能,如果這些功能出現(xiàn)的頻率很高,規(guī)則改變會帶來一連串的修改,這時可以考慮將這些小功能抽象為工具函數(shù),并將這些函數(shù)組合為工具類。

      意淫的功能

      有些邏輯以為將來會有一些變化,于是安插了很多鉤子函數(shù)應(yīng)對非必要的特殊情況,這樣往往提高了系統(tǒng)復(fù)雜性和理解成本,如果安插的鉤子都能被用到且有價值,那么就使用,否則還是不要放在代碼里阻礙視線了。

      switch過多

      假如現(xiàn)在要做一個支持微信、支付寶、招行等渠道的支付平臺,需要對接不同渠道,因?yàn)椴煌缹臃绞讲煌托枰胹witch來根據(jù)類型選擇對應(yīng)渠道的對接方式,但是很多地方都可能用到這個switch,一旦新渠道加入就要滿世界的找哪里用到了switch。

      可以將switch語句移植為獨(dú)立的函數(shù),將這些函數(shù)組成基類,case語句調(diào)用子類對應(yīng)的函數(shù),具體實(shí)現(xiàn)讓子類去完成,這樣支付渠道的增加和變更只需要修改一個類即可。

      多余的類

      創(chuàng)建的每一個類,對于其他人來講都是有理解成本的,如果曾經(jīng)為某個變化所添加的類,在實(shí)際場景中并沒有發(fā)生變化,那么就把這個類去掉吧,我們需要真正有價值、理解成本低的系統(tǒng)。

      讓人犯暈的變量

      一個類會設(shè)置一些為特殊情況設(shè)置的變量,這些變量不一定都會被使用,經(jīng)手你代碼的人還要猜測當(dāng)時設(shè)置這些變量的目的,非常讓人頭大,不如把這些變量和相關(guān)函數(shù)單獨(dú)放在一個類中,屏蔽具體細(xì)節(jié),需要的功能通過函數(shù)來表達(dá),會使功能擴(kuò)展更高效。

      幽靈類

      項(xiàng)目中偶爾會出現(xiàn)一些“幽靈類”,這些類沒有做什么實(shí)際工作,只是負(fù)責(zé)調(diào)用其它的類,不如把這個“中間人”去掉,讓實(shí)際要調(diào)用的那個類與調(diào)用者發(fā)生關(guān)系。

      雷同的類

      如果兩個類,其中某幾個函數(shù)作用相同,名稱不同,那就可以通過修改名稱或移植函數(shù)的方式將兩個相似的類保持一致,然后把兩個類抽象出基類,以便擴(kuò)展。

      過多的注釋

      注釋多并不是一件壞事,它是重構(gòu)的領(lǐng)路人,當(dāng)你感覺需要為某段代碼寫上注釋時,這意味著你認(rèn)為這段代碼不容易被他人理解,也側(cè)面證明了這就是重構(gòu)發(fā)出的預(yù)警信號,所以當(dāng)想要寫注釋時,就先重構(gòu),爭取讓注釋都變得多余。

      posted @ 2019-05-13 13:24  MARIOOW  閱讀(1914)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 亚洲av无码片在线播放| 定襄县| 日韩一区二区三区理伦片| 动漫AV纯肉无码AV电影网| 亚洲av午夜福利精品一区二区| 野花社区www高清视频| 亚洲精品一区二区三区不| 国产高清一区二区不卡| 视频一区视频二区制服丝袜| 秋霞电影网| 亚洲天堂激情av在线| 国产精品一区二区久久岳| 男女性高爱潮免费网站| 欧美黑人巨大xxxxx| 金门县| 亚洲精品天堂一区二区| 人人妻人人做人人爽| 色偷偷av一区二区三区| 亚洲最大福利视频网| 伊人久久大香线蕉AV网禁呦| 成人午夜在线观看日韩| 久久精品国产亚洲夜色AV网站| 香蕉EEWW99国产精选免费 | 国产高清视频一区二区三区| 亚洲国产精品综合久久20| 亚洲精品日韩久久精品| 国产免费午夜福利757| 日韩亚洲精品国产第二页| 99久热在线精品视频| 一本色道国产在线观看二区| 国产精品久久久久久久久电影网| 精品国产熟女一区二区三区 | 亚洲熟女乱综合一区二区| 久久婷婷综合色一区二区| 华人在线亚洲欧美精品| 国产亚洲一区二区三区av| 免费拍拍拍网站| 99久久免费精品色老| 欧美午夜成人片在线观看| 日韩av综合免费在线| 韩国精品一区二区三区在线观看 |