2011-11-19 78 views
0

如果我寫一段代碼,這也許有點簡單,但我知道每一點是如何工作的,如果出現問題,我可以很容易地識別和糾正問題,我爲什麼要使用一個工具,如ReSharper的把我的代碼變成我不明白的東西?爲什麼我應該重新分解我的代碼?

當然,如果你不能親自編寫複雜的代碼,使用代碼重構工具,只是要引起問題,因爲你將不能夠在出現錯誤時,瞭解新的代碼,如果你能寫重構代碼手動爲什麼你需要這個工具?

或者是有什麼我失蹤?

謝謝

+0

嗯......這是真的 - 如果你不明白,ReSharper的生成代碼(你不想打擾學習),那麼你不應該使用工具來重構你的代碼。 –

+0

我從來沒有說過我不想學,我也想學,這就是爲什麼我不希望使用的工具。 – JMK

+2

你認爲「重構」在做什麼?當你重命名一個類時,你正在重構。整個觀點是*演變你的代碼的概念,當你意識到它的缺陷時改變設計。 –

回答

2

我從來沒有使用一個重構工具,但我想你可以從中取經途中再次因素代碼爲您服務。但是,你需要能夠當你的代碼需要重構感知,知道如何進行重構你自己,否則你將永遠不會辜負您的潛力,作爲一個程序員。看起來依賴於重構工具會剝奪您對事物何時需要重構的理解。肯定學會重構你自己的代碼。

[1] You will arrive at a cleaner solution that is easier for you and others to read

[2] Reducing code repetition will likely reduce bugs, or make them easier to find and fix only once rather than multiple times throughout the code.

[3] Once you have re-factored enough code, it will influence your coding habits and style so you more often code clean the first time, implying less refactoring.

最好的動力重構你的代碼:這是沒有樂趣與另外一個人的草率代碼工作(除非你能在他們面前迅速腸道它。這總是很有趣。)

如果重新分解工具是你的工作或類的一些要求,你必須把它學好。記得測試一下。當您認爲需要重新分解時,您可能需要創建一個小型程序的版本,然後在另一個版本中手動進行重新分解。然後將舊版本提供給重新分解軟件並比較您的結果。

祝你好運! :)

+0

謝謝你,並感謝所有人的答案。我最近曾有人告訴我,我應該修改我的代碼,並給我一個快速ReSharper的教程,我不再能理解代碼,我將重構讀了! =) – JMK

1

是的,有。編碼(在現代軟件過程中)幾乎是一項團隊工作。所以,僅僅因爲你理解你的代碼,並不意味着其他人都能理解它。

而且因爲你不會mabye是誰就會有它的工作只有一個,你應該重構你的代碼,並按照代碼重構的共同規則(或安排約定)。 (如果您使用該工具或做手工,當然總是有特定的問題,多數民衆贊成)

3

你缺少要點 - 可重用性和可維護性。

的特設代碼可以是簡單的,但往往缺乏通用性 - 如果你想要做更復雜的東西,你必須重寫。使用重構工具和方法,您應該能夠獲得更通用的代碼,可插入到其他程序中,並且易於更改(維護)。

但是 - 如果你的代碼已經有這些屬性,不這樣做只爲重構重構,它只是你的時間和精力的浪費。你也應該能夠更好地展示你重構的代碼,而不是你以前的代碼。如果你不這樣做 - 因爲重構應該簡化而不是混淆......

3

重構用於改進代碼結構以提高效率,可讀性,可維護性,減少冗餘以及喜歡。對於非常簡單的代碼,可能沒有充分的理由來重構。隨着代碼複雜性的增加,重構成爲控制代碼完整性的有用工具,並有助於保持代碼的可維護性。一個自動化的工具是爲了嗅探代碼是否有錯誤的代碼,並在代碼太大以至於需要花費很長時間才能手動完成時使用已知的良好模式和實踐。這在具有多個編碼器和許多代碼行的項目中發揮更大的作用。

2

如果我寫了一段代碼,這可能有點簡單但我明白每一點工作是如何工作的,如果出現問題,我可以輕鬆識別和糾正問題,爲什麼我應該使用類似ReSharper把我的代碼變成我不明白的東西?

你應該使用這樣的工具來改進設計,不要把它變成你的東西不明白。如果您不再理解代碼,則可能選擇了不適當的重構。

當然,如果你不能親自編寫複雜的代碼,使用代碼重構工具,只是要引起問題,因爲你將不能夠在出現錯誤時,瞭解新的代碼,如果你能手動編寫重構代碼爲什麼你需要這個工具?

的重構工具是一個方便,使重構的過程更容易,也許更加安全。你確實應該能夠手動編寫新的代碼。就我個人而言,我有時會手動進行重構,而不是使用工具。

相關問題