是否有很好的幫助/工具來幫助我將一個龐大的班級拆分成幾部分?代碼很好地工作,但有超過500行的課程並不舒服。我相信它可以分成更小的部分。工具幫助將一個巨大班級拆分爲兩個
這次我對python的一個工具很感興趣,但是我確信它不算數。
是否有很好的幫助/工具來幫助我將一個龐大的班級拆分成幾部分?代碼很好地工作,但有超過500行的課程並不舒服。我相信它可以分成更小的部分。工具幫助將一個巨大班級拆分爲兩個
這次我對python的一個工具很感興趣,但是我確信它不算數。
那麼,它就是你的意思。與Python等語言相比,您可以爲像java這樣的語言做更安全的自動重構(因爲python的動態特性)。
在Python這是正常的(「Python的」)使用內省更像「除非你有不使用它」使用getattr()
而在Java。這樣的技術使自動重構工具幾乎不可能工作,因爲他們無法檢測到所有關係。
無論如何,對於java和python,我都使用Eclipse進行重構。它做得很好。對於python,您將需要pydev插件或aptana studio。
是的,我同意你的觀點,重構在python中比在java中更困難,但我個人不會每天使用'getattr()',所以如果它錯過了這些連接,我很好。 – pihentagy
首先,500行代碼是什麼讓你「不舒服」?爲什麼你認爲你只需要將課堂分成兩個新班級?也許這個班級沒問題(500人不是很大),或者班級需要分成3或4個班級。
沒有更多的信息,我會說一個工具不會幫助你,直到你能理解爲什麼你覺得需要將它分成更小的塊。沒有工具會告訴你如何拆分類。
問問自己這個班級的單一責任是什麼。如果你想出一個以上的話,那麼這個班級至少應該按照責任劃分。如果你想出6個,你就有相當多的工作要做。
是的,沒錯,沒有工具會告訴你如何拆分它,但是根據我對這個問題的評論,它可以給你真正的提示。 – pihentagy
我不知道任何工具(學術界以外)會給你提示你需要的提示。即使這樣做,該工具也不會幫助您設計更好的類,因爲這需要知道自動化工具根本沒有(您會接近AI)。 所以,我鼓勵你停止尋找一個工具,並開始考慮和思考你的代碼的設計,以及每個班級應該承擔的責任。 –
我發現了ExtC Visualizer,這是用於java,並且無法正常工作。
您正在使用哪種編程語言/環境? – k3b
我希望它存在。您可以在方法和字段之間繪製圖形(方法M使用字段F)。基於這個圖,算法可以建議。 – pihentagy
我目前使用py3k,但我認爲該圖可以創建語言無關。 – pihentagy