您好,登錄后才能下訂單哦!
小編給大家分享一下怎么使用phpStorm重構(gòu)你的代碼,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
重構(gòu)代碼是構(gòu)建和維護(hù)軟件的重要方面。
手工重構(gòu)代碼時(shí),無(wú)論您是使用舊代碼還是創(chuàng)建新代碼,都很容易出錯(cuò),例如在重命名方法時(shí)忘記使用代碼的地方。這就是為什么我喜歡定期使用PhpStorm的重構(gòu)功能的原因。
如果這是您第一次聽(tīng)說(shuō)該術(shù)語(yǔ),那么Martin Fowler會(huì)將重構(gòu)描述為:
重構(gòu)是一種用于改進(jìn)現(xiàn)有代碼庫(kù)設(shè)計(jì)的受控技術(shù)。它的本質(zhì)是應(yīng)用一系列小的行為保留轉(zhuǎn)換,每個(gè)轉(zhuǎn)換“都太小,不值得做 ”。但是,每個(gè)轉(zhuǎn)換的累積效果都非常顯著。通過(guò)分步進(jìn)行,可以降低引入錯(cuò)誤的風(fēng)險(xiǎn)。您還可以避免在進(jìn)行重組時(shí)損壞系統(tǒng),這使您可以在較長(zhǎng)的時(shí)間內(nèi)逐步重構(gòu)系統(tǒng)。
重構(gòu)涵蓋了一系列不同的技術(shù),包括移動(dòng),提取,復(fù)制,刪除和重命名。這些內(nèi)容涵蓋了您可能會(huì)不斷對(duì)代碼進(jìn)行的所有類(lèi)型的更改。
很高興,PhpStorm的重構(gòu)功能(包含在核心軟件包中)支持所有這些功能。在本教程中,我將逐步介紹其中的一些。特別:
將代碼提取到新方法
重命名功能
更改功能的簽名
將代碼提取為新方法
將代碼提取到新方法是重構(gòu),我的工作比大多數(shù)(也許其他任何事情)都要多。我無(wú)法數(shù)出遇到長(zhǎng)函數(shù)的次數(shù),可以將長(zhǎng)函數(shù)分解為一系列更小,更可重用,更可測(cè)試的函數(shù)來(lái)更好地組織它們。
以下面的函數(shù)為例。
public function populate($data) { if (is_array($data) && empty($data)) { throw new HydrationException(); } $this->id = $data['id']; $this->userId = $data['userId']; $this->entry = $data['entry']; $this->created = $data['created']; $this->updated = $data['updated']; }
盡管很小,但對(duì)于此示例而言已足夠。假設(shè)該函數(shù)末尾的五行是該類(lèi)其他部分所需要的,或者可以在單獨(dú)的函數(shù)中更好地使用。
我們要做的是將它們提取到一個(gè)單獨(dú)的方法中。為此,我們首先突出顯示要提取的行,然后單擊“重構(gòu)->提取->方法”。這將顯示“提取方法”對(duì)話(huà)框,您可以在下面看到該對(duì)話(huà)框,并預(yù)先填充了一組默認(rèn)選項(xiàng)。
我們要做的最少工作是為方法填寫(xiě)一個(gè)名稱(chēng)。其余選項(xiàng)可以保留,因?yàn)樗鼈兪且唤M很好的默認(rèn)值。但是,我還做了另一件事,那就是為唯一的參數(shù)指定類(lèi)型提示
$data
這樣,功能就更加清晰了,并且生成的PhpDoc塊也將包含該信息。單擊“重構(gòu)”既可以生成新方法,也可以用對(duì)其的調(diào)用替換突出顯示的代碼,您可以在下面看到。
public function populate($data) { if (is_array($data) && empty($data)) { throw new HydrationException(); } $this->hydrateMemberVariables($data); } ///...intervening code public function populate($data) { if (is_array($data) && empty($data)) { throw new HydrationException(); } $this->hydrateMemberVariables($data); }
以上是“怎么使用phpStorm重構(gòu)你的代碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。