重構程式碼是建置和維護軟體的重要面向。
手動重構程式碼時,無論您是使用舊程式碼還是建立新程式碼,都很容易出錯,例如在重新命名方法時忘記使用程式碼的地方。這就是為什麼我喜歡定期使用PhpStorm的重構功能的原因。 (建議學習:phpstorm)
#如果這是您第一次聽到這個術語,那麼Martin Fowler會將重構描述為:
重构是一种用于改进现有代码库设计的受控技术。它的本质是应用一系列小的行为保留转换,每个转换“都太小,不值得做 ”。但是,每个转换的累积效果都非常显着。通过分步进行,可以降低引入错误的风险。您还可以避免在进行重组时损坏系统,这使您可以在较长的时间内逐步重构系统。
重構涵蓋了一系列不同的技術,包括移動,提取,複製,刪除和重新命名。這些內容涵蓋了您可能會不斷對程式碼進行的所有類型的變更。
很高興,PhpStorm的重構功能(包含在核心軟體包中)支援所有這些功能。在本教程中,我將逐步介紹其中的一些。特別:
將程式碼提取到新方法
重新命名功能
更改功能的簽章
將程式碼提取為新方法
將程式碼提取到新方法是重構,我的工作比大多數(也許其他任何事情)都要多。我無法數出遇到長函數的次數,可以將長函數分解為一系列更小,更可重複使用,更可測試的函數來更好地組織它們。
以下面的函數為例。
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']; }
儘管很小,但對於此範例而言已足夠。假設該函數末尾的五行是該類別其他部分所需要的,或者可以在單獨的函數中更好地使用。
我們要做的是將它們提取到一個單獨的方法中。為此,我們首先突出顯示要提取的行,然後按一下「重構->提取->方法」。這將顯示“提取方法”對話框,您可以在下面看到該對話框,並預先填充了一組預設選項。
我們要做的最少工作是為方法填入一個名稱。其餘選項可以保留,因為它們是一組很好的預設值。但是,我還做了另一件事,那就是為唯一的參數指定類型提示
$data
這樣,功能就更加清晰了,並且生成的PhpDoc區塊也將包含該資訊。點擊“重構”既可以產生新方法,也可以用對其的呼叫替換突出顯示的程式碼,您可以在下面看到。
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重構你的程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!