2009-01-23 52 views
8

代碼重構是在不修改其外部行爲或現有功能的情況下更改計算機程序內部結構的過程。單詞的由來重構

重構這個詞的起源是什麼?它爲什麼選擇表示上述?

+3

我投票結束這個問題作爲題外話,因爲這個問題不是一個實際的編程問題,如[幫助/在話題]中所述。 – 2015-03-06 17:13:06

+1

這是[問英語學習者](https://ell.stackexchange.com/questions/150312/whatss-the-root-word-of-refactoring?newreg=9649fc7abc7e4bdf8b48eca5f30c8d6a),即使它是相關的計算機編程它更適合那裏。 – 2017-12-15 20:33:42

回答

1

在數學中,因子(http://en.wikipedia.org/wiki/Factorization)是將表達式簡化爲最簡單的形式。這當然也適用於此?

+0

雖然重構軟件更像是一種轉型而不是簡化? – 2009-01-23 10:46:47

+0

但是這種轉變的目的是什麼?我認爲現有的代碼: 1)更具可讀性 2)效率更高。 在我看來,高效的代碼通常是更簡潔的代碼。 – Konrad 2009-01-23 11:02:16

+0

大多數重構都是可逆的(抽取方法 - 內聯方法),您可能希望暫時創建一個更大的方法,以便能夠在更高級別上應用其他重構。 – philant 2009-01-23 12:45:35

8

因子起源於拉丁文,根表示make or maker(因此工廠,製造等)。數學意義上的因素可能被解釋爲「這個數字是如何產生的」。

所以要重新因素僅僅意味着要重新做

8

Refactoring,福勒寫道,他還沒有「succeded在固定術語重構「」的真實誕生 。 Wikipedia提到該術語在80年代被Forth程序員使用,Fowler也談到了Smalltalk社區。

數學因子分解當然有助於創造這個術語,因爲你不會改變數學表達式的價值。

1

Martin Fowler的寫了關於Etymology of Refactoring。引用:

我們將這些日子稱爲重構的基礎來自Smalltalk社區。然而,保存一個項目的隱喻也是Forth社區的一部分。 Bill Wake dug out第一個已知的印刷中提到的「重構」一詞在一個由思博士1984年由Leo Brodie出版的書中。我們非常肯定,這種用法並沒有從Forth社區傳遞到Smalltalk社區,而是獨立開發。